aboutsummaryrefslogtreecommitdiff
path: root/vim.dot.link/plugin/startshell_mapping.vim.disabled
diff options
context:
space:
mode:
authorSilvio Rhatto <rhatto@riseup.net>2013-12-27 15:32:50 -0200
committerSilvio Rhatto <rhatto@riseup.net>2013-12-27 15:32:50 -0200
commit5032aca04f4d0bce092ade66fe914c34af357a5e (patch)
tree3ba885989ff09b1ab3eb0a16ac865e797c8ca0e7 /vim.dot.link/plugin/startshell_mapping.vim.disabled
downloadvim-5032aca04f4d0bce092ade66fe914c34af357a5e.tar.gz
vim-5032aca04f4d0bce092ade66fe914c34af357a5e.tar.bz2
Initial import
Diffstat (limited to 'vim.dot.link/plugin/startshell_mapping.vim.disabled')
-rw-r--r--vim.dot.link/plugin/startshell_mapping.vim.disabled36
1 files changed, 36 insertions, 0 deletions
diff --git a/vim.dot.link/plugin/startshell_mapping.vim.disabled b/vim.dot.link/plugin/startshell_mapping.vim.disabled
new file mode 100644
index 0000000..e9704f4
--- /dev/null
+++ b/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