作者yoco315 (眠月)
看板Editor
标题Re: [vim ] 编写shell script时,在vi里直接执行某 …
时间Fri Aug 5 02:17:47 2011
※ 引述《ikari512 ( //StrategyBass)》之铭言:
: 如果正在编写shell script
: 想测试某一行的执行结果
: 要如何不跳出vi直接执行?
: 可能有点类似quickfix的感觉...
: 谢谢!
我不知道快速的方法 @@ 不过我有慢速的方法
map <F4> :!
<C-R>=getline('.')<CR><CR>
之後,只要到你想要执行的那行上面按下 <F4> 就可以了。
原理是这样的:
<C-R>=...<CR> 让使用者输入一个 expression,
map 的实际内容由 expression 的结果决定。
getline('.') 就是这边要输入的 expression 啦,
当 getline 的参数只有一个 '.' 字串的时候,
就会去取现在游标所在的那一行。
<CR> 命令列输入完成,执行 QQ
--
To iterate is human, to recurse, divine.
递回只应天上有, 凡人该当用回圈. L. Peter Deutsch
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.160.107.45
1F:→ angleevil:人正真好 08/05 14:14
2F:→ qwertmn::exec "!".getline(".") 这也可以试试看~效果一样XD 08/08 19:57
3F:推 ikari512:超棒!感谢yoco和qwertmn! 08/11 16:48
4F:→ ikari512:我有发现一个问题,碰到行内有 # 会有以下讯息: 08/11 16:48
5F:→ ikari512:E194: No alternate file name to substitute for '#' 08/11 16:49
6F:→ ikari512:不过如果用上一篇的推文就ok耶 :p 08/11 16:49