aboutsummaryrefslogtreecommitdiff
path: root/modules/vim/vim.dot.link/plugin/startshell_mapping.vim.disabled
diff options
context:
space:
mode:
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.disabled36
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