Link Search Menu Expand Document

按鍵綁定

前提

我操作「vim」的環境是「Ubuntu 18.04」,桌面環境是「lxqt」,使用的是「gnome-terminal」或是「qterminal」。

按鍵設定

目前幾個開頭的按鍵

按鍵 說明 注意事項
\ 次常用 vim預設的「leader」,我沒有更改,也就是「backslash
, 常用 注意「,」原本是有功能的
t TabPage 相關功能 注意「t」原本是有功能的

關於「,」和「t」原本的功能,是「f」,「F」,「t」,「T」,搭配「;」和「,」這組的功能。

可以執行「: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」上觀看。