我目前 NeoVim 里安装了两个 go 相关的插件:
今天在保存代码修改时,一如既往的卡顿了10几秒,这种情况在1分钟之后就会消失。
可是,我安装的 ALE 号称是异步的啊。。。要不我安装他干啥。。。
我突然感觉可能问题出在了 vim-go 上,除了 gd 快速查看定义,似乎我也没有用过其他功能。 而且我担心 vim-go 和 ALE 都带了 gofmt,会不会保存时调用两次,造成冲突。 于是,干脆把 vim-go 卸载了。
卸载之后果然如预期的一般丝滑。。。再也不会卡顿了。
修改配置
- 将记不住的 ALEGoToDefinition 绑定到 gd 上
- ale_fixers 里添加 gofmt,因为默认 ALE 只有 linter 中有 gofmt,不会出现在 fixer 中
- 去掉了 ale_linters 中的 golint,那货的规则迂腐之极,我再也不想整天纠结 userID 还是 userId,以及强制写注释,感觉装了个爹
" ALE plugin
let g:ale_fixers = {
\ '*': ['remove_trailing_lines', 'trim_whitespace'],
\ 'javascript': ['eslint'],
\ 'go': ['gofmt'],
\}
let g:ale_linters = {
\ 'go': ['gofmt', 'gopls', 'govet'],
\}
" Remap gd to use ALEGoToDefinition and open in a new tab
map gd :ALEGoToDefinition -tab<CR>
注:ctrl+o 返回上一级 buffer 实在记不住,还是新 tab 中打开比较好。
但是在 gopls 分析完之前,跳转指令是没有响应的,得等一会才能看到新 tab。
参考
- https://vi.stackexchange.com/questions/14403/how-to-go-to-previous-open-buffer-from-vim-command-line
- https://github.com/dense-analysis/ale
微信关注我哦 👍
我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式