我是 vim 用户多年,最近开始玩 emacs,在尝试了 Spacemacs 和 Prelude 之后,Doom Emacs 是我的最终选择。那些天我正在使用 (go +lsp) 和 (lsp) 模块配置 golang 开发,Doom 的所有开箱即用功能都令人印象深刻,感谢 hlissner 的出色工作。
现在我对基本功能感到满意,例如:
自动完成
但为了提高工作效率,我想要更多类似 IDE 的功能,例如:
有人可以帮我吗?任何经验/提示表示赞赏。
Hen*_* L. 18
欢迎上车!
我自己不是围棋程序员,所以这些大多是第二手帐户,但 Doom 的:lang go模块提供了您所要求的大部分内容。我建议使用goplslangserver。这样做:
:lang (go +lsp):tools lsp:editor snippets (应该默认启用)gopls通过操作系统的包管理器安装(iirc 随 Go 1.12+ 一起提供)。~/.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 -> 在下面运行测试您将在 :lang go 模块中找到更全面的键绑定列表(请注意,这SPC是 Doom 的领导键,SPC m是它的本地领导键。对于非邪恶用户,它们分别是C-c和C-c l)。
片段模块带有一个片段库。您可以在此处找到我们适度的 go 代码段,也可以将自己的代码添加到~/.doom.d/snippets/go-mode/.
我还建议您访问:lang go自述文件。它需要更新,关于 gopls 需要多少,我几乎不是一个很好的资源,但也许它可以帮助涵盖一些极端情况。
希望有帮助!