因为 golang 的标准库很丰富,想要的模块都内置了所入了坑。。
但是 go fmt 这个缩进很烦啊,都不能自定义的。
Gofmt formats Go programs. It uses tabs (width = 8) for indentation and blanks for alignment.
不会是懒得做选项吧?
我习惯缩进四个字符宽度=1 个 tab
在 goland IDE 上缩进成这个样子好丑,要是再嵌套个两三层。。

还有不能导入多余包,不允许无用语句之类的, 感觉很霸道很不讲道理呀这么做
|  |      1chingli      2017-03-04 21:01:59 +08:00 Go 默认是用 tab 缩进的, 8 字符宽是你你编辑器设置的问题。我记得也可是设为 4 个空格而不是 tab 。 | 
|      3goofansu      2017-03-04 21:17:44 +08:00 你可以设置编辑器里的 tab 显示成多少个空格,至少 emacs 里是可以的 | 
|      4xiaq      2017-03-04 21:21:09 +08:00 via iPad gofmt 实际上用到这个假设的地方是很少的,你在编辑器里把 Tab 宽度设成别的值也没什么影响。这个宽度值多半是 Rob Pike 用的。 倒入包的问题用 goimports 就能解决。 | 
|  |      5chingli      2017-03-04 21:22:47 +08:00 @itoolset 以往 go 是可以设置用空格缩进的,现在不行了。详见: https://news.ycombinator.com/item?id=7914523 不过你缩进 8 个空格位还是因为你编辑器的原因,比如在 .vimrc 中设置: set tabstop=4 缩进就占 4 个空格位了。 | 
|      6xiaq      2017-03-04 21:26:28 +08:00 从设计思路上来说, Go 是个自带风格指引( style guide )的语言。 导入包必须要用、变量必须要用,这些如果出现在风格指引里面,是一点都不过分的。 | 
|  |      8reus      2017-03-04 21:28:31 +08:00 go fmt 用 '\t' 缩进。 一个 '\t' 显示多宽,是你的编辑器的事情,和 go fmt 没有关系。 统一缩进字符是十分有益的。 | 
|      9CRVV      2017-03-04 21:59:11 +08:00 @itoolset  导入一个包会产生副作用,比如 http/pprof 的用法就只是把它 import import 一堆不用的包会编译进去一堆不用的东西,还会在启动的时候调用一堆不用的 init 函数,这显然不是 Go 的风格 | 
|  |      10Technetiumer      2017-03-04 22:10:01 +08:00 tab 本身就是 8 个空格宽啊 | 
|  |      11itoolset OP | 
|  |      12gamexg      2017-03-05 00:03:39 +08:00 在项目根目录加个 .editorconfig 文件 # http://editorconfig.org root = true [*] charset = utf-8 end_of_line = lf insert_final_newline = true trim_trailing_whitespace = true [*.go] indent_style = tab indent_size = 4 [*.tmpl] indent_style = tab indent_size = 2 [*.{less,yml}] indent_style = space indent_size = 2 [*.js] indent_style = space indent_size = 4 | 
|  |      13Technetiumer      2017-03-05 14:44:01 +08:00 @itoolset 我记得 1 个制表符本身就是 8 个空格宽度,而一般都会在编辑器里设置成 1 个制表符 4 个空格宽度 https://www.zhihu.com/question/19960028/answer/15262434 http://baike.baidu.com/item/Tab/4023 https://en.wikipedia.org/wiki/Tab_key https://zh.wikipedia.org/wiki/製表鍵 | 
|  |      14itoolset OP @Technetiumer  谢谢长知识了 | 
|      15afpro      2017-03-06 05:39:35 +08:00 go 最讨厌的是 他知道哪些是无用 import 那打包的时候忽略掉就好了 他不 他非让你改 开发的时候好恶心啊 |