83

我开始学习 golang 并从 JetBrains 安装了 GoLand。我正在阅读The Go Programming Language一书,在第一章作者强烈建议gofmt在每次保存之前使用该工具。我如何在 GoLand 中遵循此建议?

4

5 回答 5

118

有多种方法可以格式化您的代码,您可以使用任何一种方式来做到这一点:

  1. 一旦你的代码完成。只需运行命令“ gofmt -s -w ”。在所需目录或所需文件中的终端中。它将根据您的需要格式化您的整个目录/文件。
  2. 转到首选项 -> 工具 -> 文件观察器并启用 go fmt 。这种方式在每次保存时都会格式化文件。
于 2017-12-10T16:49:43.403 回答
80

GoLand 对go fmt您的文件或项目有命令。右键单击您的文件,您将在“Go tools”下找到它。你可以在那里看到它的快捷方式。

您还可以使用“重新格式化代码”命令(对我来说绑定到 Command-Alt-L)。它不是 100% 相同,go fmt但非常接近。也适用于其他语言。

如果您有一个打开的终端,您可以运行go fmt ./...以格式化目录(包括子目录)中的所有文件。你可以把它放在一个 git commit 钩子中,以便在每次提交时运行它。

正如其他人提到的,在 Preferences → Tools → File Watchers 下有一个文件观察程序部分,您可以在其中设置运行go fmtgoimports每次保存 Go 文件。

于 2017-12-10T08:27:30.560 回答
5

只想再添加 1 个选项。你可以在每次提交到 git 时自动应用 go fmt。当您打开提交窗口时,在该Before Commit部分下,有一个Go fmt复选框。只是检查一下。稍后当您进行另一次提交时,该复选框的默认值会被选中。因此,您只需检查一次。然后 go fmt 会在你提交之前自动运行。

于 2019-04-05T03:50:08.673 回答
2

如果您的 GoLand 2021.2 或更高版本,您可以在Preferences/Settings |下启用Run gofmt on code reformat选项。编辑 | 代码风格 | 去 | 其他(默认启用)。

enter image description here

之后,执行代码 | 重新格式化代码( macOS 上为Option++ CommandL和 gofmt 将在内部 GoLand 格式化程序之后执行。

于 2021-09-06T14:11:35.880 回答
2

Now Goland has a section that will reformat your code on file save without setting up File Watchers:

  • Under Settings -> Tools -> Actions On Save you can activate the first entry

enter image description here

于 2021-11-16T12:56:59.413 回答