gofmt和goimports的缩进

       go原生的format格式化都是tab,且使8个字符宽度,但是由于我们团队都是由PHP技术转过来的,然后很多同事都使用golang工具,可以自带设置缩进为4个空格,所以为了沿用之前的风格,都采用4个空格为缩进。

      而我却比较喜欢用vscode,下载了go插件,选用的go.formatTool工具为“goimports”,自动化格式化所有空格都会自动转换为tab。网上查询了很多文章,都是修改goimports.go的源文件然后进行重新编译,修改配置为:


options = &imports.Options{
		TabWidth:  4,
		TabIndent: false,
		Comments:  true,
		Fragment:  true,
	}
然而编译后并不生效,自动格式化代码仍然还是tab,很无奈-_-,为啥就没有一个真正解决问题的。
        其实goimports只是对import的代码进行格式修改,最终对整个代码进行tab替换的使go原生的goformat,这里介绍下修改方法:
1. 修改go的原生的goformat源文件,通过命令“ go env GOROOT”查找系统默认的goroot目录,我的是:/usr/local/Cellar/go/1.11/libexec/
进入src的go format目录。/usr/local/Cellar/go/1.11/libexec/src/go/format修改format.go文件,如下:
var config = printer.Config{Mode: printer.UseSpaces /*| printer.TabIndent*/, Tabwidth: 4} 注释掉printer.TabIndent,修改Tabwidth为4
2.  重新安装goImports,命令如下:
 go install golang.org/x/tools/cmd/goimports
 
至此vscode自动保存调用goformat的自动化格式代码,就会是4个空格了。
 
总结: 没有解决不了的问题,只要下决心去研究始终能解决的,然后顺便吐槽下互联网很多东西都是复制黏贴,真正写东西的人太少了。
 
 

Be the First to comment.
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值