关于Vim/Neovim/SpaceVim的一些思考
source link: https://my.oschina.net/u/4231975/blog/5017464
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
最近看到了Neovim
以及SpaceVim
,于是上手试了一下。
2 Neovim
与SpaceVim
Neovim
是Vim
的一个分支,具有更加现代的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
,可以参考这篇文章。
下面是个人建议的使用Neovim
的原因:
- 需要一个从零开始配置的
IDE
或者Vim
- 动手能力强,能解决各种问题
- 能够熟练记忆并使用各种各样的快捷键
- 熟悉各种插件,包括但不限于
nerdtree
、YouCompleteMe
等等
因为如果想把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
的快捷键学习曲线会低了很多。
但是相比起现代级的IDE
,Neovim
与SpaceVim
还是有很大差距的,最明显的就是对各种库、各种包以及一键部署运行的支持,因此,个人认为SpaceVim
/Neovim
不是特别适合大项目的。不过当然有一些折中的方案,比如VSCode
,在各种各样的插件加持之下,可以堪称是又轻又快的现代IDE
。
如果想学习Neovim
/SpaceVim
或者想把两者配置成一个更好用的IDE
,这里提供了一些资源:
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK