在 VIM 中執行選取區塊內的程式

用 Limp 時發現可以選取區塊後直接執行, 轉念一想, 這應該可以用在任何有直譯器的語言。首先在 ~/.vimrc 內加入這兩行 (以 Python 為例):
autocmd BufRead,BufNewFile *.py map <F10> :% w !python
autocmd BufRead,BufNewFile *.py vmap f :w !python
這裡的意思是編輯副檔名為 py 的檔案時才套用後面的命令。第一行表示按 F10 就將內文全部透過 pipe 丟給 python。相當於在 shell 下這麼做:
cat MY_SCRIPT.py | python
第二行將指令對應到 visual mode (按 V, v, Ctrl+v 選取區塊), 選好區塊後按 f 會執行被選到的那幾行程式。假設選到的是第三到五行, 相當於在 shell 下這麼做:
head -5 MY_SCRIPT.py | tail -3 | python
選用 f 只是我個人習慣 (最不費力的鍵), 大家可以換成自己喜歡的鍵。其它語言只要有直譯器, 把設定中的 python 換成該直譯器 (比方 ruby), *.py 換成對應的副檔名 (比方 *.rb) 即可。

本文作法比較陽春, 希望足以應付大部份的情況。

留言

這個網誌中的熱門文章

(C/C++ ) 如何在 Linux 上使用自行編譯的第三方函式庫

熟悉系統工具好處多多

virtualbox 使用 USB 裝置