Vim中如何配置運(yùn)行「Python,Ruby等主流Shell語言」的「統(tǒng)一的一個(gè)」快捷鍵?
問題描述
[描述]經(jīng)常有這種需求: 在Linux命令行中,希望不脫離Vim運(yùn)行試驗(yàn)下當(dāng)前編輯的腳本文件(如有時(shí)候print一個(gè)東西)
單個(gè)語言如Python的我知道,<leader>r :!python %<cr>
我知道在Vim能調(diào)用shell,但是多個(gè)語言統(tǒng)一映射到一個(gè)快捷鍵(初步擬定為<Leader>r)如何做?
問題解答
回答1:基本思路是使用autocmd根據(jù)當(dāng)前緩沖的文件的類型或者語法的類型添加不同的map命令。
例如,如果只需要編譯/執(zhí)行當(dāng)前文件,則可以在你的vimrc文件中為每個(gè)不同的文件類型添加如下內(nèi)容:
autocmd FileType sometype nnoremap <buffer> <F5> :w<CR>:!somecompiler % <CR>
對 python 來說,就是
autocmd FileType python nnoremap <buffer> <F5> :w<CR>:!python % <CR>
其中<F5>可以改成其他你想映射的鍵位,如<leader>r。
如果你需要跨平臺,可以參考這里。
如果你需要更高級的功能,如多文件編譯、運(yùn)行文件中的部分代碼等,就需要自己寫 VIM 腳本了。python 的可以參考這里。
回答2:在vim的fplugin目錄中創(chuàng)建文件 [語言名].vim然后把對應(yīng)語言的配置寫到這個(gè)文件中,vim就會根據(jù)文件后綴自動加載這些配置
回答3:給文件加執(zhí)行權(quán)限,文件頭加上#!/bin/bash #!/usr/bin/python #!/usr/bin/ruby 每次要運(yùn)行的時(shí)候 :./ 這個(gè)文件就好了。
回答4:推薦你使用vim-quickrun
map <leader>r :QuickRun<CR>
