Neovim
Neovim 是 Vim 的分支,旨在改進代碼庫,從而使得 API 更容易實現,並改善用戶體驗和插件實現。Neovim 啟發了 Helix 等編輯器。
安裝[編輯 | 編輯原始碼]
安裝 neovim包 或 neovim-gitAUR(開發版本)軟體包,兩者強烈建議使用 Lua 作為主要的配置語言。要使 Neovim 能夠訪問系統剪貼板,可能需要安裝 xclip包(X11)或 wl-clipboard包(Wayland)。
:help provider-clipboard
Neovim 命令。也可以安裝 GUI 和其他相關項目,它們中的大多數都在官方軟體倉庫或 AUR 中:
- neovim-qt包 — Fast, lightweight, and customizable Qt GUI. Provides a modern interface, including support for multiple tabs, split windows, and customizable themes.
- neovim-gtkAUR — GTK GUI. Provides a modern, customizable interface, including support for split windows, multiple tabs, and customizable themes.
- uivonim-gitAUR — (Inactive) Simple and lightweight GTK GUI. Provides a minimalistic interface, including support for split windows and customizable themes.
- uivonim-gitAUR || uivonim-gitAUR
- neovide包 — Rust GUI.
- neoray-gitAUR — Go GUI.
- gnvimAUR — GTK GUI.
- fvimAUR — F# GUI.
配置[編輯 | 編輯原始碼]
Neovim 的用戶配置位於 $XDG_CONFIG_HOME/nvim/init.vim
(默認是 ~/.config/nvim/init.vim
)。全局配置文件位於 $XDG_CONFIG_DIRS/nvim/sysinit.vim
(默認是 /etc/xdg/nvim/sysinit.vim
)。如果不存在,則會載入 /usr/share/nvim/sysinit.vim
,後者不建議由用戶編輯。[1] 默認情況下,前一個全局配置文件並不存在。如果你創建了前一個文件,那你可能也想在其中 source 後一個文件(如果你想獲得它提供的功能:允許 Neovim 使用通過 pacman 安裝的 Vim 包)。
Neovim 兼容 Vim 大多數的選項,不過有一些選項特定於 Neovim。完整的 Neovim 選項列表參見 Neovim 的幫助文件。
Neovim 的數據目錄位於 ~/.local/share/nvim/
,包含打開文件的交換文件、ShaDa(共享數據)文件和插件的站點目錄。
從 Neovim 0.5 版本開始,可以使用 Lua 設置 Neovim(默認是 ~/.config/nvim/init.lua
),API 仍然很年輕,不過常見的配置開箱即用,無需過多配置。關於轉換現有的配置的建議,參見 [2]。當前,與 init.vim
相比,使用 init.lua
沒有太多的優勢,不過在使用得當時,Lua 可以小幅改善啟動時間,並且由於配置簡單,在使用以 Lua 編寫的插件時會很有用。
從 Vim 遷移[編輯 | 編輯原始碼]
要將現有的 Vim 配置遷移到 Neovim,只需將 ~/.vimrc
複製到 ~/.config/nvim/init.vim
。如果需要的話,將 ~/.vim/autoload/
的內容複製到 ~/.local/share/nvim/site/autoload/
。
在 Vim 和 Neovim 間共享配置[編輯 | 編輯原始碼]
Neovim 將 $XDG_CONFIG_HOME/nvim
而不是 ~/.vim
作為主要配置目錄,並使用 $XDG_CONFIG_HOME/nvim/init.vim
而不是 ~/.vimrc
作為主要配置文件。
如果要繼續使用 Vim,又希望在 Neovim 中 source 現有的 Vim 配置,參見 nvim-from-vim 或 :help nvim-from-vim
Neovim 命令。
加載插件[編輯 | 編輯原始碼]
/etc/xdg/nvim/sysinit.vim
會自動 source 從官方軟體倉庫或 AUR 中安裝的 Vim 或 Neovim 插件,因此無需額外設置。大量的插件都可以在兩個地方找到,但最好通過插件管理器添加插件,最常用的是 vim-plug(可用於 Vim 和 Neovim)和 packer(使用 Lua 編寫,只能用於 Neovim 0.5 或更新的版本)。兩者都允許深度的配置,從 GitHub 分支到運行時命令。
大多數為 Vim 編寫的插件無需花費很多精力即可在 Neovim 上工作,不過不是每個為 Neovim 編寫的插件都適用於 Vim,因此,如果你的目標是確保配置兼容兩個版本,堅持使用 init.vim
或 .vimrc
提示與技巧[編輯 | 編輯原始碼]
將 vi 和 vim 替換為 neovim[編輯 | 編輯原始碼]
大部分情況下設置 $VISUAL
和 $EDITOR
環境變量應該就足夠了。
一些應用程式可能硬編碼 vi 或 vim 為默認編輯器,對於這種情況,安裝 neovim-symlinksAUR 或 neovim-drop-inAUR。
將 init.vim 設置為指向 .vimrc 的符號連接[編輯 | 編輯原始碼]
因為 Neovim 與標準 Vim 大部分兼容,可以將 nvim/init.vim
設置為指向原來 .vimrc
的符號連接,從而保留舊的配置選項:
$ ln -s ~/.vimrc ~/.config/nvim/init.vim
如果想要某幾行特定於每個版本,可以使用 if
塊:
.vimrc
if has('nvim') " 特定於 Neovim 的命令 else " 特定於標準 Vim 的命令 endif
真彩色支持[編輯 | 編輯原始碼]
這個項目的 README
文件解釋了如何為語法高亮添加 24 位「真彩色」支持,以及如何使用取色器實時查看效果。包含作者為 C++ 提供的語法高亮(如果安裝的話)。
Lastplace cursor support[編輯 | 編輯原始碼]
如果你想保留光標的最後位置,lastplace.lua 非常有用。只需將其放置在 ~/.config/nvim/plugin/
或系統目錄 /usr/share/nvim/runtime/plugin/
中即可。
Language Server Protocol[編輯 | 編輯原始碼]
Neovim 內置 Language Server Protocol 客戶端,nvim-lspconfig 插件提供常見的配置。
Use as a pager[編輯 | 編輯原始碼]
You can use the :Man
command to open manual pages. To open all manual pages with neovim set the MANPAGER
environment variable to nvim +Man!
.
For other pager support install either the nvimpagerAUR or the nvimpager-gitAUR package and set the PAGER
environment variable to nvimpager
.
You can also try page, packaged in page-gitAUR.
問題解決[編輯 | 編輯原始碼]
退出後光標沒有恢復到之前的狀態[編輯 | 編輯原始碼]
如果退出 Neovim 後光標仍閃爍,參見 neovim FAQ 中的解決方案。