Compare commits

...

138 Commits

Author SHA1 Message Date
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
4 changed files with 1076 additions and 580 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,14 @@
==============================================================================
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 Bookmark commands.................|NERDTreeBookmarkCommands|
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 +33,7 @@ CONTENTS *NERDTree-contents*
6.The Author..............................|NERDTreeAuthor|
7.Changelog...............................|NERDTreeChangelog|
8.Credits.................................|NERDTreeCredits|
9.License.................................|NERDTreeLicense|
==============================================================================
1. Intro *NERDTree*
@@ -41,7 +43,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,52 +53,102 @@ 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. Bookmark Commands *NERDTreeBookmarkCommands*
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.
See also |:NERDTree| and |:NERDTreeFromBookmark|.
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 consist of alphanumeric
characters and underscores.
: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.
------------------------------------------------------------------------------
2.3. NERD tree Mappings *NERDTreeMappings*
Default Description~ help-tag~
Key~
@@ -114,7 +166,7 @@ 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.
P.......Jump to the root node....................................|NERDTree-P|
@@ -215,9 +267,8 @@ 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.
hidden file filter (see |NERDTreeShowHidden|) then its contents are not
cached. This is handy, especially if you have .svn directories.
------------------------------------------------------------------------------
*NERDTree-x*
@@ -293,8 +344,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 +352,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 +360,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*
@@ -401,7 +451,7 @@ 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 four supported
operations: >
@@ -428,7 +478,7 @@ on the renamed node.
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
@@ -468,6 +518,8 @@ NERD tree. These options should be set in your vimrc.
|NERDTreeIgnore| Tells the NERD tree which files to ignore.
|NERDTreeBookmarksFile| Where the bookmarks are stored.
|NERDTreeMouseMode| Tells the NERD tree how to handle mouse
clicks.
@@ -477,6 +529,9 @@ NERD tree. These options should be set in your vimrc.
|NERDTreeShowHidden| Tells the NERD tree whether to display hidden
files on startup.
|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.
@@ -486,7 +541,7 @@ NERD tree. These options should be set in your vimrc.
|NERDTreeWinPos| Tells the script where to put the NERD tree
window.
|NERDTreeWinSize| Sets the window size when the NERD tree is
opened.
@@ -494,10 +549,10 @@ NERD tree. These options should be set in your vimrc.
------------------------------------------------------------------------------
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
@@ -513,21 +568,21 @@ 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.
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
@@ -535,7 +590,7 @@ This option controls the "sensitivity" of the NERD tree auto centering. See
|NERDTreeAutoCenter| for details.
------------------------------------------------------------------------------
*NERDTreeCaseSensitiveSort*
*NERDTreeCaseSensitiveSort*
Values: 0 or 1.
Default: 0.
@@ -556,7 +611,7 @@ account. The above nodes would then be sorted like this: >
boner.c
<
------------------------------------------------------------------------------
*NERDTreeChDirMode*
*NERDTreeChDirMode*
Values: 0, 1 or 2.
Default: 1.
@@ -578,10 +633,6 @@ 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
@@ -596,18 +647,18 @@ 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: >
@@ -618,11 +669,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.
@@ -636,7 +694,7 @@ then (to single click activate it) you must click somewhere in
'application.rb'.
------------------------------------------------------------------------------
*NERDTreeShowFiles*
*NERDTreeShowFiles*
Values: 0 or 1.
Default: 1.
@@ -648,7 +706,7 @@ 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.
@@ -658,7 +716,18 @@ Use one of the follow lines to set this option: >
let NERDTreeShowHidden=0
let NERDTreeShowHidden=1
<
------------------------------------------------------------------------------
*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.
@@ -688,7 +757,7 @@ 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.
@@ -698,7 +767,7 @@ Values: 0 or 1.
Default: 1.
This option, along with |NERDTreeWinPos|, is used to determine where the NERD
tree window appears.
tree window appears.
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).
@@ -715,7 +784,7 @@ 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.
the window will appear on the right or bottom of the screen.
This option is makes it possible to use two different explorer type
plugins simultaneously. For example, you could have the taglist plugin on the
@@ -757,10 +826,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.
@@ -768,7 +834,47 @@ 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.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
@@ -778,7 +884,7 @@ fridge for later ;)
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
@@ -853,13 +959,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.
@@ -964,7 +1070,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.
@@ -978,3 +1084,24 @@ 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 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.
==============================================================================
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