Defaulting bookmark name to file/dir name

Note that for directories, there is a trailing slash
This commit is contained in:
Min-Young Wu 2011-12-15 15:14:31 -08:00 committed by Martin Grenfell
parent af833e3006
commit dcccd0e532
2 changed files with 9 additions and 3 deletions

View File

@ -155,6 +155,8 @@ 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.
If <name> is not provided, it defaults to the file or directory name.
For directories, a trailing slash is present.
:BookmarkToRoot <bookmark>
Make the directory corresponding to <bookmark> the new root. If a treenode

View File

@ -3546,7 +3546,7 @@ function! s:bindMappings()
"bind all the user custom maps
call s:KeyMap.BindAll()
command! -buffer -nargs=1 Bookmark :call <SID>bookmarkNode('<args>')
command! -buffer -nargs=? Bookmark :call <SID>bookmarkNode('<args>')
command! -buffer -complete=customlist,s:completeBookmarks -nargs=1 RevealBookmark :call <SID>revealBookmark('<args>')
command! -buffer -complete=customlist,s:completeBookmarks -nargs=1 OpenBookmark :call <SID>openBookmark('<args>')
command! -buffer -complete=customlist,s:completeBookmarks -nargs=* ClearBookmarks call <SID>clearBookmarks('<args>')
@ -3558,11 +3558,15 @@ endfunction
" FUNCTION: s:bookmarkNode(name) {{{2
" Associate the current node with the given name
function! s:bookmarkNode(name)
function! s:bookmarkNode(...)
let currentNode = s:TreeFileNode.GetSelected()
if currentNode != {}
let name = a:1
if empty(name)
let name = currentNode.path.getLastPathComponent(1)
endif
try
call currentNode.bookmark(a:name)
call currentNode.bookmark(name)
call s:renderView()
catch /^NERDTree.IllegalBookmarkNameError/
call s:echo("bookmark names must not contain spaces")