Neovim折腾小记
2023-08-14 12:22:04

引子

Emacs很好,写一些中小型项目体验还不错,但是写一些Python的小项目时,体验很差。我怎么也配置不好Python的LSP,每次进行代码补全,Emacs都会非常卡顿。

于是我稍稍尝试了一下Neovim,发现Python的LSP在这上面的表现出色得多。

我并没有从0开始写Neovim的配置文件,而是在jdhao/nvim-config的基础上进行修改,这个配置已经很出色了,很好看,lsp、git之类的功能实现得也很完善。但是和我想要的体验还有一点点差距。

1. 美化

用惯了Emacs下的dashboard,我还是喜欢在编辑器启动的时候显示一些有用的信息:

于是通过startup-nvim配置主界面,大概效果如下:

此外,原配置每次启动都会随机使用一套主题,有的主题很丑,修改core/colorschemes.lua中的随机生成主题函数,发现其从一个数组中选取主题,让该数组中只有一个主题即可。(lua?一点都不会!只能用这种愚蠢的办法了~)

2. 更人性化的括号处理

在Emacs上,当打出一个左大括号,按下回车,会自动补全另一个大括号,并且会自动换行,最终这个样子:

然而在Neovim上,编辑器只会补全大括号,而不换行:

这样太难受了,通过修改配置文件core/options.vim让表现和Emacs下一致:

1
2
imap {<CR> {<CR>}<Esc>ko<Tab>
imap }<CR> {<CR>}<Esc>ko

3. 更多的语言支持

除去Python,我偶尔还会用OCaml、rust等语言写一些小项目。

照猫画虎在lua/config/lsp.lua中将其它的Language Server安装上即可。不得不说,在Neovim上配置lsp实在是简单,也不会碰见什么奇奇怪怪的问题。

接着在lua/plugins.lua中安装codeiumAI补全工具,基本上就万事大吉了。

后记

配置Emacs、Linux、Neovim,的确很有趣,但是也很费时间,有些东西我实在实在懒得配置了。

写JS,HTML之类的东西还得用VSCode,写Java还得用IDEA,最终感觉,这一切都是工具而已,结果要比工具重要得多。