对保存在IntelliJ中的文件执行gofmt


Answers:


132

当然可以。

  1. 安装File Watchers插件
  2. 打开“首选项->工具->文件监视程序”并添加新的监视程序
  3. 设置File TypeGoProgram:的abosolute路径gofmtArguments-w $FilePath$
  4. 点击 OK

在此处输入图片说明


4
这始终会重新格式化我存储库中的每个文件,甚至是Godeps / *。所以我改为硬编码我的路径。有什么方法可以使用$ FilePath $而不必每次都递归格式化仓库中的每个文件?好像FilePath对我有多米诺骨牌效应。
jayunit100

1
@ jayunit100您可以配置范围参数1.添加本地范围2.命名并设置模式为:file [$ proj]:* / && !! file [$ proj]:Godeps // *!快照
2015年

1
这不允许我编辑文件。当我尝试添加新行以编写更多代码时,该程序将我带回到上一行并删除了我的新行。我该如何阻止呢?注意:使用phpstorm
bia.migueis 2015年

6
没关系,我想通了。“立即文件同步”将使fmt在您进行任何更改后立即运行。只是取消选择它,它将仅在文件保存(或窗口失去焦点)上运行
bia.migueis 2015年

1
请注意,这个答案现在有些过时了:File Watchers插件现在具有一个预先构建的“ go fmt”观察程序,您可以添加它而无需做很多工作。
亚伦·谢弗

61

Gogland EAP 16不赞成“保存”操作,并用“文件监视程序”插件替换了它们。

如果先前已配置“保存时”操作,则IDE会提示您安装插件并自动配置所有内容。如果要自己重新设置,请检查是否具有File Watchers插件,如果没有安装。

启用gofmt:

  1. 转到Settings | Tools | File Watchers
  2. 单击+按钮,然后选择go fmt
  3. 默认值是好的。
  4. 在高级选项中,选择:
    • 自动保存编辑的文件以触发观察程序
    • 触发观察者进行外部更改
  5. 点击确定!

设定档

您可以对goimports和进行相同的操作gometalinter


8
实际上,最好只设置goimports而不是go fmt,因为它也会执行fmt,如goimports docs中所指定:“除了修复导入,goimports还以与gofmt相同的样式设置代码格式,因此可以将其替换为您的编辑器保存时使用的钩子”
dux2

2
这是截至2018
George Aristy 18-10-12

54

如果您使用的是Gogland,则在“偏好设置”下可以选择“保存时”

在此处输入图片说明


1
gogland与go插件不同。
检举者2017年

几乎就像python插件vs pycharm一样。唯一可能的区别是更新滞后。除此之外-它为您提供了完全相同的功能集。
亚历克斯·帕夫连科

24
不建议使用“保存”机制,以后会删除它。改用File Watchers插件
Zangetsu

3
但是即使在最新的GoLand中,我也看不到此选项。我虽然在“ Go”下右键单击文件名时仍可以找到文件。但我看不到在自动保存期间启用它的选项。
curiousengineer
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.