我是一个多年的vim用户,最近开始玩emacs,在尝试过Spacemacs和Prelude之后,Doom Emacs是我最终的选择。这几天我在用(go +lsp)和(lsp)模块配置golang开发,Doom的所有开箱即用的功能都让人印象深刻,感谢你出色的工作hlissner。
现在我对基本的功能已经很满意了,如
自动完成
但为了提高工作效率,我希望有更多类似IDE的功能,比如。
谁能帮我一下?还有任何经验技巧都感激不尽。
欢迎加入!
我自己不是围棋程序员,所以这些大多是第二手的说法,但Doom的 :lang go
模块提供了你所要求的大部分内容。我建议使用 gopls
langserver。要做到这一点。
:lang (go +lsp)
:tools lsp
:editor snippets
(默认情况下应启用)gopls
通过你的操作系统的软件包管理器(我记得它是在Go 1.12+中附带的)。~/.emacs.d/bin/doom sync
以确保Doom与这些变化正确同步。然后你应该就可以了。这里有一些你应该知道的有用的(以邪恶为中心的)keybinds。
+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
-> 运行以下测试你会发现一个更全面的keybinds列表。在 :lang go 模块中 (注意 SPC
是厄运的领袖钥匙,而 SPC m
是它的localleader键。对于非邪恶用户,这些是 C-c
和 C-c l
分别是,)。)
snippets模块带有 代码库. 你可以找到我们的谦虚的去片断 此处,您可以将自己的内容添加到 ~/.doom.d/snippets/go-mode/
.
我还建议你 访 :lang go
自述文件. 它需要更新,我很难成为一个很好的资源,你需要多少与gopls,但也许有角落的情况下,它可以帮助覆盖。
希望能帮到你