作者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
→ angleevil:人正真好 08/05 14:14
→ qwertmn::exec "!".getline(".") 這也可以試試看~效果一樣XD 08/08 19:57
推 ikari512:超棒!感謝yoco和qwertmn! 08/11 16:48
→ ikari512:我有發現一個問題,碰到行內有 # 會有以下訊息: 08/11 16:48
→ ikari512:E194: No alternate file name to substitute for '#' 08/11 16:49
→ ikari512:不過如果用上一篇的推文就ok耶 :p 08/11 16:49