Vim魔法堂 認識快捷鍵繫結

2021-09-23 21:02:26 字數 2188 閱讀 2361

brief

習慣在vs上按來編譯執行程式,剛用上vim上就覺得無比的麻煩,而隨著對vim的學習我們分階段的簡化這一操作

1. 退出vim,在shell下編譯&&執行程式

:wq

[root@fsjohnhuang ~]# gcc main.c -o main

[root@fsjohnhuang ~]# ./main

2. 在vim的命令列模式下編譯&&執行程式

:!gcc % -o main

:!./main

3. 快捷鍵繫結一鍵編譯&&執行程式

:map :w:!gcc % -o %< && ./%<
以後我們只需在命令模式下按即可實現程式的編譯&&執行了!

現在我們知道通過:map我們可以自定義快捷鍵,那僅知道這些就足矣了嗎?如果不是那請繼續看下文吧!

know command :map more!

通過esc進入vim的命令模式,這裡我們可以輸入vim命令(以:開頭,如:map)和外部命令(以:!開頭,如:!ls)。

繫結快捷鍵

:map命令就是將一連串操作繫結到指定的快捷鍵,語法格式: :map 《快捷鍵》 《命令組》 

《快捷鍵》, 各功能鍵和組合鍵均可作為快捷鍵,並且均可通過vim內建的鍵盤對映來指定(如上面提到的則是escape鍵的映 射,則是回車鍵的對映,代表ctrl-esc和表示shift-f1等)。具體 的鍵盤對映資訊可通過在命令模式下執行 :h key-notation 檢視。

《命令組》,按下《快捷鍵》後依次執行的命令組。其中%佔位符用於表示當前操作的檔案全稱,而%《佔位符表示當前操作的檔名稱(不帶副檔名)。

檢視已繫結的快捷鍵:map

上圖我們看到x,s,o,n,v等字母,這些是啥意思呢?

還記得vim的幾個工作模式(normal,visual,select,command-line,operator pending, insert only)嗎?而上面的x,s,o等就是指出所屬行的快捷鍵僅作用於某模式下。

標記                             模式

常規模式,視覺化模式,運算子模式

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 

vim 快捷鍵 Vim快捷鍵,按鍵彙總

第一部分 一般模式可用的游標移動 複製貼上 搜尋替換等 移動游標的方法 h 或 向左箭頭鍵 游標向左移動乙個字元 j 或 向下箭頭鍵 游標向下移動乙個字元 k 或 向上箭頭鍵 游標向上移動乙個字元 l 或 向右箭頭鍵 游標向右移動乙個字元 如果你將右手放在鍵盤上的話,你會發現 hjkl 是排列在一起...

terminal快捷鍵以及vim快捷鍵

1.linux,mac終端快捷鍵 linux mac輸入terminal命令的快捷鍵 ctrl c,停止執行 ctrl s,暫停螢幕輸出 ctrl q,恢復螢幕輸出 ctrl a,跳到行開始ctrl e,跳到行endctrl left,跳到上乙個單詞ctrl right,跳到下乙個單詞 mac下是a...

vue繫結快捷鍵

比如我們要在某個頁面繫結乙個ctrl s的快捷鍵 因為防止按下快捷鍵觸發多次的情況,所以需要將keydown和keyup都繫結 1.在js全域性設定乙個變數 var flag true2.在methods裡面寫入兩個新函式 handlekeydown e e.preventdefault 取消瀏覽器...