Brief
習慣在VS上按<F5>來編譯運行程序,剛用上VIM上就覺得無比的麻煩,而隨著對VIM的學習我們分階段的簡化這一操作
1. 退出VIM,在shell下編譯&&運行程序
:wq
[root@fsjohnhuang ~]# gcc main.c -o main
[root@fsjohnhuang ~]# ./main
2. 在VIM的命令行模式下編譯&&運行程序
:!gcc % -o main
:!./main
3. 快捷鍵綁定一鍵編譯&&運行程序
:map <F5> <ESC>:w<CR> <ESC>:!gcc % -o %< && ./%<<CR>
以后我們只需在命令模式下按<F5>即可實現程序的編譯&&運行了!
現在我們知道通過:map我們可以自定義快捷鍵,那僅知道這些就足矣了嗎?如果不是那請繼續看下文吧!
Know command :map More!
通過ESC進入VIM的命令模式,這里我們可以輸入VIM命令(以:開頭,如:map)和外部命令(以:!開頭,如:!ls)。
綁定快捷鍵
:map命令就是將一連串操作綁定到指定的快捷鍵,語法格式: :map <快捷鍵> <命令組>
<快捷鍵>,各功能鍵和組合鍵均可作為快捷鍵,并且均可通過VIM內置的鍵盤映射來指定(如上面提到的<ESC>則是Escape鍵的映射,<CR>則是回車鍵的映射,<C-Esc>代表Ctrl-Esc和<S-F1>表示Shift-F1等)。具體的鍵盤映射信息可通過在命令模式下執行 :h key-notation 查看。
<命令組>,按下<快捷鍵>后依次執行的命令組。其中%占位符用于表示當前操作的文件全稱,而%<占位符表示當前操作的文件名稱(不帶擴展名)。
查看已綁定的快捷鍵 :map
上圖我們看到x,s,o,n,v等字母,這些是啥意思呢?
還記得VIM的幾個工作模式(Normal,Visual,Select,Command-line,Operator pending, Insert only)嗎?而上面的x,s,o等就是指出所屬行的快捷鍵僅作用于某模式下。
標記 模式
<space> 常規模式,可視化模式,運算符模式
n 常規模式
v 可視化模式
o 運算符模式
! 插入模式,命令行模式
i 插入模式
c 命令行模式
那么如何列出指定模式下的已有快捷鍵呢?
:nmap - Display normal mode maps :imap - Display insert mode maps :vmap - Display visual and select mode maps :smap - Display select mode maps :xmap - Display visual mode maps :cmap - Display command-line mode maps :omap - Display operator pending mode maps
也就是可通過 :nmap , :map! 等來在指定的工作模式綁定快捷鍵。
解除快捷鍵綁定 :unmap <快捷鍵>
:iunmap <快捷鍵> 僅解綁插入模式下的快捷鍵,如此類推
解除所有快捷鍵綁定(用戶定義的和系統默認的) :mapclear
Thanks
http://www.pythonclub.org/linux/vim/map
http://www.pythonclub.org/linux/vim/map
http://vim.wikia.com/wiki/Mapping_keys_in_Vim_-_Tutorial_%28Part_1%29
文章列表