Compare commits

...

245 Commits

Author SHA1 Message Date
Martin Grenfell
5fcdd03f12 refactor the help page slightly
put all the option help tags in single quotes
2008-10-01 23:17:34 +13:00
Martin Grenfell
d89dbd354a dont clobber &cpo 2008-10-01 23:17:33 +13:00
Martin Grenfell
ed273e108d minor refactor to Bookmark#toRoot() 2008-09-29 11:33:58 +13:00
Martin Grenfell
03dec4cde4 rename TreeFileNode#findOpenDirSiblingWithChildren
to TreeFileNode#findOpenDirSiblingWithVisibleChildren
2008-09-24 12:42:42 +12:00
Martin Grenfell
171c3825fa bug fix for TreeDirNode#hasVisibleChildren() 2008-09-24 12:42:15 +12:00
Martin Grenfell
be2e602efa make path.bookmarkNames private 2008-09-11 12:01:54 +12:00
Martin Grenfell
2ca4573b01 switch to version 2.14.0, update changelog 2008-09-07 12:44:13 +12:00
Martin Grenfell
cdc005f46a downcase all script level function names 2008-09-05 14:34:50 +12:00
Martin Grenfell
19d5aaa513 bugfix: openRecursively2 hadnt been renamed properly 2008-09-04 15:40:09 +12:00
Martin Grenfell
83966b7563 correct a comment 2008-09-03 18:23:08 +12:00
Martin Grenfell
b2b2bdfccd make TreeDirNode#initChildren private 2008-09-03 18:20:09 +12:00
Martin Grenfell
cf8c54689b make TreeDirNode#openRecursively2 private 2008-09-03 18:19:44 +12:00
Martin Grenfell
a8cd995624 remove 2 unused methods 2008-09-03 18:14:44 +12:00
Martin Grenfell
82a6064803 fix a comment 2008-09-03 18:12:03 +12:00
Martin Grenfell
f8b51d01b7 rename all classes - remove the leading 'o' 2008-09-03 18:03:56 +12:00
Martin Grenfell
3cbb73a63c remove 2 unused function2 2008-09-03 17:57:33 +12:00
Martin Grenfell
d24a421efd cosmetic fix 2008-09-03 17:45:22 +12:00
Martin Grenfell
6cf4e9a763 move some bookmark logic into the model
move the bookmark validation logic into the model, as well as the
bookmark to root code
2008-09-03 17:40:33 +12:00
Martin Grenfell
2e26da9666 minor cosmetic change 2008-09-03 17:40:26 +12:00
Martin Grenfell
e102abe98f move a method into the TreeDirNode model 2008-09-03 16:32:14 +12:00
Martin Grenfell
4c1362aff8 rename all class instance methods to start with lower case 2008-09-03 15:58:19 +12:00
Martin Grenfell
1a4cf45f03 remove some unneeded 'unlet' calls 2008-09-03 15:06:15 +12:00
Martin Grenfell
374df70218 remove some unneeded syntax 2008-09-03 15:05:50 +12:00
Martin Grenfell
a57b867ee6 correct the comments above s:GetSelectedBookmark() 2008-08-31 20:58:08 +12:00
Martin Grenfell
927aebfa8b display bookmarks without the surrounding [ ] 2008-08-31 20:57:37 +12:00
Martin Grenfell
4f0a39159a fix some bugs with bookmarks
if #delete() was called on a bookmark that wasnt cached, the wrong error
was being "catch"ed
2008-08-31 20:56:13 +12:00
Martin Grenfell
76d2ecbb17 add keymap to delete bookmarks 2008-08-31 20:55:24 +12:00
Martin Grenfell
73322e88d2 fix a bug with the <c-w>o mapping
now we dont assume the cursor is in the nerd tree window when calling
s:SaveScreenState()
2008-08-03 16:46:48 +12:00
Martin Grenfell
0620b91efa switch version to 2.13.0 2008-07-20 22:34:48 +12:00
Martin Grenfell
ea4d4ff80d fix to changelog 2008-07-20 22:33:59 +12:00
Martin Grenfell
45c33fe0f6 update changelog and credits 2008-07-20 11:28:26 +12:00
Martin Grenfell
fe249e20b9 tell the user how many files couldnt be loaded 2008-07-20 01:06:00 +12:00
Martin Grenfell
e819e13a5d check for FIFO files when initializing path objects
calling filereadable() on a FIFO file never terminates so we have to
check for them
2008-07-20 00:50:47 +12:00
Martin Grenfell
5c95fbda65 improve invalid bookmarks handling
invalid bookmarks now placed after a blank line at the bottom of the
bookmarks file

if invalid bookmarks are detected, an error is outputted which directs
the user to :help NERDTreeInvalidBookmarks, which had been added to the
help file in this commit
2008-07-16 22:46:46 +12:00
Martin Grenfell
3e217115bc fix a bug with improper use of bufwinnr function
add a '^' and '$' to the end of the file matching pattern so it cant get
confused by buffer names that happen to be a substring of buffer we are
comparing against
2008-07-16 18:37:52 +12:00
Martin Grenfell
5d564fdbcf bugfix for the mouse handling function
previously the mouse handling function was not passing the needed
argument to the ActivateNode function
2008-07-16 18:23:17 +12:00
Martin Grenfell
8184b964bc dont delete invalid bookmarks
now if invalid bookmarks are detected, the offending lines are moved to
the bottom of the bookmarks file.

if the user tries to activate a bookmark that has become invalid after
it was read, that bookmark will be removed from the cache and put at the
bottom of the bookmarks file
2008-07-15 23:22:36 +12:00
Martin Grenfell
0daeebc0eb Revert "implement copying nodes for windows"
This reverts commit 21601d9c3d.

Ok, so that copying command doesnt work for windows... it doesnt do
directories properly.
2008-07-14 11:19:56 +12:00
Martin Grenfell
5939fdb140 add s:ValidateBookmark() 2008-07-13 21:03:33 +12:00
Martin Grenfell
9dd850b672 refactored the bookmark not found exception code 2008-07-13 21:02:59 +12:00
Martin Grenfell
21601d9c3d implement copying nodes for windows 2008-07-13 20:23:48 +12:00
Martin Grenfell
332a1baedd ensure bookmarks exist before opening them 2008-07-13 16:38:52 +12:00
Martin Grenfell
e8aadb77b8 reposition a method in the file 2008-07-13 16:02:20 +12:00
Martin Grenfell
31c1faea32 make NERDTreeChDir default to 0
we dont need it to default to 1 anymore as that was a hack for windows,
but now that we handle windows paths properly we dont need it
2008-07-13 15:06:57 +12:00
Martin Grenfell
818a53003e write bookmarks file after deleting a bookmark 2008-07-13 14:13:58 +12:00
Martin Grenfell
78419f858c delete a paths bookmarks when delete the path 2008-07-13 14:08:06 +12:00
Martin Grenfell
b1d10a12fa refresh new parent node after a move operation 2008-07-13 14:03:12 +12:00
Martin Grenfell
f404cdd54b update bookmarks when moving via filesystem menu 2008-07-13 13:43:43 +12:00
Martin Grenfell
c463234452 fix caching bug for s:oPath.BookmarkNames() 2008-07-13 13:35:30 +12:00
Martin Grenfell
b1020ad9c8 remove some unused code 2008-07-13 11:39:43 +12:00
Martin Grenfell
0ad0d195e5 make NERDTreeQuitOnOpen option work with g<tab>/go 2008-07-11 21:17:29 +12:00
Martin Grenfell
43bf05c42e jump to the bookmarks table after opening it
when the user hits B and opens the bookmarks table, stick the cursor at
the top of it
2008-07-07 21:08:02 +12:00
Martin Grenfell
236df49362 refactor the t/T mappings for bookmarks
this way feels cleaner
2008-07-07 20:43:11 +12:00
Martin Grenfell
bccd73c8f5 make t/T open a nerd tree rather than netrw
make the t/T on directory nodes open a fresh NERD tree for the selected
dir in a new tab, rather than a netrw.
2008-07-07 20:43:11 +12:00
Martin Grenfell
fd487dfa5c make t/T open a new tree in a new tab, not netrw
doesnt work for paths with some screwed up chars in them
2008-07-07 20:43:11 +12:00
Martin Grenfell
3cb3227d56 some corrections to changelog 2008-07-05 12:19:12 +12:00
Martin Grenfell
f183d60b13 switch version to 2.12.0 2008-07-05 12:17:21 +12:00
Martin Grenfell
8c8cd29142 update changelog and credits 2008-07-05 12:00:08 +12:00
Martin Grenfell
83e8c144ed update the doc RE bookmark names 2008-07-02 22:40:51 +12:00
Martin Grenfell
06c7c53127 fix for swap files and opening in a split
when opening a file in a new split (with the <tab> map) we were doing
the :split with a "silent" modifier. This meant that a swap existed and
input was required from the user, the script would just freeze up
2008-07-02 22:38:47 +12:00
Martin Grenfell
ec682b1f9b fix bookmark highlighting and make it "quieter"
highlighting was still broken for bookmarks that werent alphanumeric
w/underscores. Also, highlight the path parts of the bookmarks table as
"normal" so they dont demand as much attention
2008-07-02 22:24:31 +12:00
Martin Grenfell
7a15d9879f use s:Echo instead of :echo 2008-07-02 21:22:51 +12:00
Martin Grenfell
dea37444bc loosen bookmark name restrictions
now the only rule is that they cant contain spaces
2008-07-02 21:22:26 +12:00
Martin Grenfell
f5a20e5379 fix some bugs when dealing with invalid bookmarks 2008-07-02 21:15:28 +12:00
Martin Grenfell
a0573c51b1 update the doc and changelog 2008-07-01 22:54:40 +12:00
Martin Grenfell
d0cb14c7ce make every tab have its own filter settings
The tree filters for files/hidden-files/bookmarks now operate off tab
local variables which default to the global variables when a nerd tree
is initialised in the tab. Note: the file-filter already operated in
this way.

