花了一周业余时间用lua写配置,基本完成了Doom的常用功能(我主要写go),虽然还有一些小瑕疵,但是用lua写配置是真香啊。
内置的LSP+nvim-compe在补全的手感上虽然比不上coc,但是已经够用了。
Telescope作为搜索框架也算舒服,用lua写个picker很简单。以前我总觉得vim查看某个函数或者变量的实现和文档很麻烦,现在用Telescope的help-tag也算是一定程度解决了这个问题。
Treesitter很有用,不仅仅是用作语法高亮,获得语法树信息之后能做的事情多了很多,比如在statusline上面显示光标所在代码的上下文结构信息,或者更改函数参数的位置等等。
Magit目前还没有很好的替代品,目前我采用的方案是在float window里直接用Lazygit,大部分时候很方便了。
大部分plugin都用纯lua实现的版本,少量还得用vim的(比如neoformat),生态还在发展中。
我大部分时候使用macOS,emacs 28 + nativecomp的启动速度在20秒,neovim+52个plugin一秒不到,这是我切换到neovim最大的原因。虽然很多人说emacs只要打开一次基本不关闭,但我还是挺在意启动速度。
Neovim最大的问题是没有个官方的GUI,我试遍了各个流行的GUI之后发现最稳定的还是neovim-qt,但是也有瑕疵。
5 个赞
macos的emacs启动这么慢,要20s?我的原生版本只要2s以内,操作系统 10.15.7,mba 2020 i5。emacs在linux和macos上的启动速度都是秒杀windows的。
neovim的mac版本,我用的是VimR。
nvim可以用lua进行配置,比vimscript的速度和可读性好多了。但是debug时不方便,可能我只会关了重新打开来加载配置。
1 个赞
你 Mac 上 Emacs 启动速度 20s 肯定是你配置有问题,我用 Purcell 的配置,总共安装了237个包,当然基本都是autoload的,启动才3 s, 在Windows下才8s
1 个赞
楼主说了6条。
你们只看到了启动速度。
速度就那么重要吗?
4 个赞
现在写脚本、改配置都用 neovim 了,emacs 就写写文档日志,各有分工,不奢求一个工具就能解决所有场景下的问题。
1 个赞
ixnij
16
歪一下楼: 在 macOS 下,我会用 textmate 写轻量的文档。不知道有没有朋友同样使用 textmate ?
哈哈,同感同感,我也只会关了重开,尝试过配置dap,但还没能真正用上。后来发现 :luafile % 也挺方便。
我不用doom,我说一下我排查启动时间的流程
- 确定 emacs -q 和带配置的启动时间
time emacs -q -e kill-emacs
time emacs -e kill-emacs
- 使用 benchmark-init-el 确定详细信息,如 优化Emacs启动时间 - #12,来自 jacklisp
- 对不常用的包进行lazyload,如use-package的defer
- 在论坛里搜索启动时间和相关包,可以借鉴一下
PS:你使用的是doom,默认配置应该优化得可以,应该是你定制化的配置存在一点问题
2 个赞
学习了。
我用 init.vim 和vim-plug管理插件,没用packer,主要是coc.nvim用vim-plug和vimscript配置方便点。nvim的原生lsp感觉不如coc.nvim好用。
上个星期在macos的VimR折腾了一下纯lua配置,参考了 https://github.com/siduck76/NvChad
不过用的话,还是emacs。
2 个赞
Lenic
22
问下在 Vim 下怎么按照我的要求输入,一直不明白是怎么操作的
const a = add(x,y)
我的需求
我在写代码的时候,输入小括号时自动完成右括号,所以在输入完参数 y
后,需要在最后输入一个分号
我的做法
目前只能首先回到 normal 模式,再通过 A 移动光标到最后,输入英文分号
我的疑问
在 Vim 里面高效的做法是怎样的呢?
在Neovim里面的话,可以写个简单的lua函数,检查当前行的末尾是否存在分号,没有就加上,然后回车。然后把这个函数绑定到某个按键上,比如 Ctrl+Enter就行了。