From 3d508aedce35e1d952d3ce92378ad27ea5960fa6 Mon Sep 17 00:00:00 2001 From: Phil Runninger Date: Tue, 27 Aug 2019 20:53:23 -0400 Subject: [PATCH] Fix the `e` key mapping to use netrw if desired (#1031) * Use :edit in openExplorer to allow NERDTreeHijackNetrw to do its thing. * Remove commented-out code. * Make `e` work on file nodes, opening a new NERDTree or netrw buffer. * Update change log. --- CHANGELOG.md | 1 + autoload/nerdtree/ui_glue.vim | 1 + lib/nerdtree/tree_dir_node.vim | 3 ++- lib/nerdtree/tree_file_node.vim | 6 ++++++ 4 files changed, 10 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9e49417..e8b4290 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ # Change Log #### 5.3... +- **.1**: Fix the `e` key mapping to use netrw if desired [#1031](https://github.com/scrooloose/nerdtree/pull/1031) - **.0**: Add file extension and size to sorting capabilities [#1029](https://github.com/scrooloose/nerdtree/pull/1029) #### 5.2... - **.9**: Suppress events for intermediate window/tab/buffer changes [#1026](https://github.com/scrooloose/nerdtree/pull/1026) diff --git a/autoload/nerdtree/ui_glue.vim b/autoload/nerdtree/ui_glue.vim index f045868..b82e791 100644 --- a/autoload/nerdtree/ui_glue.vim +++ b/autoload/nerdtree/ui_glue.vim @@ -72,6 +72,7 @@ function! nerdtree#ui_glue#createDefaultBindings() call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapOpenInTabSilent, 'scope': 'Bookmark', 'callback': s . 'openInNewTabSilent' }) call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapOpenExpl, 'scope': "DirNode", 'callback': s."openExplorer" }) + call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapOpenExpl, 'scope': "FileNode", 'callback': s."openExplorer" }) call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapDeleteBookmark, 'scope': "Bookmark", 'callback': s."deleteBookmark" }) endfunction diff --git a/lib/nerdtree/tree_dir_node.vim b/lib/nerdtree/tree_dir_node.vim index aa9dea6..4015f0b 100644 --- a/lib/nerdtree/tree_dir_node.vim +++ b/lib/nerdtree/tree_dir_node.vim @@ -523,7 +523,8 @@ endfunction " Open an explorer window for this node in the previous window. The explorer " can be a NERDTree window or a netrw window. function! s:TreeDirNode.openExplorer() - call self.open({'where': 'p'}) + execute "wincmd p" + execute "edit ".self.path.str({'format':'Edit'}) endfunction " FUNCTION: TreeDirNode.openInNewTab(options) {{{1 diff --git a/lib/nerdtree/tree_file_node.vim b/lib/nerdtree/tree_file_node.vim index d4c060f..c14f62a 100644 --- a/lib/nerdtree/tree_file_node.vim +++ b/lib/nerdtree/tree_file_node.vim @@ -246,6 +246,12 @@ function! s:TreeFileNode.openInNewTab(options) call self.open(extend({'where': 't'}, a:options)) endfunction +" FUNCTION: TreeFileNode.openExplorer() +function! s:TreeFileNode.openExplorer() + execute "wincmd p" + execute "edit ".self.path.getParent().str({'format':'Edit'}) +endfunction + " FUNCTION: TreeFileNode.putCursorHere(isJump, recurseUpward){{{1 " Places the cursor on the line number this node is rendered on "