This means that each tree/tab has its own filter settings that are
initialised to the users preferences as specified by the global
variables, but can be altered independently of the other trees/tabs
2008-07-01 22:42:19 +12:00
Martin Grenfell
f2b2327c24 merge bookmark name caching with path string caching
We needed to change how the bookmark name caching was done to work with
the new path-display-string caching. It has now been merged into path
string caching.
2008-07-01 21:13:21 +12:00
Martin Grenfell
9d5a940be3 clear cached display string when path is refreshed
when the path object is refreshed, force the display string to be
recalculated
2008-07-01 14:23:38 +12:00
Martin Grenfell
38d91b66b0 cache display string 2008-07-01 14:23:13 +12:00
Martin Grenfell
65ebd30334 fix a bug when overwriting an existing bookmark
if the bookmark wasnt cached in the tree an exception was being thrown
that wasnt caught
2008-06-30 18:26:35 +12:00
Martin Grenfell
1998cef2b4 highlighting fix - allow numbers in bookmark names 2008-06-30 09:37:44 +12:00
Martin Grenfell
030cff2eda sort bookmarks when we add a new one 2008-06-30 09:36:50 +12:00
Martin Grenfell
02facac20a make bookmark width take into account the line numbers 2008-06-30 09:26:18 +12:00
Martin Grenfell
7789ccb90a update changelog 2008-06-29 21:20:40 +12:00
Martin Grenfell
d497c9ae9c small doc update for bookmarks 2008-06-29 20:08:27 +12:00
Martin Grenfell
cdf1e8d6e9 update the doc around the NERDTreeWinPos option 2008-06-29 19:55:56 +12:00
Martin Grenfell
5f4a002787 combine NERDTreeSplitVertical and NERDTreeWinPos
instead of using 2 options to specify the position of the tree, just use
NERDTreeWinPos and set it to "left", "right", "top", "bottom"
2008-06-29 19:43:50 +12:00
Martin Grenfell
c34968d282 add quickhelp doc for new t/T map functionality 2008-06-29 13:52:04 +12:00
Martin Grenfell
f76f983182 add doc for the changes to the t/T mappings 2008-06-29 13:49:29 +12:00
Martin Grenfell
312ce93bb4 make the t/T mappings work for bookmarks
when you hit t/T on a bookmark a new tab is opened and, if the bookmark
is a dir, a nerd tree is opened for that dir. If the bookmark is a file
then just open the file
2008-06-29 13:34:36 +12:00
Martin Grenfell
06776557cf add bookmark mappings to quickhelp 2008-06-29 12:42:52 +12:00
Martin Grenfell
d831cbf17b render bookmark paths as wide as the window allows 2008-06-29 12:35:05 +12:00
Martin Grenfell
aad2259522 add doc for bookmarks 2008-06-29 12:31:29 +12:00
Martin Grenfell
e1bd98fc7c open file bookmarks when user activates them
when the user activates a file bookmark open that file in the previous
window (i.e. do the 'o' mapping)
2008-06-29 01:00:55 +12:00
Martin Grenfell
7ca9b07b68 make NERDTreeShowBookmarks default to 0 2008-06-29 00:42:01 +12:00
Martin Grenfell
1532bf1922 move the bookmark->string code into the bookmark class 2008-06-29 00:41:34 +12:00
Martin Grenfell
ac544460e4 clean up/add comments to the bookmark methods 2008-06-29 00:33:25 +12:00
Martin Grenfell
d2989eb3e0 huge refactor, add bookmark class 2008-06-29 00:23:02 +12:00
Martin Grenfell
73be034d5e remove some random unneeded colons 2008-06-28 22:20:42 +12:00
Martin Grenfell
b5d6736f76 remove some old testing code 2008-06-28 22:20:09 +12:00
Martin Grenfell
1c38ffd30b add bookmark mapping to the quickhelp 2008-06-28 22:10:18 +12:00
Martin Grenfell
8e4b3565f8 turn bookmarks off by default 2008-06-28 21:43:00 +12:00
Martin Grenfell
31445645f7 truncate the bookmark path if its too long 2008-06-28 21:35:22 +12:00
Martin Grenfell
fc053917d8 add highlighting for bookmarks gui 2008-06-28 21:35:09 +12:00
Martin Grenfell
201df0a782 only show bookmark if NERDTreeShowBookmarks is set 2008-06-28 21:22:29 +12:00
Martin Grenfell
b59a7cd979 remove bookmarks display footer 2008-06-28 20:49:36 +12:00
Martin Grenfell
8f7aed712b add a mapping to toggle display of bookmarks 2008-06-28 20:44:55 +12:00
Martin Grenfell
3e946b1b4f make 'o' active bookmarks as well
hitting 'o' or clicking a bookmark will now make that bookmark to the
new tree root, in the same way that :BookmarkToRoot does
2008-06-28 20:43:33 +12:00
Martin Grenfell
2a16431b2d add bookmarks to the view 2008-06-28 20:42:00 +12:00
Martin Grenfell
6815622d2c add doc for NERDTreeQuitOnClose 2008-06-27 23:39:44 +12:00
Martin Grenfell
5c32c2a226 update help file to reflect the previous patch
* Add a doc section for the NERDTreeQuitOnOpen option.
  * Update changelog.
  * update credits.
