按鍵綁定
前提
我操作「vim」的環境是「Ubuntu 18.04」,桌面環境是「lxqt」,使用的是「gnome-terminal」或是「qterminal」。
按鍵設定
目前幾個開頭的按鍵
可以執行「:help normal-index」,
可以執行「:help ,」,
可以執行「:help t」,
閱讀原本功能的相關說明。
而「,」和「t」,則是我配置用來當作開頭的按鍵。
Normal Mode
主要對「Buffer」,「Window」,「TabPage」增加了一些「按鍵」,來便利操作。
以下都是在「Normal Mode」所做的按鍵操作。
若是在其他「Mode」可以使用 「Ctrl+[」 或 「Esc」 來返回「Normal Mode」, 接著再操作下面的按鍵功能,
亦或是使用 <Ctrl+c> 也可以用來返回。
舉例:要找到在「Insert Mode」要返回「Normal Mode」的按鍵相關說明,
可以查詢 「:help i_CTRL-[ 」 「:help i_CTRL-C 」 可以找到相關說明。
以下開始來說明我個人的按鍵配置
快速切換
按鍵 | 對應 | 說明 |
---|---|---|
<Backspace> | C-w W | 切換到上一個 Window |
<Tab> | C-w w | 切換到下一個 Window |
<Ctrl+k> | :bprevious | 切換到上一個 Buffer |
<Ctrl+j> | :bnext | 切換到下一個 Buffer |
<Ctrl+h> | :tabprevious | 切換到上一個 TabPage |
<Ctrl+l> | :tabnext | 切換到下一個 TabPage |
離開
以下「q」或「z」會是「單一」。
以下「x」或「c」會是「全部」。
離開 Window 或 TabPage 並且刪除目前顯示的 Buffer,
若只剩最後一個 Window,會離開「vim」。
按鍵 | 對應 | 說明 | 注意事項 |
---|---|---|---|
\q | :q | 單一離開 | 若未存檔,會有確認訊息 |
\x | :qa | 全部離開 | 若未存檔,會有確認訊息 |
\z | :q! | 單一離開 | 若未存檔,不存檔直接離開 |
\c | :qa! | 全部離開 | 若未存檔,不存檔直接離開 |
這組我最常使用的是「
\c
」,來離開「vim」,注意這個是沒有存檔的。
目前沒有對應「
:wqa
」,請直接下指令,或是採用「\x
」,會有確認存檔提示出現。
關閉 (刪除Buffer)
關閉 Window 或 TabPage 並且刪除目前顯示的 Buffer,
若只剩最後一個 Window,並不會離開「vim」。
按鍵 | 對應 | 說明 | 注意事項 |
---|---|---|---|
,q | :bdelete | 單一關閉 | 若未存檔,會有確認訊息 |
,x | :%bdelete | 全部關閉 | 若未存檔,會有確認訊息 |
,z | :bdelete! | 單一關閉 | 若未存檔,直接關閉 |
,c | :%bdelete! | 全部關閉 | 若未存檔,直接關閉 |
平常改用這組來關閉,就不會常常離開「vim」 。
隱藏
關閉 Window 或 TabPage 並且隱藏目前顯示的 Buffer。
若只剩最後一個Window,並不會離開「vim」。
按鍵 | 對應 | 說明 | 注意事項 |
---|---|---|---|
,h | :hide | 單一關閉 | 若未存檔,直接關閉,並且隱藏目前顯示的 Buffer |
可以使用「
,b
」來觀看「Buffer 列表」。
列表
按鍵 | 對應 | 說明 |
---|---|---|
,b | :ls | Buffer 列表 |
,m | :marks | Mark 列表 |
,r | :registers | Register 列表 |
其他還有「:jumps」,「:changes」,「:tags」,不過我還沒設定按鍵就是了。
Only
按鍵 | 對應 | 說明 | 注意事項 |
---|---|---|---|
,wa | :only | 關閉其它 Window | 1. 被關閉的 Window,該顯示 Buffer 只是隱藏。 2.若有其他的「TabPage」,不會關閉其他「TabPage」的「Window」。 |
twa | :tabonly | 關閉其他 TabPage | 1. 被關閉的 TabPage,該顯示 Buffer 只是隱藏。 |
可以使用「
,b
」來觀看「Buffer 列表」。
可以對照上面「
,x
」和「,c
」以及「,h
」的功能。
存檔
按鍵 | 對應 | 說明 | 注意事項 |
---|---|---|---|
<S-Tab> | :w | 將目前視窗顯示的 Buffer 存檔 | 在「Normal Mode」和「Insert Mode」都會運作 |
其他的存檔功能,目前我是直接下指令,例如「:saveas 」或「:w 」。
其他對應
還有其他的對應,暫時還沒寫說明文件,請先參考「原始碼」。
或是也可以執行「:map」就可查到我目前大部分的配置了。(Insert Mode 除外)
執行「:nmap」就可查到我目前在「Normal Mode」配置。也可以採用縮寫「:nm」。
執行「:imap」就可查到我目前在「Insert Mode」配置。也可以採用縮寫「:im」。
後續建議
若對「Vim」裡的「Buffer」,「Window」,「TabPage」的相關概念,尚未釐清,
建議可以閱讀「usr_07.txt」和「usr_08.txt」,來了解。
在「shell」執行下面指令
$ vim -c ':help usr_07.txt | :only'
在「shell」執行下面指令
$ vim -c ':help usr_08.txt | :only'
也可以進到「vim」,執行下面指令
:help usr_07.txt
和
:help usr_08.txt
連結
此頁的內容也可以連到「GitHub」上觀看。