跳轉到

Neovim

Neovim 是 vi 編輯器 的一個現代實作,vi 是 Bill Joy 早在 1976 年就創造出來的。它是一個模態編輯器,插入模式和指令模式是分開的;一旦你學會它那套深不可測的按鍵指令集的哪怕只是一小部分,它都有點像一種超能力。但它的學習曲線也相當陡峭!

如果你完全沒接觸過 vim 風格的編輯,我推薦你去看看 YouTube 上 ThePrimeagen 的 Vim As Your Editor 系列。那會教你基礎。只要知道,不像那些更相似的主流編輯器,你需要花更長的時間才能在 vim 上達到基本熟練。但一旦你做到了,回報也更大。

現在 Neovim 基本上可以無限設定。如果你真的想發瘋,你可以從零開始建立你自己的 Neovim 設定。有一門很棒的課程,是 Typecraft 講解從零設定 Neovim。而 ThePrimeagen 也有一門。

但 OmarOS 內建了一套完整的 Neovim 設定——omaros-nvim 套件——它經過用心的調校,展示開箱即用能做到的最好表現。你不需要寫任何一行設定!它建立在 LazyVim 之上,LazyVim 是一套 Neovim 外掛與設定的發行版。它太棒了。

LazyVim 基礎

如前所述,我不會在這篇簡短的介紹裡教你 vim,但我可以向你展示一些 LazyVim 的基礎,以及如何四處移動。

首先,Neovim 有 leader 鍵的概念。那基本上是通往所有指令的大門。LazyVim 把它設為 Space。所以只要按下它、等一秒鐘,你就會看到一堆像這樣內嵌說明的選項:

以下是一些我一直都在用的基本指令:

  • Space Space - 在目前目錄中模糊搜尋任何檔案。
  • Space S G - 用 grep 搜尋所有檔案並附預覽。
  • Space E - 開關檔案樹。
  • Ctrl + W W - 在檔案樹和編輯器之間來回跳。
  • Shift + H - 在開啟的分頁(vim 稱之為 buffer)之間向左移動。
  • Shift + L - 在開啟的分頁之間向右移動。
  • Space B D - 關閉一個分頁。
  • Space B O - 關閉除了目前分頁以外的所有其他分頁。
  • Space G G - 從目前目錄在一個浮動窗格中啟動 LazyGit。
  • Space U W - 切換軟換行。

當你在檔案樹中時(用 Space E 顯示它,用 Ctrl + W W 跳過去),你可以用 a 新增一個檔案,或用 A 新增一個目錄。在檔案樹中按下 ? 可以查看所有指令。

如果你想掌握基本的 vim 語言,我寫過關於三段式語法以及如何使出那些厲害連招的文章!

你可以在 LazyVim 快捷鍵頁面查看所有可能的指令。

啟動 Neovim

你可以用 Super + Shift + N 啟動 Neovim(這個綁定會啟動你的預設編輯器,開箱即用時就是 Neovim),但通常從終端機驅動它更容易:導覽到你想工作的目錄,然後輸入 n。n 是 nvim 的別名,它預設會使用目前的目錄來開啟。你可以用 n myfile.txt 開啟單一個檔案。

使用 Neovim 進行 sudo 編輯

如果你需要編輯只有超級使用者才能變更的檔案,你可以執行 sudoedit /etc/sudoers.d/00-sudo-only-file,用上已設定好你所有外掛的 neovim。