我是vim用户多年,最近开始玩emacs,在尝试了Spacemacs和Prelude之后,Doom Emacs是我的最终选择。当时,我正在使用(go + lsp)和(lsp)模块配置golang开发,由于您出色的hlissner工作,Doom的所有现成功能都令人印象深刻。
现在,我对以下基本功能感到满意:
自动完成
但是要提高生产力,我想要更多类似IDE的功能,例如:
有人可以帮我吗?并欢迎您提供任何经验/提示。
答案 0 :(得分:12)
欢迎光临!
我自己不是一名Go程序员,所以这些大多数都是二手手帐户,但是Doom的:lang go
模块提供了您所要求的大部分内容。我建议使用gopls
langserver。为此:
:lang (go +lsp)
:tools lsp
:editor snippets
(默认情况下应启用)gopls
。~/.emacs.d/bin/doom sync
以确保Doom与这些更改正确同步。您应该很好。以下是一些您应该了解的有用的(以恶魔为中心)键绑定:
+lookup/definition
->转到符号的定义点+lookup/references
->跳转到符号参考点+lookup/documentation
->在该点查找符号的文档lsp-execute-code-action
->执行任意代码操作(其中应包括自动生成您要的内容)。go-guru-describe
->描述此go-guru-freevars
->列出可用变量go-guru-implements
->实现包类型的关系go-guru-peers
->列出频道的对等点go-guru-pointsto
->这意味着什么go-guru-referrers
->列出对对象的引用go-guru-callers
->显示此函数的调用者go-guru-callees
->显示此函数的被调用者+go/test-rerun
->重新运行上一个测试+go/test-all
->运行所有测试+go/test-single
->在点进行测试+go/test-nested
->在下面运行测试您会找到更全面的in the :lang go module键绑定列表(请注意,SPC
是Doom的领导键,SPC m
是其本地领导键。对于非邪恶的用户,这些是分别为C-c
和C-c l
。
摘录模块随附a snippets library。您可以找到我们的适度摘录摘要here,也可以将自己的摘要添加到~/.doom.d/snippets/go-mode/
。
我也建议您visit the :lang go
readme。它需要更新,对于使用gopls所需的资源,我几乎不是一个很好的资源,但是也许有一些极端的情况可以帮助解决这个问题。
希望有帮助!