nerdtree

A tree explorer plugin for vim.
Index Commits Files Refs
commit 3d508aedce35e1d952d3ce92378ad27ea5960fa6
parent 9afab6257b954a1e9591928e7a8cd220fde51552
Author: Phil Runninger <PhilRunninger@users.noreply.github.com>
Date:   Tue, 27 Aug 2019 20:53:23 -0400

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.

Diffstat:
MCHANGELOG.md | 1+
Mautoload/nerdtree/ui_glue.vim | 1+
Mlib/nerdtree/tree_dir_node.vim | 3++-
Mlib/nerdtree/tree_file_node.vim | 6++++++
4 files changed, 10 insertions(+), 1 deletion(-)
diff --git 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
@@ -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
@@ -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
@@ -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
 "