diff options
Diffstat (limited to 'modules/vim/vim.dot.link/plugin/startshell_mapping.vim.disabled')
-rw-r--r-- | modules/vim/vim.dot.link/plugin/startshell_mapping.vim.disabled | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/modules/vim/vim.dot.link/plugin/startshell_mapping.vim.disabled b/modules/vim/vim.dot.link/plugin/startshell_mapping.vim.disabled new file mode 100644 index 0000000..e9704f4 --- /dev/null +++ b/modules/vim/vim.dot.link/plugin/startshell_mapping.vim.disabled @@ -0,0 +1,36 @@ +"plugin from http://got-ravings.blogspot.com/2010/07/vim-pr0n-sample-nerd-tree-plugins.html +"guard against sourcing the script twice +if exists("g:loaded_nerdtree_start_shell_mapping") + finish +endif +let g:loaded_nerdtree_start_shell_mapping = 1 + +"bind 'S' to NERDTreeStartShell() +call NERDTreeAddKeyMap({ + \ 'key': 'S', + \ 'callback': 'NERDTreeStartShell', + \ 'quickhelpText': 'start a :shell in this dir' }) + +"change to the dir of the current node and start a :shell +function! NERDTreeStartShell() + + "grab the currently selected dir node (returns + "the parent dir if a file is selected) + let n = g:NERDTreeDirNode.GetSelected() + + "save the cwd so we can restore it after the :shell exits + let oldCWD = getcwd() + + try + + ":lcd to to the selected dir and :shell out + exec 'lcd ' . n.path.str({'format': 'Cd'}) + redraw! + shell + + "make sure we restore the cwd to its original state + finally + exec 'lcd ' . oldCWD + endtry + +endfunction |