citadel

My dotfiles, scripts and nix configs
git clone git://jb55.com/citadel
Log | Files | Refs | README | LICENSE

exec_menuitem.vim (1614B)


      1 " ============================================================================
      2 " File:        exec_menuitem.vim
      3 " Description: plugin for NERD Tree that provides an execute file menu item
      4 " Maintainer:  Martin Grenfell <martin.grenfell at gmail dot com>
      5 " Last Change: 22 July, 2009
      6 " License:     This program is free software. It comes without any warranty,
      7 "              to the extent permitted by applicable law. You can redistribute
      8 "              it and/or modify it under the terms of the Do What The Fuck You
      9 "              Want To Public License, Version 2, as published by Sam Hocevar.
     10 "              See http://sam.zoy.org/wtfpl/COPYING for more details.
     11 "
     12 " ============================================================================
     13 if exists("g:loaded_nerdtree_exec_menuitem")
     14     finish
     15 endif
     16 let g:loaded_nerdtree_exec_menuitem = 1
     17 
     18 call NERDTreeAddMenuItem({
     19             \ 'text': '(!)Execute file',
     20             \ 'shortcut': '!',
     21             \ 'callback': 'NERDTreeExecFile',
     22             \ 'isActiveCallback': 'NERDTreeExecFileActive' })
     23 
     24 function! NERDTreeExecFileActive()
     25     let node = g:NERDTreeFileNode.GetSelected()
     26     return !node.path.isDirectory && node.path.isExecutable
     27 endfunction
     28 
     29 function! NERDTreeExecFile()
     30     let treenode = g:NERDTreeFileNode.GetSelected()
     31     echo "==========================================================\n"
     32     echo "Complete the command to execute (add arguments etc):\n"
     33     let cmd = treenode.path.str({'escape': 1})
     34     let cmd = input(':!', cmd . ' ')
     35 
     36     if cmd != ''
     37         exec ':!' . cmd
     38     else
     39         echo "Aborted"
     40     endif
     41 endfunction