關於Vim/Neovim/SpaceVim的一些思考


1 前言

最近看到了Neovim以及SpaceVim,於是上手試了一下。

2 NeovimSpaceVim

NeovimVim的一個分支,具有更加現代的GUI、嵌入式以及腳本化的終端、異步工作控制等等特點,默認配置文件為~/.config/nvim/init.vim。而SpaveVim,是一個社區驅動的模塊化的Vim IDE,以模塊的方式組織管理插件以及相關配置,為不同的語言開發量身定制了相關的開發模塊,提供了自動補全、語法檢查、格式化、調試等特性,默認配置文件為~/.SpaveVim.d/init.toml

在這里插入圖片描述

3 使用感受

3.1 Neovim

首先是安裝,Neovim的安裝很簡單,可以直接通過包管理器安裝:

paru -S neovim

安裝了之后可以使用nvim命令打開。

簡單使用了一下,發現Neovim並沒有和Vim(版本8.2)有太大的區別。一般情況下,這樣的Neovim不能成為一個IDE,需要添加若干插件才能使用。流行的插件管理器有如下幾個:

  • vim-plug
  • vundle
  • neobundle
  • Pathogen

筆者用的是vim-plug,插件安裝不難,在init.vim中的兩個call之間加上插件的名字:

call plug#begin('~/.vim/plugged')
Plug 'junegunn/vim-easy-align'
call plug#end()

然后在Neovim中鍵入:PlugInstall即可進行安裝。

一般來說,如果需要打造成為一個IDE,那么至少需要具備以下功能:

但是,安裝使用了之后,測試了一下Java,效果並不怎么樣,拿最常用的補全來說,補全提示的速度比不快,另一方面,提示的速度比IDEA慢,而且提示不夠智能,不能根據當前光標處的變量提示最接近的補全。另一方面,並不能自動import(雖然可以通過腳本做到,但是又需要額外的配置)。

3.2 SpaceVim

SpaveVim相當於一個開箱即用的IDE,默認就提供了IDE的常見功能,比如:

  • 補全
  • 高亮
  • 工程目錄樹
  • 運行調試
  • 快速定位
  • 構建工具支持

等等。首先,不可否認的是SpaceVim默認就提供了一個用戶友好的界面:

在這里插入圖片描述

會默認記錄最近打開的文件,並且可以通過數字快速定位。筆者同樣使用了Java進行測試,雖然內置了代碼補全插件,但是,令人遺憾的是並沒有自動import的功能,並且也沒有變量名自動補全的功能(指創建一個叫arrayList的變量):

在這里插入圖片描述

當然,這也有可能是沒有完全配置好的原因,想要配置一個更加好用的SpaceVim,可以參考這篇文章

4 建議

下面是個人建議的使用Neovim的原因:

  • 需要一個從零開始配置的IDE或者Vim
  • 動手能力強,能解決各種問題
  • 能夠熟練記憶並使用各種各樣的快捷鍵
  • 熟悉各種插件,包括但不限於nerdtreeYouCompleteMe等等

因為如果想把Neovim用好,最起碼需要花點時間,利用插件安裝好各種各樣的插件之后(當然因為有些插件只是針對Vim的,所以可能會遇上不兼容的問題),熟悉它們的使用並知道快捷鍵,這對記憶力以及學習能力都是一個考驗,在這過程中,需要無數次的打開init.vim進行配置。

建議使用SpaveVim的原因:

  • 不想手動配置太多的插件以及快捷鍵
  • 需要一個開箱即用且輕量級的IDE
  • 不需要開發很大的工程

SpaveVim里面,大部分都是已經配置好的,剩下的只是需要通過官網文檔熟悉界面,最主要的是熟悉Space組合鍵的使用,比如:

  • Space+數字鍵:切換窗口
  • Space+b/B:緩沖區操作
  • Space+c:命令操作
  • Space+f:文件操作
  • Space+l:語言相關操作,比如運行等等
  • Space+w:窗口操作

相比起Neovim需要在init.vim中配置各種map去映射鍵,SpaceVim的快捷鍵學習曲線會低了很多。

但是相比起現代級的IDENeovimSpaceVim還是有很大差距的,最明顯的就是對各種庫、各種包以及一鍵部署運行的支持,因此,個人認為SpaceVim/Neovim不是特別適合大項目的。不過當然有一些折中的方案,比如VSCode,在各種各樣的插件加持之下,可以堪稱是又輕又快的現代IDE

5 資源

如果想學習Neovim/SpaceVim或者想把兩者配置成一個更好用的IDE,這里提供了一些資源:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM