nerdtree

A tree explorer plugin for vim.
Index Commits Files Refs
commit abf200397fbbb7271eafa59d90df60c933426065
parent b45f2c27ea95bd9eea756061a37b518f9925b332
Author: bravestarr <bravestarr@users.noreply.github.com>
Date:   Thu, 26 Apr 2018 21:20:33 +0800

Merge branch 'master' into fix-multibyte-path
Diffstat:
Mlib/nerdtree/bookmark.vim | 2+-
Mlib/nerdtree/menu_controller.vim | 24+++++++++++++++---------
Mlib/nerdtree/path.vim | 2+-
3 files changed, 17 insertions(+), 11 deletions(-)
diff --git a/lib/nerdtree/bookmark.vim b/lib/nerdtree/bookmark.vim
@@ -288,7 +288,7 @@ function! s:Bookmark.str()
     let pathStr = self.path.str({'format': 'UI'})
     if strdisplaywidth(pathStr) > pathStrMaxLen
         while strdisplaywidth(pathStr) > pathStrMaxLen && strchars(pathStr) > 0
-            let pathStr = substitute(pathStr, '.\{1}', '', '')
+            let pathStr = substitute(pathStr, '^.', '', '')
         endwhile
         let pathStr = '<' . pathStr
     endif
diff --git a/lib/nerdtree/menu_controller.vim b/lib/nerdtree/menu_controller.vim
@@ -15,29 +15,35 @@ function! s:MenuController.New(menuItems)
     return newMenuController
 endfunction
 
-"FUNCTION: MenuController.showMenu() {{{1
-"start the main loop of the menu and get the user to choose/execute a menu
-"item
+" FUNCTION: MenuController.showMenu() {{{1
+" Enter the main loop of the NERDTree menu, prompting the user to select
+" a menu item.
 function! s:MenuController.showMenu()
     call self._saveOptions()
 
     try
         let self.selection = 0
+        let l:done = 0
 
-        let done = 0
-        while !done
+        while !l:done
             redraw!
             call self._echoPrompt()
-            let key = nr2char(getchar())
-            let done = self._handleKeypress(key)
+
+            let l:key = nr2char(getchar())
+            let l:done = self._handleKeypress(l:key)
         endwhile
     finally
         call self._restoreOptions()
+
+        " Redraw when "Ctrl-C" or "Esc" is received.
+        if !l:done || self.selection == -1
+            redraw!
+        endif
     endtry
 
     if self.selection != -1
-        let m = self._current()
-        call m.execute()
+        let l:m = self._current()
+        call l:m.execute()
     endif
 endfunction
 
diff --git a/lib/nerdtree/path.vim b/lib/nerdtree/path.vim
@@ -721,7 +721,7 @@ function! s:Path.str(...)
         let limit = options['truncateTo']
         if strdisplaywidth(toReturn) > limit-1
             while strdisplaywidth(toReturn) > limit-1 && strchars(toReturn) > 0
-                let toReturn = substitute(toReturn, '.\{1}', '', '')
+                let toReturn = substitute(toReturn, '^.', '', '')
             endwhile
             if len(split(toReturn, '/')) > 1
                 let toReturn = '</' . join(split(toReturn, '/')[1:], '/') . '/'