英文:
Line-endings in go-language source files using vim and git on MS-Windows
问题
情况说明
我正在Windows 10上编写Go语言应用程序。我使用vim编辑我的源文件,并使用git进行版本控制。
Go语言对源文件格式有一些异常严格的规定。我决定如果我按照这些规定进行编码,我的生活会更轻松。
问题所在
go fmt
命令对于排序导入、对齐列和其他操作非常有用。我倾向于在提交代码之前和其他时候使用它。
go fmt
命令会将行尾换行符更改为lf
。这会导致git和vim都发出警告。
我的解决方案?
在3个月后转移到“答案”部分,因为没有其他答案出现,对于其他遇到类似问题的人来说,看到这个问题有1个答案而不是0个答案可能更好
我的问题。
我的行尾解决方案是否最优,或者我是否忽略了可能会在以后困扰我的问题?
英文:
The situation
I am writing go language applications on Windows 10. I use vim to edit my source files. I use git for version control.
The go language comes with some unusually rigid prescriptions for source file formatting. I have decided my life will be easier if I go along with this.
The problem
the go fmt
command is useful for sorting imports, lining up columns and other things. I'm inclined to use it prior to checkin and at other times.
The go fmt
command changes line endings to lf
. This causes both git
and vim
to issue warnings.
My solution?
Moved into an "Answer" after 3 months because no other answers appeared and it's probably better for other people with a similar problem to see in a search result that this question has 1 Answer rather than 0 Answers
My question.
Is my line-ending solution optimal or have I missed something that may bite me later?
答案1
得分: 0
我的解决方案。
为了消除警告,我配置了vim和git以符合golang的要求。
git
以下命令可以阻止git尝试执行通常正确的操作:在存储库中使用标准换行符,每个开发人员的工作目录中使用平台特定的换行符,根据需要进行转换。
git config core.autocrlf false
现在,git不会在检出时将lf
更改为crlf
,也不会对换行符发出警告。
vim
在_vimrc
中添加以下内容:
au FileType go setl ts=3 sw=3 nowrap nu syntax=go ruler fileformat=unix
fileformat=unix
似乎可以让vim在处理非本地平台的换行符时不发出警告。
脚注
在发布上述问题的3个月后,我没有遇到任何缺点或问题-至少在我使用go
,vim
和git
的方式上没有。
英文:
My solution.
To eliminate the warnings I configured vim and git to work the way golang likes.
git
The following command stops git from trying to do what is normally the right thing: standard line-endings in repo, platform line-endings on each developers working directory, convert as needed.
git config core.autocrlf false
Now git won't change lf
to crlf
on checkout or bleat about line-endings.
vim
In _vimrc
au FileType go setl ts=3 sw=3 nowrap nu syntax=go ruler fileformat=unix
The fileformat=unix
seems to keep vim complaint-free regarding line-endings that are not native to the platform.
Footnote
3 months after posting the above question I haven't come across any drawbacks or problems - at least not the way I use go
, vim
and git
.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论