From 435861ee69becb4f6c780bf7daedb18fdf160815 Mon Sep 17 00:00:00 2001 From: Hieu Nguyen Date: Mon, 9 Apr 2018 19:08:09 +0200 Subject: [PATCH] Support revealing file and executing file with xdg-open for Linux --- nerdtree_plugin/fs_menu.vim | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/nerdtree_plugin/fs_menu.vim b/nerdtree_plugin/fs_menu.vim index c91624d..e963a5f 100644 --- a/nerdtree_plugin/fs_menu.vim +++ b/nerdtree_plugin/fs_menu.vim @@ -29,6 +29,11 @@ if has("gui_mac") || has("gui_macvim") || has("mac") call NERDTreeAddMenuItem({'text': '(q)uicklook the current node', 'shortcut': 'q', 'callback': 'NERDTreeQuickLook'}) endif +if executable("xdg-open") + call NERDTreeAddMenuItem({'text': '(r)eveal the current node in file manager', 'shortcut': 'r', 'callback': 'NERDTreeRevealFileLinux'}) + call NERDTreeAddMenuItem({'text': '(o)pen the current node with system editor', 'shortcut': 'o', 'callback': 'NERDTreeExecuteFileLinux'}) +endif + if g:NERDTreePath.CopyingSupported() call NERDTreeAddMenuItem({'text': '(c)opy the current node', 'shortcut': 'c', 'callback': 'NERDTreeCopyNode'}) endif @@ -337,4 +342,22 @@ function! NERDTreeExecuteFile() endif endfunction +" FUNCTION: NERDTreeRevealFileLinux() {{{1 +function! NERDTreeRevealFileLinux() + let treenode = g:NERDTreeFileNode.GetSelected() + let parentnode = treenode.parent + if parentnode != {} + call system("xdg-open '" . parentnode.path.str() . "' &") + endif +endfunction + +" FUNCTION: NERDTreeExecuteFileLinux() {{{1 +function! NERDTreeExecuteFileLinux() + let treenode = g:NERDTreeFileNode.GetSelected() + if treenode != {} + call system("xdg-open '" . treenode.path.str() . "' &") + endif +endfunction + " vim: set sw=4 sts=4 et fdm=marker: +