前言

Vim 的坑不少,例如每個工程師都必然會遇到的千古難題:如何退出 Vim?

然而實際上,不論是 Neovim 還是 Vim,在你第一次打開它的時候,它就曾試圖告訴你不少有用的資訊了(包含如何退出),只是你可能沒有注意到。

為了讓將來在使用 Neovim 時能有基本的自救能力,當遇到問題時也不用急著上 Google,而是能直接透過 Neovim 內部的文件來快速診斷和處理問題,本章將介紹如何使用 Neovim 的內建指令 helpcheckhealth。另外,這些內容將不僅限於 Neovim 本體,同時也適用於插件的 help page。


help.txt

第一次求救

第一次使用nvim指令開啓 Neovim 時,你會看到類似於這樣的畫面:

你會發現,其實它已經告訴你可以如何向它尋求幫助 —— 輸入:help:h,然後按下<Enter>,就可以打開 Neovim 的 main help page,而這裡便記錄了你可以怎麽使用這些幫助文件。

另外,這裡也說明了你可以如何退出 help page 和 Neovim —— 輸入:q<Enter>關閉 help page,以及輸入:qa!<Enter> 儲存直接退出 Neovim。

在 help page 中,你會看見一些粗體標亮的關鍵字,或是往下翻找,你可以看見 Neovim 幫助文件的完整目錄,這代表這些關鍵字有它們相對應的說明文件,同時,它們也是文件的連結入口,你可以將你的遊標移動到這些單字上,然後使用以下快捷鍵來進行文件的跳轉:

Mappings Action
Ctrl + ] 移動至連結
Ctrl + T 返回上一個文件

這就延伸出了 help page 的第一個用法,開啓 help page 後,我們可以使用和在 Normal Mode 下一樣的操作方式,使用/來進行關鍵字搜尋,例如我們可以輸入/quick搜尋目錄quickref,將遊標移動到關鍵字上後,再使用快捷鍵Ctrl + ] 進行跳轉。

令外,還有兩個我在瀏覽大型文件時很常使用的快捷鍵,也在這裡分享給各位:

Mappings Action
Ctrl + o 返回至上一個遊標位置
Ctrl + i 返回至下一個遊標位置

搜尋模式

如果每次都要先開啓 main help page 再進行搜尋,那還真的是不如直接 Google 比較快,更何況 :help 頁面中只有目錄,而沒有更完整的內容可以進行關鍵字搜尋。

所幸,我們可以直接在 command line 中輸入指令時就開始進行搜尋了,例如,如果我想搜尋關鍵字word,我只要輸入:h word就可以開始搜尋。同時,我們也可以使用以下的三個快捷鍵,來進行關鍵字的搜尋和補齊:

Mappings Action
Ctrl + d 顯示所有包含關鍵字的主題
<Tab> 選取下一個包含關鍵字的主題
<Shift> + <Tab> 選取上一個包含關鍵字的主題

Ctrl + d範例

<Tab>範例

另外,Neovim 也給了部分固定主題提供了固定的關鍵字格式,這些格式也有被列在:h中,如果忘記了,也可以隨時查看:

主題 關鍵字前綴 範例
Normal mode command :help x
Visual mode command v\_ :help v_u
Insert mode command i\_ :help i\_<Esc>
Command-line command : :help :quit
Command-line editing c\_ :help c\_<Del>
Vim command argument - :help -r
Option ' :help 'wildmenu'
Regular expression / :help /[]

例如,如果我想知道退出 Neovim 的指令:q的所有用法,我只要輸入:h :q就可以開始搜尋了、或是,如果我想知道快捷鍵Ctrl-r的功能是什麼,我只要輸入:h CTRL-r就可以開始搜尋,或更進階一點,你可輸入:h ctrl-r然後按下Ctrl-d或是<Tab>,來查找與這個快捷鍵有關的主題選項。

以上,就是關於 help page 的一些基本用法了,這也是我常用來處理 Neovim 問題的第一步,如果還想了解一些更進階的技巧,可以查閱:h :help,或是參考 Vim Tips Wiki: Learn to use help


checkhealth

Neovim 的外掛包含 Neovim 本身的功能有時會依賴於額外的程式環境、或是其他的某些外掛,例如系統剪貼簿的取用、以及使用 Python3 等其他語言所撰寫的功能等等。如果你安裝了某些外掛,卻發現它不起作用的時候,通常可能就是因爲沒有下載這些額外的東西。

除了從這些外掛的 help page、git 或官網上查找依賴之外,Neovim 的:checkhealth指令可以讓我們很方便的去查看應該、以及甚至要怎麽處理這些問題。

開啟 Neovim 後,輸入:checkhealth,你會看到類似於這樣的畫面:

另外,checkhealth 也可以接受參數來只對指定內容進行檢查,例如:checkhealth provider,這樣就可以只查看 provider 的健康狀況了。

加上在上一段裡提到的:h,於是乎,我們的 Neovim 快篩自救程序就這樣完成了:每當 Neovim 和其外掛出現問題時,我們可以先使用:checkhealth做一遍基本檢查,來看系統中是否缺漏了什麼,然後再使用:h來查找可能的解決方案,而這一切幾乎都可以在 Neovim 中不使用網路來完成,且相當快速有效。


後記

至此,我們已經學會了如何使用 help page 和:checkhealth來進行診斷與解決問題,而在下一章裡,我們將正式進入 Neovim 的基礎設定環節。

首先,我會介紹 Neovim 的設定文件結構,接著,我會提供我的設定文件,並重點介紹一些常見,且我覺得很是有用的選項,例如設定剪貼簿、行號、以及縮排等功能。

上一篇: 安裝 Neovim 與 Nerd Fonts
下一篇: Neovim 設定文件結構與基礎功能設定


參考資料