在VIM中直接将当前文件当做脚本执行的方法

在VIM中直接将当前文件当做脚本执行的方法

作为一名IC数字后端狗,经常要写写脚本处理log/report,或者执行任务提交。但是,由于比较手残,我在编写调试脚本(Perl/Python/C shell)的时候,经常反复地修改脚本(编辑器:VIM),然后回到终端执行,然后再修改脚本,,,如此反复。。于是就想:有没有方法可以在VIM中直接调用shell执行当前文件,然后将所有的终端输出(包含Error/Warning)全部返回到当前的VIM窗口中呢?然后,我就Google到了这个东西:

function! Setup_ExecNDisplay()
  execute "w"
  execute "silent !chmod +x %:p"
  let n=expand('%:t')
  execute "silent !%:p 2>&1 | tee ~/.vim/output_".n
  " I prefer vsplit
  "execute "split ~/.vim/output_".n
  execute "vsplit ~/.vim/output_".n
  execute "redraw!"
  set autoread
endfunction

:nmap <F5> :call Setup_ExecNDisplay()<CR>

将上面的这段代码写到我的 ~/.vimrc 中。
从此以后,我在编写脚本的时候,只需要 F5 键就可以在VIM中直接执行当前的脚本了。执行之后的结果(屏幕输出)会被放在VIM窗口分屏之后的左边窗口内。
这样,就可以很方便地随时进行调试了,,只需要按下F5

声明:上面的脚本完全参考自:
http://stackoverflow.com/questions/953398/how-to-execute-file-im-editing-in-vim

需要注意的是,如果你用的是bash,那么上面的设置是可以正常使用的。
但是,如果用的是tcsh/csh,由于tcsh/csh对重定向的解释与bash有一定出入,导致需要对上面的重定向(第5行)相关的设定进行修改。否则,可能无法将结果定向到结果文件中,vim也就无法返回执行的结果了。

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值