2008-06-27 23:08:49 +12:00
Martin Grenfell
b363396a93 apply "NERDTreeQuitOnOpen" patch from Matan Nassau
with some slight modifications
2008-06-27 22:58:33 +12:00
Martin Grenfell
87382097df resize the tree window when it was the only one
if the nerd tree window is the only window open when the user opens a
file, the file will be opened in a new split. Previously that meant the
two windows would take up half the screen each.
2008-06-24 19:32:52 +12:00
Martin Grenfell
e6d2f12bf6 switch to version 2.11.0 2008-06-23 20:40:29 +12:00
Martin Grenfell
43ee096cee inline some script level constants 2008-06-23 18:56:55 +12:00
Martin Grenfell
2b1eecebb2 bugfix for renaming files 2008-06-22 17:19:07 +12:00
Martin Grenfell
c0d83f95a8 update credits 2008-06-22 14:14:56 +12:00
Martin Grenfell
01ded5d150 update changelog 2008-06-22 14:14:52 +12:00
Martin Grenfell
5884cf3774 fix a bug with scrolloff
take &scrolloff into account when restoring the window position when
recreating the nerd tree window
2008-06-22 13:54:32 +12:00
Martin Grenfell
d15818bafa save and restore the size of the window
store the old nerd tree window size as a tabpage local variable and
restore it when reloading the tree window
2008-06-22 13:53:13 +12:00
Martin Grenfell
f74ec0661d dont resize tree window when opening with <tab>
the <tab> mapping creates a new window, and we previously resized the
nerd tree window at the same time
2008-06-22 13:23:32 +12:00
Martin Grenfell
d68dcd252e bugfix to window resize code 2008-06-22 13:07:13 +12:00
Martin Grenfell
30bfb6e6b7 Revert "be silent when opening files"
This reverts commit 6334e99192.
Opening files silently causes vim to hang if the file is already open by
another vim instance (it tries to print out the swap file
message/options but it cant).
2008-06-22 12:42:52 +12:00
Martin Grenfell
bfa5de8c55 minor bugfix 2008-06-22 12:29:18 +12:00
Martin Grenfell
6a665a588f update the help page 2008-06-22 11:15:42 +12:00
Martin Grenfell
55ff76171a update the changelog 2008-06-22 01:07:29 +12:00
Martin Grenfell
a701bb71c4 remove some trailing whitespace from the view
The quickhelp had some trailing whitespace, this was removed and a help
highlight pattern had to be changed to fit. Also, there was another
trailing space the s:RenderView() function.
2008-06-22 00:47:12 +12:00
Martin Grenfell
6343639193 remove the magic from the <c-j>/<c-k> mappings
previoulsy, <c-k>/<c-j> did magic stuff if the selected node was a file.
i.e. jumped to the parent/parents next sibling. I chose to remove this
behaviour as it is more confusing than helpful.
2008-06-22 00:35:50 +12:00
Martin Grenfell
5ce5c62611 dont ever escape paths when calling delete()
previously we were escaping when deleting files, and this was causing
the operation to fail
2008-06-22 00:19:28 +12:00
Martin Grenfell
3ebff6ae54 fix highlighting of directory symlinks 2008-06-21 21:56:59 +12:00
Martin Grenfell
d9a03f4600 add syntax highlighting for executable nodes 2008-06-21 20:47:13 +12:00
Martin Grenfell
59b132f0f7 add a * when rendering executable paths 2008-06-21 20:46:35 +12:00
Martin Grenfell
d56bf992d2 make paths cache whether they are executable 2008-06-21 20:45:18 +12:00
Martin Grenfell
efa7941c54 remove a stray :echo 2008-06-20 17:23:48 +12:00
Martin Grenfell
808850a464 dont open a file twice in the same tab with o mapping
if the user tells the nerd tree to open a file (without splitting), and
that file is already open in the current tab, then just stick the cursor
in the existing window for the file
2008-06-19 22:35:36 +12:00
Martin Grenfell
24ad44b46f dont clobber "special" windows when opening files
if the user tries to open a file and the previous window is "special"
(eg the quickfix window or another explorer plugin) then force a new
split to be opened instead
2008-06-19 21:40:44 +12:00
Martin Grenfell
737ad58740 use :echomsg instead of just :echo
this is so that the messages get recorded in message history and can be
view with :messages
2008-06-19 21:37:31 +12:00
Martin Grenfell
a856622f0c switch vertion to 2.10.0 2008-06-17 22:58:26 +12:00
Martin Grenfell
ce79c243a3 show how many invalid bookmarks were read 2008-06-17 21:20:56 +12:00
Martin Grenfell
e1b369f34e update header and change license to wtfpl 2008-06-17 21:03:00 +12:00
Martin Grenfell
0a73777381 bugfix for reading files with invalid bookmark syntax 2008-06-16 20:54:28 +12:00
Martin Grenfell
176b551af0 handle invalid bookmarks in bookmarks file 2008-06-16 20:33:17 +12:00
Martin Grenfell
95ee07c9d3 switch version to 2.10.0rc1 2008-06-13 18:46:34 +12:00
Martin Grenfell
b58ccce913 update changelog and credits 2008-06-13 18:46:26 +12:00
Martin Grenfell
b60bcb6cb2 bugfix for :NERDTree when a file bookmark is given 2008-06-13 13:01:05 +12:00
Martin Grenfell
f7e8c453ea make :OpenBookmark open a netrw for dir bookmarks 2008-06-13 12:51:06 +12:00
Martin Grenfell
58ccd230fa refactor the logic out of s:OpenExplorer()
refactor out the code that actually opens the explorer window into
s:OpenExplorerFor(treenode) so that we can call it separately
2008-06-13 12:48:56 +12:00
Martin Grenfell
866df769b5 fix for quickhelp highlighting bug 2008-06-12 22:53:45 +12:00
Martin Grenfell
bd3b03fd79 update doc/changelog 2008-06-12 22:44:31 +12:00
Martin Grenfell
9030ff0312 make the quickhelp narrower so it fits 2008-06-12 22:35:17 +12:00
Martin Grenfell
5172efc976 bugfix: dont render duplicate bookmarks
if a bookmark is created, remove any previously cached bookmark of the
same name from the tree
2008-06-12 22:31:28 +12:00
Martin Grenfell
b252a1250a rename 'marks' to 'bookmarks' 2008-06-12 21:14:07 +12:00
Martin Grenfell
dae5c93fec fix NERDTree-C doc 2008-06-10 23:00:22 +12:00
Martin Grenfell
004b4fc9dd add a note marks to the intro 2008-06-10 23:00:03 +12:00
Martin Grenfell
7614f745ae some fixes/enhancements to the marks doc 2008-06-10 22:57:30 +12:00
Martin Grenfell
585b5f1579 remove trailing whitespace 2008-06-10 22:51:36 +12:00
Martin Grenfell
bc41c51f93 doc :RevealMark 2008-06-10 22:50:52 +12:00
Martin Grenfell
0888f6c011 fix an error in a method header 2008-06-10 22:49:20 +12:00
Martin Grenfell
df8f132d6e update the quickhelp 2008-06-10 22:49:10 +12:00
Martin Grenfell
d7a319c3a6 rename RecallMark to RevealMark 2008-06-10 22:48:31 +12:00
Martin Grenfell
5a45ea08c4 add/update doc for the mark commands 2008-06-10 22:45:10 +12:00
Martin Grenfell
ec7e013150 add some mark quickhelp 2008-06-10 21:53:31 +12:00
Martin Grenfell
5b35d0bb31 bugfix: fix NERDTreeFromMark command
previously it called a nonexisting function
2008-06-10 12:49:14 +12:00
Martin Grenfell
40ccf3cd45 make the mark manipulation funcs use the caching
s:ClearMarks(), s:ClearAllMarks() and s:MarkNode() now use tell the
relevant path objects to update their mark cache
2008-06-09 22:04:31 +12:00
Martin Grenfell
1b17f945a3 refactor s:GetPath() to take marks into account 2008-06-09 21:23:43 +12:00
Martin Grenfell
421431b5df correct a method header comment 2008-06-09 21:22:34 +12:00
Martin Grenfell
26983f1921 make oPath cache the marks associated with it
This is mainly for performance reasons. Calculating the marks anew
everytime oPath#MarkNames() is called greatly increases the rendering
time of the tree. It trippled it for just a handful of marks...
2008-06-09 21:18:30 +12:00
Martin Grenfell
1571274aec refactor the Refresh() method for tree nodes
create a oFileTreeNode#Refresh() and make sure that Refresh() is always
called for dir nodes
2008-06-09 21:13:25 +12:00
Martin Grenfell
a111af5361 merge InitNerdTreeFromMark into InitNerdTree 2008-06-09 18:20:22 +12:00
Martin Grenfell
64514e3ceb make :ClearMarks default to all marks on the current node 2008-06-09 13:21:44 +12:00
Martin Grenfell
bcc690a141 put cursor on the tree root by default 2008-06-09 13:01:48 +12:00
Martin Grenfell
397dee5cb1 remove all trailing whitespace 2008-06-09 12:46:53 +12:00
Martin Grenfell
dbb0677749 add :NERDTreeFromMark and corresponding function 2008-06-09 12:44:05 +12:00
Martin Grenfell
0fed73d83a read marks when vim loads, not when a nerd tree loads 2008-06-09 12:40:04 +12:00
Martin Grenfell
3a437b402a dont call RenderView() inside ReadMarks() 2008-06-09 12:37:20 +12:00
Martin Grenfell
1d9564db54 improve the error handling of RecallMark() 2008-06-08 21:53:25 +12:00
Martin Grenfell
c63e183acf make OpenMark open the mark even if its not cached
if OpenMark is called for a mark for a file that isnt cached in the
tree, just open the file anyway and dont put attempt to put the
cursor on it etc
2008-06-08 21:07:13 +12:00
Martin Grenfell
6334e99192 be silent when opening files 2008-06-08 21:02:54 +12:00
Martin Grenfell
776aeef26f bugfix for oTreeFileNode#MakeRoot()
if MakeRoot is called for a file, make sure that the nodes parent is
initialized
2008-06-08 20:53:43 +12:00
Martin Grenfell
1d6516b96d add oTreeFileNode.CacheParent() 2008-06-08 20:53:12 +12:00
Martin Grenfell
995f7faec3 only attempt to open marks file if it exists 2008-06-08 19:16:38 +12:00
Martin Grenfell
140deac284 add NERDTreeMarksFile global var
NERDTreeMarksFile is full path of the file that stores the marks
2008-06-08 18:42:07 +12:00
Martin Grenfell
6e24eed04a use a script lvl variable for NERDTreeSortStarIndex 2008-06-08 18:30:31 +12:00
Martin Grenfell
82c1fece9f make MarkToRoot() work for nodes that arent cached
now if you go :MarkToRoot foo  and foo points to a path that isnt
cached, a new tree node will be created and made root. Note that all
cached nodes will be lost as this is the same as opening a new nerd tree
2008-06-08 18:24:47 +12:00
Martin Grenfell
371379a860 read and write marks automatically 2008-06-08 17:58:38 +12:00
Martin Grenfell
0a91f3511e add functions and :commands to read/write marks to a file 2008-06-08 17:57:13 +12:00
Martin Grenfell
192424429d make marks global instead of tab based 2008-06-08 17:51:05 +12:00
Martin Grenfell
3092355648 add a modeline 2008-06-08 17:34:22 +12:00
Martin Grenfell
ae50662943 clear all marks when the tree is initialized 2008-06-07 18:12:05 +12:00
Martin Grenfell
8529b6f0e3 add s:ClearAllMark() and refactor to use it 2008-06-07 18:11:48 +12:00
Martin Grenfell
d718f1098c put the cursor on the new root after :MarkToRoot 2008-06-07 18:06:32 +12:00
Martin Grenfell
0501fc825c add :MarkToRoot command and a corresponding function 2008-06-07 17:40:18 +12:00
Martin Grenfell
05ce3ab896 add searchFromAbsoluteRoot flag to s:GetNodeForMark 2008-06-07 17:38:56 +12:00
Martin Grenfell
642c2b76fc add oFileNode#MakeRoot() and refactor s:ChRoot()
not that as of this commit, you can now use the C mapping on a file node
and its parent dir node will become the new root
2008-06-07 17:36:14 +12:00
Martin Grenfell
6b7760e6e4 add s:AbsoluteTreeRoot() 2008-06-07 17:34:45 +12:00
Martin Grenfell
5cafc7018d bugfix to s:GetNodeForMark() 2008-06-07 14:37:39 +12:00
Martin Grenfell
332756282a add :ClearAllMarks 2008-06-07 13:57:02 +12:00
Martin Grenfell
bcc1180510 add :ClearMarks and bind it to s:ClearMarks() 2008-06-07 13:56:41 +12:00
Martin Grenfell
2ecd6ebd63 add s:MarkForNode() and refactor to use it 2008-06-07 12:45:21 +12:00
Martin Grenfell
5a4ef66db2 improve error messages when marks dont exist 2008-06-07 10:12:37 +12:00
Martin Grenfell
a537e1535c some highlighting fixes for marks 2008-06-07 00:43:24 +12:00
Martin Grenfell
44e8534f1f display marks before the symlink target 2008-06-07 00:43:00 +12:00
Martin Grenfell
c108a19881 add a redraw! in s:OpenMark()
if we were opening a mark (with :OpenMark) that was scrolled off the
screen, the tree  window wasnt getting scrolled to the node
2008-06-07 00:24:51 +12:00
Martin Grenfell
5685fa7af4 add :OpenMark command 2008-06-06 23:33:48 +12:00
Martin Grenfell
990706b725 restrict mark names to alphanumeric + underscores 2008-06-06 23:33:01 +12:00
Martin Grenfell
6e60ecfee1 check for nonexistent marks 2008-06-06 23:19:28 +12:00
Martin Grenfell
219d16f61a bugfix for stripping :Mark markup from a line 2008-06-06 23:13:05 +12:00
Martin Grenfell
5fd7441dbe add highlighting for marks 2008-06-06 23:02:37 +12:00
Martin Grenfell
a5f86e1a8f minor fix to method header 2008-06-06 22:55:20 +12:00
Martin Grenfell
782e60efc9 display marks on tree 2008-06-06 22:27:01 +12:00
Martin Grenfell
7b26dac959 add oPath#MarkNames() 2008-06-06 22:26:41 +12:00
Martin Grenfell
600f2cac14 make PutCursorOnNode open ancestors until target node is visible 2008-06-06 13:21:55 +12:00
Martin Grenfell
fb3c4f9212 add marking functionality
add ability to give a node a name and the abiliy to jump back to the
node for a given name
2008-06-05 22:41:05 +12:00
Martin Grenfell
24c1f6beab add recurseUpward arg to s:PutCursorOnNode
makes it attempt to put the cursor on the treenodes parent (recursively)
if the target node is hidden
2008-06-05 22:15:08 +12:00
Martin Grenfell
3e507620fe update changelog 2008-06-03 22:07:31 +12:00
Martin Grenfell
a520080cc3 put cursor on new node after copying 2008-06-03 22:02:59 +12:00
Martin Grenfell
b747086137 strip trailing slashes off copy destination 2008-06-03 22:02:59 +12:00
Martin Grenfell
7a1dbcbdb0 fix a bug with refreshing after copying 2008-06-03 22:02:59 +12:00
Martin Grenfell
ce9fece626 fix screen jumping bug with &scrolloff 2008-05-29 15:27:42 +12:00
Martin Grenfell
90fd47bd00 update the credits 2008-05-17 16:29:50 +12:00
Martin Grenfell
80e0bca4dc change version to 2.9.0 2008-05-17 16:24:48 +12:00
Martin Grenfell
04ea2eb0f7 apply Cory Echols' patch
adds :NERDTreeClose command and sets the filetype for the tree buffer to
"nerdtree"
2008-05-17 14:40:27 +12:00
Martin Grenfell
25aaaaae42 gitignore tags file 2008-05-17 14:36:02 +12:00
Martin Grenfell
8a32f5851f update changelog and credits 2008-05-17 14:12:23 +12:00
Martin Grenfell
6018625170 bugfix: use #StrForOS when refreshing a path 2008-05-16 12:35:11 +12:00
Martin Grenfell
c36aaf55f8 bugfix: process files with single letter extension
dont ignore files like foo.c !
2008-05-16 12:22:23 +12:00
Martin Grenfell
6e7960ba94 convert tabs to spaces
not sure how those tabs got in there!
2008-05-16 11:51:39 +12:00
Martin Grenfell
f1a9bd3c89 couple of fixes to the doc 2008-05-10 19:14:29 +12:00
Martin Grenfell
191dcc4068 remove a now unneeded not to windows users
dont warn windows users about setting NERDTreeChDirMode as drives are
handled properly now
2008-05-10 18:52:35 +12:00
Martin Grenfell
0d62ffd5db bugfix for paths on windows
delete oPath.NewMinimal cos it sucks and there is no need for it. It
was causing a bug with oPath.Equals on account of it wasnt correctly
determining whether a path found with s:GetSelectedPath() was a dir or a
file.
2008-05-10 18:29:20 +12:00
Martin Grenfell
510f890ee1 change to version 2.8.0.1 2008-05-10 16:28:01 +12:00
Martin Grenfell
06db1cdf2c fix some formatting 2008-05-10 16:27:50 +12:00
Martin Grenfell
0eaaf6842c improve path handling for windows 2008-05-10 16:26:32 +12:00
Martin Grenfell
2ed6524b9d use oPath#StrForCd where appropriate 2008-05-10 15:55:50 +12:00
Martin Grenfell
fb7f66dc47 update oPath#Equals 2008-05-10 15:49:08 +12:00
Martin Grenfell
dcf9e956a7 minor bugfix 2008-05-10 15:45:05 +12:00
Martin Grenfell
8aafa66eac handle trailing slashes inside oPath#Rename
previously the RenameCurrent() view function was removing trailing
slashes from the destination path before passing it to oPath, now oPath
handles the slashes
2008-05-10 15:33:11 +12:00
Martin Grenfell
f2ce7390b8 add oPath#StrForCd 2008-05-10 15:25:33 +12:00
Martin Grenfell
7275d89a35 add oPath#ExtractDriveLetter
If running windows, extract and cache the drive letter
2008-05-10 12:40:26 +12:00
Martin Grenfell
e6479c36f3 bugfix to prevent double escaping when refreshing a node 2008-05-04 21:37:36 +12:00
Martin Grenfell
da76bafaef add oPath#StrForGlob() to return a string that can be used to call globpath with
note: the main motivation behind this is to encapsulate differences in OSs
2008-05-04 21:33:52 +12:00
Martin Grenfell
ec76876a74 added a comment note to clarify something 2008-05-04 21:31:38 +12:00
Martin Grenfell
ef1a466342 make the script able to handle strange filenames with random chars in them (eg {'$%^&) 2008-05-04 16:48:32 +12:00
Martin Grenfell
56dd5f05ab fix the output of the rename prompt when it asks you to delete an old buffer 2008-05-04 14:22:59 +12:00
Martin Grenfell
92a006f51c some handy utils 2008-05-04 12:01:43 +12:00
Martin Grenfell
7d1cc4ecec bugfix: the script failed when being initialized on a dir containing spaces 2008-04-17 23:39:23 +12:00
Martin Grenfell
c008fb3983 changed the version to 2.8.0 for the next release 2008-03-31 18:22:29 +13:00
Martin Grenfell
8654b98b09 gitignored some stuff 2008-03-10 21:26:51 +13:00
Martin Grenfell
5e3e95d168 added a credit and an entry in the changelog 2008-03-10 20:46:56 +13:00
Martin Grenfell
faabc8c47d documented the NERDTreeShowLineNumbers option 2008-03-10 20:44:16 +13:00
Martin Grenfell
91d5a52c39 added the NERDTreeShowLineNumbers option into the script 2008-03-10 20:39:30 +13:00
marty
a5bc034851 updated the changelog 2008-01-18 22:39:25 +13:00
marty
1383e3fea7 bumped the version to 2.7.1 2008-01-18 22:29:34 +13:00
marty
47adbe9942 updated the changelog and filesystem menu doc 2008-01-18 22:29:16 +13:00
marty
020c635cca changed the key for the filesystem menu to be mnemonic 2008-01-18 21:47:21 +13:00
4 changed files with 2200 additions and 1289 deletions

3
.gitignore vendored Normal file
View File

@@ -0,0 +1,3 @@
*~
*.swp
tags

18
Rakefile Normal file
View File

@@ -0,0 +1,18 @@
desc "Copy the vim/doc files into ~/.vim"
task :deploy_local do
run "cp plugin/NERD_tree.vim ~/.vim/plugin"
run "cp doc/NERD_tree.txt ~/.vim/doc"
end
desc "Create a zip archive for release to vim.org"
task :zip do
abort "NERD_tree.zip already exists, aborting" if File.exist?("NERD_tree.zip")
run "zip NERD_tree.zip plugin/NERD_tree.vim doc/NERD_tree.txt"
end
def run(cmd)
puts "Executing: #{cmd}"
system cmd
end

View File

@@ -2,7 +2,7 @@
omg its ... ~
________ ________ _ ____________ ____ __________ ____________~
/_ __/ / / / ____/ / | / / ____/ __ \/ __ \ /_ __/ __ \/ ____/ ____/~
@@ -17,13 +17,17 @@
==============================================================================
CONTENTS *NERDTree-contents*
CONTENTS *NERDTree-contents*
1.Intro...................................|NERDTree|
2.Functionality provided..................|NERDTreeFunctionality|
2.1 Commands..........................|NERDTreeCommands|
2.2 NERD tree mappings................|NERDTreeMappings|
2.3 The filesystem menu...............|NERDTreeFilesysMenu|
2.1 Global commands...................|NERDTreeGlobalCommands|
2.2 Bookmarks.........................|NERDTreeBookmarks|
2.2.1 The bookmark table..........|NERDTreeBookmarkTable|
2.2.2 Bookmark commands...........|NERDTreeBookmarkCommands|
2.2.3 Invalid bookmarks...........|NERDTreeInvalidBookmarks|
2.3 NERD tree mappings................|NERDTreeMappings|
2.4 The filesystem menu...............|NERDTreeFilesysMenu|
3.Options.................................|NERDTreeOptions|
3.1 Option summary....................|NERDTreeOptionSummary|
3.2 Option details....................|NERDTreeOptionDetails|
@@ -32,6 +36,7 @@ CONTENTS *NERDTree-contents*
6.The Author..............................|NERDTreeAuthor|
7.Changelog...............................|NERDTreeChangelog|
8.Credits.................................|NERDTreeCredits|
9.License.................................|NERDTreeLicense|
==============================================================================
1. Intro *NERDTree*
@@ -41,7 +46,7 @@ What is this "NERD tree"??
The NERD tree allows you to explore your filesystem and to open files and
directories. It presents the filesystem to you in the form of a tree which you
manipulate with the keyboard and/or mouse. It also allows you to perform
simple filesystem operations so you can alter the tree dynamically.
simple filesystem operations.
The following features and functionality are provided by the NERD tree:
* Files and directories are displayed in a hierarchical tree structure
@@ -51,59 +56,139 @@ The following features and functionality are provided by the NERD tree:
* sym-links
* windows .lnk files
* read-only files
* executable files
* Many (customisable) mappings are provided to manipulate the tree:
* Mappings to open/close/explore directory nodes
* Mappings to open files in new/existing windows/tabs
* Mappings to change the current root of the tree
* Mappings to navigate around the tree
* Mappings to open files in new/existing windows/tabs
* Mappings to change the current root of the tree
* Mappings to navigate around the tree
* ...
* Most NERD tree navigation can also be done with the mouse
* Directories and files can be bookmarked.
* Most NERD tree navigation can also be done with the mouse
* Dynamic customisation of tree content
* custom file filters to prevent e.g. vim backup files being displayed
* optional displaying of hidden files (. files)
* files can be "turned off" so that only directories are displayed
* A textual filesystem menu is provided which allows you to
create/delete/rename file and directory nodes
* The position and size of the NERD tree window can be customised
create/delete/move file and directory nodes as well as copy (for
supported OSs)
* The position and size of the NERD tree window can be customised
* The order in which the nodes in the tree are listed can be customised.
* A model of your filesystem is created/maintained as you explore it. This
has several advantages:
* All filesystem information is cached and is only re-read on demand
* If you revisit a part of the tree that you left earlier in your
session, the directory nodes will be opened/closed as you left them
session, the directory nodes will be opened/closed as you left them
* The script remembers the cursor position and window position in the NERD
tree so you can toggle it off (or just close the tree window) and then
reopen it (with NERDTreeToggle) the NERD tree window will appear EXACTLY
as you left it
* You can have a separate NERD tree for each tab
* You can have a separate NERD tree for each tab
==============================================================================
2. Functionality provided *NERDTreeFunctionality*
2. Functionality provided *NERDTreeFunctionality*
------------------------------------------------------------------------------
2.1. Commands *NERDTreeCommands*
2.1. Global Commands *NERDTreeGlobalCommands*
:NERDTree [start-directory] *:NERDTree*
Opens a fresh NERD tree in [start-directory] or the current
directory if [start-directory] isn't specified.
For example: >
:NERDTree /home/marty/vim7/src
< will open a NERD tree in /home/marty/vim7/src.
:NERDTree [<start-directory> | <bookmark>] *:NERDTree*
Opens a fresh NERD tree. The root of the tree depends on the argument
given. There are 3 cases: If no argument is given, the current directory
will be used. If a directory is given, that will be used. If a bookmark
name is given, the corresponding directory will be used. For example: >
:NERDTree /home/marty/vim7/src
:NERDTree foo (foo is the name of a bookmark)
<
:NERDTreeFromBookmark <bookmark> *:NERDTreeFromBookmark*
Opens a fresh NERD tree with the root initialized to the dir for
<bookmark>. This only reason to use this command over :NERDTree is for
the completion (which is for bookmarks rather than directories).
:NERDTreeToggle [start-directory] *:NERDTreeToggle*
If a NERD tree already exists for this tab, it is reopened and
rendered again. If no NERD tree exists for this tab then this
command acts the same as the |:NERDTree| command.
:NERDTreeToggle [<start-directory> | <bookmark>] *:NERDTreeToggle*
If a NERD tree already exists for this tab, it is reopened and rendered
again. If no NERD tree exists for this tab then this command acts the
same as the |:NERDTree| command.
:NERDTreeClose
Close the NERD tree in this tab.
------------------------------------------------------------------------------
2.2. NERD tree Mappings *NERDTreeMappings*
2.2. Bookmarks *NERDTreeBookmarks*
Bookmarks in the NERD tree are a way to tag files or directories of interest.
For example, you could use bookmarks to tag all of your project directories.
------------------------------------------------------------------------------
2.2.1. The Bookmark Table *NERDTreeBookmarkTable*
If the bookmark table is active (see |NERDTree-B| and
|'NERDTreeShowBookmarks'|), it will be rendered above the tree. You can double
click bookmarks or use the |NERDTree-o| mapping to activate them. See also,
|NERDTree-t| and |NERDTree-T|
------------------------------------------------------------------------------
2.2.2. Bookmark commands *NERDTreeBookmarkCommands*
Note that the following commands are only available in the NERD tree buffer.
:Bookmark <name>
Bookmark the current node as <name>. If there is already a <name>
bookmark, it is overwritten. <name> must not contain spaces.
:BookmarkToRoot <bookmark>
Make the directory corresponding to <bookmark> the new root. If a treenode
corresponding to <bookmark> is already cached somewhere in the tree then
the current tree will be used, otherwise a fresh tree will be opened.
Note that if <bookmark> points to a file then its parent will be used
instead.
:RevealBookmark <bookmark>
If the node is cached under the current root then it will be revealed
(i.e. directory nodes above it will be opened) and the cursor will be
placed on it.
:OpenBookmark <bookmark>
<bookmark> must point to a file. The file is opened as though |NERDTree-o|
was applied. If the node is cached under the current root then it will be
revealed and the cursor will be placed on it.
:ClearBookmarks [<bookmarks>]
Remove all the given bookmarks. If no bookmarks are given then remove all
bookmarks on the current node.
:ClearAllBookmarks
Remove all bookmarks.
:ReadBookmarks
Re-read the bookmarks in the |'NERDTreeBookmarksFile'|.
See also |:NERDTree| and |:NERDTreeFromBookmark|.
------------------------------------------------------------------------------
2.2.3. Invalid Bookmarks *NERDTreeInvalidBookmarks*
If invalid bookmarks are detected, the script will issue an error message and
the invalid bookmarks will become unavailable for use.
These bookmarks will still be stored in the bookmarks file (see
|'NERDTreeBookmarksFile'|), down the bottom. There will always be a blank line
after the valid bookmarks but before the invalid ones.
Each line in the bookmarks file represents one bookmark. The proper format is:
<bookmark name><space><full path to the bookmark location>
After you have corrected any invalid bookmarks, either restart vim, or go
:ReadBookmarks from the NERD tree window.
------------------------------------------------------------------------------
2.3. NERD tree Mappings *NERDTreeMappings*
Default Description~ help-tag~
Key~
o.......Open selected file, or expand selected dir...............|NERDTree-o|
o.......Open files, directories and bookmarks....................|NERDTree-o|
go......Open selected file, but leave cursor in the NERDTree.....|NERDTree-go|
t.......Open selected node in a new tab..........................|NERDTree-t|
t.......Open selected node/bookmark in a new tab.................|NERDTree-t|
T.......Same as 't' but keep the focus on the current tab........|NERDTree-T|
<tab>...Open selected file in a split window.....................|NERDTree-tab|
g<tab>..Same as <tab>, but leave the cursor on the NERDTree......|NERDTree-gtab|
@@ -114,9 +199,11 @@ X.......Recursively close all children of the current node.......|NERDTree-X|
e.......Open a netrw for the current dir.........................|NERDTree-e|
double-click.......same as the |NERDTree-o| map.
middle-click.......same as |NERDTree-tab| for files, same as
middle-click.......same as |NERDTree-tab| for files, same as
|NERDTree-e| for dirs.
D.......Delete the current bookmark .............................|NERDTree-D|
P.......Jump to the root node....................................|NERDTree-P|
p.......Jump to current nodes parent.............................|NERDTree-p|
K.......Jump up inside directories at the current tree depth.....|NERDTree-K|
@@ -135,6 +222,7 @@ cd......Change the CWD to the dir of the selected node...........|NERDTree-cd|
H.......Toggle whether hidden files displayed....................|NERDTree-H|
f.......Toggle whether the file filters are used.................|NERDTree-f|
F.......Toggle whether files are displayed.......................|NERDTree-F|
B.......Toggle whether the bookmark table is displayed...........|NERDTree-B|
q.......Close the NERDTree window................................|NERDTree-q|
?.......Toggle the display of the quick help.....................|NERDTree-?|
@@ -145,8 +233,16 @@ Default key: o
Map option: NERDTreeMapActivateNode
Applies to: files and directories.
If a file node is selected, it is opened in the previous window. If a
directory is selected it is opened or closed depending on its current state.
If a file node is selected, it is opened in the previous window.
If a directory is selected it is opened or closed depending on its current
state.
If a bookmark that links to a directory is selected then that directory
becomes the new root.
If a bookmark that links to a file is selected then that file is opened in the
previous window.
------------------------------------------------------------------------------
*NERDTree-go*
@@ -166,8 +262,12 @@ Default key: t
Map option: NERDTreeMapOpenInTab
Applies to: files and directories.
Opens the selected file in a new tab. If a directory is selected, a netrw is
opened in a new tab.
Opens the selected file in a new tab. If a directory is selected, a fresh
NERD Tree for that directory is opened in a new tab.
If a bookmark which points to a directory is selected, open a NERD tree for
that directory in a new tab. If the bookmark points to a file, open that file
in a new tab.
------------------------------------------------------------------------------
*NERDTree-T*
@@ -214,10 +314,9 @@ Applies to: directories.
Recursively opens the selelected directory.
All files and directories are cached, but if a directory would not be
displayed due to file filters (see |NERDTreeIgnore| |NERDTree-f|) or the
hidden file filter (see |NERDTreeShowHidden|) then it is not opened. This is
handy, especially if you have .svn directories.
displayed due to file filters (see |'NERDTreeIgnore'| |NERDTree-f|) or the
hidden file filter (see |'NERDTreeShowHidden'|) then its contents are not
cached. This is handy, especially if you have .svn directories.
------------------------------------------------------------------------------
*NERDTree-x*
@@ -245,6 +344,14 @@ Applies to: files and directories.
Opens a netrw on the selected directory, or the selected file's directory.
------------------------------------------------------------------------------
*NERDTree-D*
Default key: D
Map option: NERDTreeMapDeleteBookmark
Applies to: lines in the bookmarks table
Deletes the currently selected bookmark.
------------------------------------------------------------------------------
*NERDTree-P*
Default key: P
@@ -293,8 +400,7 @@ Default key: <C-j>
Map option: NERDTreeMapJumpNextSibling
Applies to: files and directories.
If a dir node is selected, jump to the next sibling of that node.
If a file node is selected, jump to the next sibling of that nodes parent.
Jump to the next sibling of the selected node.
------------------------------------------------------------------------------
*NERDTree-c-k*
@@ -302,8 +408,7 @@ Default key: <C-k>
Map option: NERDTreeMapJumpPrevSibling
Applies to: files and directories.
If a dir node is selected, jump to the previous sibling of that node.
If a file node is selected, jump to the previous sibling of that nodes parent.
Jump to the previous sibling of the selected node.
------------------------------------------------------------------------------
*NERDTree-C*
@@ -311,7 +416,8 @@ Default key: C
Map option: NERDTreeMapChdir
Applies to: directories.
Made the selected directory node the new tree root.
Make the selected directory node the new tree root. If a file is selected, its
parent is used.
------------------------------------------------------------------------------
*NERDTree-u*
@@ -371,7 +477,7 @@ Default key: f
Map option: NERDTreeMapToggleFilters
Applies to: no restrictions.
Toggles whether file filters are used. See |NERDTreeIgnore| for details.
Toggles whether file filters are used. See |'NERDTreeIgnore'| for details.
------------------------------------------------------------------------------
*NERDTree-F*
@@ -381,6 +487,14 @@ Applies to: no restrictions.
Toggles whether file nodes are displayed.
------------------------------------------------------------------------------
*NERDTree-B*
Default key: B
Map option: NERDTreeMapToggleBookmarks
Applies to: no restrictions.
Toggles whether the bookmarks table is displayed.
------------------------------------------------------------------------------
*NERDTree-q*
Default key: q
@@ -401,13 +515,14 @@ Toggles whether the quickhelp is displayed.
2.3. The filesystem menu *NERDTreeFilesysMenu*
The purpose of the filesystem menu is to allow you to perform basic filesystem
operations quickly from the NERD tree rather than the console.
operations quickly from the NERD tree rather than the console.
The filesystem menu can be accessed with 'm' mapping and has three supported
The filesystem menu can be accessed with 'm' mapping and has four supported
operations: >
1. Adding nodes.
2. Renaming nodes.
2. Move nodes.
3. Deleting nodes.
3. Copying nodes.
<
1. Adding nodes:
To add a node move the cursor onto (or anywhere inside) the directory you wish
@@ -416,18 +531,25 @@ filesystem menu and type a filename. If the filename you type ends with a '/'
character then a directory will be created. Once the operation is completed,
the cursor is placed on the new node.
2. Renaming nodes:
To rename a node, put the cursor on it and select the 'rename' option from the
filesystem menu. Enter the new name for the node and it will be renamed. If
the old file is open in a buffer, you will be asked if you wish to delete that
buffer. Once the operation is complete the cursor will be placed on the
renamed node.
2. Move nodes:
To move/rename a node, put the cursor on it and select the 'move' option from
the filesystem menu. Enter the new location for the node and it will be
moved. If the old file is open in a buffer, you will be asked if you wish to
delete that buffer. Once the operation is complete the cursor will be placed
on the renamed node.
3. Deleting nodes:
To delete a node put the cursor on it and select the 'delete' option from the
filesystem menu. After confirmation the node will be deleted. If a file is
deleted but still exists as a buffer you will be given the option to delete
that buffer.
that buffer.
4. Copying nodes:
To copy a node put the cursor on it and select the 'copy' option from the
filesystem menu. Enter the new location and you're done. Note: copying is
currently only supported for *nix operating systems. If someone knows a
one line copying command for windows that doesnt require user confirmation
then id be grateful if you'd email me.
==============================================================================
3. Customisation *NERDTreeOptions*
@@ -439,63 +561,68 @@ that buffer.
The script provides the following options that can customise the behaviour the
NERD tree. These options should be set in your vimrc.
|loaded_nerd_tree| Turns off the script.
|'loaded_nerd_tree'| Turns off the script.
|NERDChristmasTree| Tells the NERD tree to make itself colourful
|'NERDChristmasTree'| Tells the NERD tree to make itself colourful
and pretty.
|NERDTreeAutoCenter| Controls whether the NERD tree window centers
|'NERDTreeAutoCenter'| Controls whether the NERD tree window centers
when the cursor moves within a specified
distance to the top/bottom of the window.
|NERDTreeAutoCenterThreshold| Controls the sensitivity of autocentering.
|'NERDTreeAutoCenterThreshold'| Controls the sensitivity of autocentering.
|NERDTreeCaseSensitiveSort| Tells the NERD tree whether to be case
|'NERDTreeCaseSensitiveSort'| Tells the NERD tree whether to be case
sensitive or not when sorting nodes.
|NERDTreeChDirMode| Tells the NERD tree if/when it should change
|'NERDTreeChDirMode'| Tells the NERD tree if/when it should change
vim's current working directory.
|NERDTreeHighlightCursorline| Tell the NERD tree whether to highlight the
|'NERDTreeHighlightCursorline'| Tell the NERD tree whether to highlight the
current cursor line.
|NERDTreeIgnore| Tells the NERD tree which files to ignore.
|'NERDTreeIgnore'| Tells the NERD tree which files to ignore.
|NERDTreeMouseMode| Tells the NERD tree how to handle mouse
|'NERDTreeBookmarksFile'| Where the bookmarks are stored.
|'NERDTreeMouseMode'| Tells the NERD tree how to handle mouse
clicks.
|NERDTreeShowFiles| Tells the NERD tree whether to display files
|'NERDTreeQuitOnOpen'| Closes the tree window after opening a file.
|'NERDTreeShowBookmarks'| Tells the NERD tree whether to display the
bookmarks table on startup.
|'NERDTreeShowFiles'| Tells the NERD tree whether to display files
in the tree on startup.
|NERDTreeShowHidden| Tells the NERD tree whether to display hidden
|'NERDTreeShowHidden'| Tells the NERD tree whether to display hidden
files on startup.
|NERDTreeSortOrder| Tell the NERD tree how to sort the nodes in
|'NERDTreeShowLineNumbers'| Tells the NERD tree whether to display line
numbers in the tree window.
|'NERDTreeSortOrder'| Tell the NERD tree how to sort the nodes in
the tree.
|NERDTreeSplitVertical| Tells the script whether the NERD tree should
be created by splitting the window vertically
or horizontally.
|NERDTreeWinPos| Tells the script where to put the NERD tree
|'NERDTreeWinPos'| Tells the script where to put the NERD tree
window.
|NERDTreeWinSize| Sets the window size when the NERD tree is
|'NERDTreeWinSize'| Sets the window size when the NERD tree is
opened.
------------------------------------------------------------------------------
3.2. Customisation details *NERDTreeOptionDetails*
To enable any of the below options you should put the given line in your
To enable any of the below options you should put the given line in your
~/.vimrc
*loaded_nerd_tree*
*'loaded_nerd_tree'*
If this plugin is making you feel homicidal, it may be a good idea to turn it
off with this line in your vimrc: >
let loaded_nerd_tree=1
<
------------------------------------------------------------------------------
*NERDChristmasTree*
*'NERDChristmasTree'*
Values: 0 or 1.
Default: 1.
@@ -505,29 +632,29 @@ added to the nerd tree to make it more colourful.
Set it to 0 for a more vanilla looking tree.
------------------------------------------------------------------------------
*NERDTreeAutoCenter*
*'NERDTreeAutoCenter'*
Values: 0 or 1.
Default: 1
If set to 1, the NERD tree window will center around the cursor if it moves to
within |NERDTreeAutoCenterThreshold| lines of the top/bottom of the window.
within |'NERDTreeAutoCenterThreshold'| lines of the top/bottom of the window.
This is ONLY done in response to tree navigation mappings,
This is ONLY done in response to tree navigation mappings,
i.e. |NERDTree-J| |NERDTree-K| |NERDTree-C-J| |NERDTree-c-K| |NERDTree-p|
|NERDTree-P|
The centering is done with a |zz| operation.
------------------------------------------------------------------------------
*NERDTreeAutoCenterThreshold*
*'NERDTreeAutoCenterThreshold'*
Values: Any natural number.
Default: 3
This option controls the "sensitivity" of the NERD tree auto centering. See
|NERDTreeAutoCenter| for details.
|'NERDTreeAutoCenter'| for details.
------------------------------------------------------------------------------
*NERDTreeCaseSensitiveSort*
*'NERDTreeCaseSensitiveSort'*
Values: 0 or 1.
Default: 0.
@@ -548,10 +675,10 @@ account. The above nodes would then be sorted like this: >
boner.c
<
------------------------------------------------------------------------------
*NERDTreeChDirMode*
*'NERDTreeChDirMode'*
Values: 0, 1 or 2.
Default: 1.
Default: 0.
Use this option to tell the script when (if at all) to change the current
working directory (CWD) for vim.
@@ -570,17 +697,8 @@ the CWD is changed whenever the tree root is changed. For example, if the CWD
is /home/marty/foobar and you make the node for /home/marty/foobar/baz the new
root then the CWD will become /home/marty/foobar/baz.
Note to windows users: it is highly recommended that you have this option set
to either 1 or 2 or else the script wont function properly if you attempt to
open a NERD tree on a different drive to the one vim is currently in.
Authors note: at work i have this option set to 1 because i have a giant ctags
file in the root dir of my project. This way i can initialise the NERD tree
with the root dir of my project and always have ctags available to me --- no
matter where i go with the NERD tree.
------------------------------------------------------------------------------
*NERDTreeHighlightCursorline*
*'NERDTreeHighlightCursorline'*
Values: 0 or 1.
Default: 1.
@@ -588,18 +706,19 @@ If set to 1, the current cursor line in the NERD tree buffer will be
highlighted. This is done using the |cursorline| option.
------------------------------------------------------------------------------
*NERDTreeIgnore*
*'NERDTreeIgnore'*
Values: a list of regular expressions.
Default: ['\~$'].
This option is used to specify which files the NERD tree should ignore. It
must be a list of regular expressions. When the NERD tree is rendered, any
files/dirs that match any of the regex's in NERDTreeIgnore wont be displayed.
files/dirs that match any of the regex's in 'NERDTreeIgnore' wont be
displayed.
For example if you put the following line in your vimrc: >
let NERDTreeIgnore=['\.vim$', '\~$']
<
then all files ending in .vim or ~ will be ignored.
then all files ending in .vim or ~ will be ignored.
Note: to tell the NERD tree not to ignore any files you must use the following
line: >
@@ -610,11 +729,18 @@ The file filters can be turned on and off dynamically with the |NERDTree-f|
mapping.
------------------------------------------------------------------------------
*NERDTreeMouseMode*
*'NERDTreeBookmarksFile'*
Values: a path
Default: $HOME/.NERDTreeBookmarks
This is where bookmarks are saved. See |NERDTreeBookmarkCommands|.
------------------------------------------------------------------------------
*'NERDTreeMouseMode'*
Values: 1, 2 or 3.
Default: 1.
If set to 1 then a double click on a node is required to open it.
If set to 1 then a double click on a node is required to open it.
If set to 2 then a single click will open directory nodes, while a double
click will still be required for file nodes.
If set to 3 then a single click will open any node.
@@ -628,31 +754,61 @@ then (to single click activate it) you must click somewhere in
'application.rb'.
------------------------------------------------------------------------------
*NERDTreeShowFiles*
*'NERDTreeQuitOnOpen'*
Values: 0 or 1.
Default: 0
If set to 1, the NERD tree window will close after opening a file with the
|NERDTree-o| or |NERDTree-tab| mappings.
------------------------------------------------------------------------------
*'NERDTreeShowBookmarks'*
Values: 0 or 1.
Default: 0.
If this option is set to 1 then the bookmarks table will be displayed.
This option can be toggled dynamically, per tree, with the |NERDTree-B|
mapping.
------------------------------------------------------------------------------
*'NERDTreeShowFiles'*
Values: 0 or 1.
Default: 1.
If this option is set to 1 then files are displayed in the NERD tree. If it is
set to 0 then only directories are displayed.
This option can be toggled dynamically with the |NERDTree-F| mapping and is
useful for drastically shrinking the tree when you are navigating to a
different part of the tree.
This option can be toggled dynamically, per tree, with the |NERDTree-F|
mapping and is useful for drastically shrinking the tree when you are
navigating to a different part of the tree.
------------------------------------------------------------------------------
*NERDTreeShowHidden*
*'NERDTreeShowHidden'*
Values: 0 or 1.
Default: 0.
This option tells vim whether to display hidden files by default. This option
can be dynamically toggled with the |NERDTree-H| mapping.
Use one of the follow lines to set this option: >
can be dynamically toggled, per tree, with the |NERDTree-H| mapping. Use one
of the follow lines to set this option: >
let NERDTreeShowHidden=0
let NERDTreeShowHidden=1
<
------------------------------------------------------------------------------
*NERDTreeSortOrder*
*'NERDTreeShowLineNumbers'*
Values: 0 or 1.
Default: 0.
This option tells vim whether to display line numbers for the NERD tree
window. Use one of the follow lines to set this option: >
let NERDTreeShowLineNumbers=0
let NERDTreeShowLineNumbers=1
<
------------------------------------------------------------------------------
*'NERDTreeSortOrder'*
Values: a list of regular expressions.
Default: ['\/$', '*', '\.swp$', '\.bak$', '\~$']
@@ -667,8 +823,8 @@ all .h files. All files containing the string 'foobar' will be placed at the
end. The star is a special flag: it tells the script that every node that
doesnt match any of the other regexps should be placed here.
If no star is present in NERDTreeSortOrder then one is automatically appended
to the array.
If no star is present in 'NERDTreeSortOrder' then one is automatically
appended to the array.
The regex '\/$' should be used to match directory nodes.
@@ -680,41 +836,27 @@ Other examples: >
(3) ['\/$', '\.rb$', '\.php$', '*', '\.swp$', '\.bak$', '\~$']
<
1. Directories will appear last, everything else will appear above.
2. Every will simply appear in alphabetical order.
2. Everything will simply appear in alphabetical order.
3. Dirs will appear first, then ruby and php. Swap files, bak files and vim
backup files will appear last with everything else preceding them.
------------------------------------------------------------------------------
*NERDTreeSplitVertical*
Values: 0 or 1.
Default: 1.
*'NERDTreeWinPos'*
Values: "left", "right", "top" or "bottom"
Default: "left".
This option, along with |NERDTreeWinPos|, is used to determine where the NERD
tree window appears.
This option is used to determine where NERD tree window is placed on the
screen.
If it is set to 1 then the NERD tree window will appear on either the left or
right side of the screen (depending on the |NERDTreeWinPos| option).
If it set to 0 then the NERD tree window will appear at the top of the screen.
------------------------------------------------------------------------------
*NERDTreeWinPos*
Values: 0 or 1.
Default: 1.
This option works in conjunction with the |NERDTreeSplitVertical| option to
determine where NERD tree window is placed on the screen.
If the option is set to 1 then the NERD tree will appear on the left or top of
the screen (depending on the value of |NERDTreeSplitVertical|). If set to 0,
the window will appear on the right or bottom of the screen.
"top" or "bottom", will cause a horizontal split to be created for the tree,
while "left" and "right" will cause a vertical split.
This option is makes it possible to use two different explorer type
plugins simultaneously. For example, you could have the taglist plugin on the
left of the window and the NERD tree on the right.
------------------------------------------------------------------------------
*NERDTreeWinSize*
*'NERDTreeWinSize'*
Values: a positive integer.
Default: 31.
@@ -749,10 +891,7 @@ Window manager integration?
6. The Author *NERDTreeAuthor*
The author of the NERD tree is a terrible terrible monster called Martyzilla
who gobbles up small children with milk and sugar for breakfast. He has an odd
love/hate relationship with computers (but monsters hate everything by nature
you know...) which can be awkward for him since he is a pro computer nerd for
a living.
who gobbles up small children with milk and sugar for breakfast.
He can be reached at martin_grenfell at msn.com. He would love to hear from
you, so feel free to send him suggestions and/or comments about this plugin.
@@ -760,12 +899,108 @@ Don't be shy --- the worst he can do is slaughter you and stuff you in the
fridge for later ;)
==============================================================================
7. Changelog *NERDTreeChangelog*
7. Changelog *NERDTreeChangelog*
2.xx.xx
- dont clobber &cpo. Thanks to godlygeek for the bug report.
2.14.0
- fix a bug where the <c-w>o mapping would cause the tree window to be
incorrectly sized when reopened.
- add keymapping to delete bookmarks from the bookmarks table, see
:help NERDTree-D
- lots of refactoring
2.13.0
- make NERDTreeChDir option default to 0 (i.e. never change vims current
working dir by default)
- when moving/deleting nodes with the filesystem menu, move/delete any
associated bookmarks
- make the t/T on directory nodes open a fresh NERD tree for the selected
dir in a new tab, rather than a netrw.
- place the cursor at the top of the bookmarks table when opening it with B
- make NERDTreeQuitOnOpen option work with the g<tab> and go mappings,
thanks to Maxim Kim for the bug report
- change how invalid bookmarks are handled. Now they are not deleted. If a
bookmark is malformed (in the bookmarks file) or points to an
invalid/nonexisting location then print an error and place the offending
bookmarks at the bottom of the bookmarks file. See :help
|NERDTreeInvalidBookmarks| for info. Thanks to Zhang Shuhan for the
suggestion and the testing.
- fix a bug with the 'o' mapping that occurred when opening a new buffer
for a file whose name was a substring of an already open file. Thanks to
Charlton Wang for the report.
- stop the script from going into an infinite loop when it tries to cache
a named pipe. Thanks to Charlton Wang for the report.
2.12.0
- added a UI for bookmarks. See :help NERDTreeBookmarkTable for details.
Thanks to Zhang Shuhan for testing and bug reports.
- relaxed the restrictions on bookmark names, now the only restriction is
that they cant contain spaces. This allows for e.g. Chinese bookmark
names. Thanks to Zhang Shuhan for the suggestion.
- combined the NERDTreeWinPos and NERDTreeSplitVertical options. See :help
NERDTreeWinPos.
- applied a patch from Matan Nassau to add the NERDTreeQuitOnOpen option
which closes the tree window after opening a file. See :help
NERDTreeQuitOnOpen.
- optimised the nerd tree rendering. Now it takes just over 1/3 of the
time it previously took to render.
- now the tree filter mappings toggle the filters "per tree" rather than
globally. The global filter variables are used to set the initial filter
settings for each new NERD tree.
- fix to window resizing when opening a file when NERD tree is the only
window open
- other fixes
2.11.0
- changes to the 'o' mapping when opening files:
- dont clobber "special" windows (eg taglist/quickfix/etc). This should
make the NERD tree play nicer with other explorer plugins. Thanks to
Yuan Jiang for the suggestion.
- if the file is already open in the current tab, just move the cursor
to that window
- highlight executable files, made some slight changes to other
highlighting
- if the user resizes the tree window, keep that new size. Dont reset to
the default during the <tab> mapping, or :NERDTreeToggle command. Only
reset the size if a fresh tree is started with :NERDTree.
- remove the "magic" functionality from the <c-j>/<c-k> mappings (it was
more confusing than helpful)
- other minor fixes
2.10.0
- added bookmarks, see :help NERDTreeBookmarkCommands for details. Thanks
to Piotr Czachur for all his testing and suggestions.
- fixed screen jumping bug with when &scrolloff != 0
- fixed some bugs with copying nodes
- other random fixes
- change license to wtfpl
2.9.0
- path handling improvements, thanks to Zhang Shuhan for heaps of
testing/bug reports
* improved how paths are stored, now the script will no longer get
confused about drives on MF Windows
* made the script way better at handling paths with strange characters
in them (eg '$@; etc)
- applied a patch from Cory Echols
* add the command :NERDTreeClose to close the tree for the current tab
* set the filetype for the NERD tree buffer to "nerdtree"
2.8.0
- added an option to enable/disable line numbers in the NERD tree window,
thanks to Olivier Yiptong for the email.
2.7.1
- Changed the keys for the filesystem menu to be mnemonic rather than
arbitrary integers
- Documented the copying functionality in the filesystem menu
2.7.0
- Bug fix: Now when you have the tree on the right and you open it with
multiple windows stacked, it will take up the full height of the vim
window.
window.
- Now line numbers always turned off in the tree by default
- Implemented copying of nodes (via the filesystem menu) for *nix/macosx
- took the help doc out of the script and repackaged the whole thing as a
@@ -785,9 +1020,9 @@ fridge for later ;)
and you use <c-j/k> the cursor will jump to its PARENTS next/previous
sibling. Go :help NERDTree-c-j and :help NERDTree-c-k for info.
- Extended the behaviour of the J/K mappings. Now if the cursor is on the
last child of a node and you push J/K it will jump down to the last child
of the next/prev of its parents siblings that is open and has children.
Go :help NERDTree-J and :help NERDTree-K for info.
last child of a node and you push J/K it will jump down to the last
child of the next/prev of its parents siblings that is open and has
children. Go :help NERDTree-J and :help NERDTree-K for info.
- The goal of these changes is to make tree navigation faster.
- Reorganised the help page a bit.
- Removed the E mapping.
@@ -827,8 +1062,8 @@ fridge for later ;)
- Tree navigation changes:
- Added J and K mappings to jump to last/first child of the current dir.
Options to customise these mappings have also been added.
- Remapped the jump to next/prev sibling commands to be <C-j> and <C-k> by
default.
- Remapped the jump to next/prev sibling commands to be <C-j> and <C-k>
by default.
These changes should hopefully make tree navigation mappings easier to
remember and use as the j and k keys are simply reused 3 times (twice
with modifier keys).
@@ -840,13 +1075,13 @@ fridge for later ;)
- Made the quickhelp correctly display the current single/double click
mappings for opening nodes as specified by the NERDTreeMouseMode option.
- Fixed a bug where the script was spazzing after prompting you to delete
a modified buffer when using the filesystem menu.
a modified buffer when using the filesystem menu.
- Refactoring
2.2.3
- Refactored the :echo output from the script.
- Fixed some minor typos in the doc.
- Made some minor changes to the output of the 'Tree filtering mappings'
part of the quickhelp
part of the quickhelp
2.2.2
- More bugfixes... doh.
@@ -951,7 +1186,7 @@ Thanks to Michael Madsen for emailing me about making case sensitivity
optional when sorting nodes.
Thanks to AOYAMA Shotaro for suggesting that i echo a "please wait" message
when opening large directories.
when opening large directories.
Thanks to Michael Madsen for requesting the NERDTreeCaseSensitiveSort option.
@@ -965,3 +1200,35 @@ in 2.6.0
Thanks to Niels Aan de Brugh for the suggestion that the script now split the
window if you try to open a file in a window containing a modified buffer when
the &hidden option is set.
Thanks to Olivier Yiptong for prompting me to make line numbers in the
NERD tree window optional.
Thanks to Zhang Shuhan for all of his emails and testing to help improve the
NERD tree path handling. Thanks also for suggesting the bookmarks gui, and for
testing and his many suggestions and bugreports about bookmarks.
Thanks to Cory Echols for sending a patch to add the :NERDTreeClose command and
set the NERD tree buffers filetype to 'nerdtree'
Thanks to Piotr Czachur for all his suggestions and testing for the bookmarks
feature.
Thanks to Yuan Jiang for suggesting the "o" mapping shouldnt clobber "special"
windows, like taglist.
Thanks to Matan Nassau for the patch to add the NERDTreeQuitOnOpen option.
Thanks to Maxim Kim for reporting a bug with g<tab> and go mappings when
NERDTreeQuitOnOpen was set.
Thanks to Charlton Wang for reporting bugs with the 'o' mapping and with
handling named pipes.
Chur to godlygeek for reporting a bug where &cpo was getting clobbered.
==============================================================================
9. License *NERDTreeLicense*
The NERD tree is released under the wtfpl.
See http://sam.zoy.org/wtfpl/COPYING.

File diff suppressed because it is too large Load Diff