使用Git,我的提交编辑是Vim。我一直都很难记住换行,所以我得到了很长的句子(例如见this answer)。有没有办法使用一些git config
或.vimrc
魔法,我可以让Vim自动将行包裹在72列?
答案 0 :(得分:81)
将此添加到您的.vimrc
:
au FileType gitcommit setlocal tw=72
答案 1 :(得分:20)
虽然其他答案完全解决了这个问题,但我强烈建议您安装Tim Pope fugitive.vim。
fugitive.vim是一个出色的插件,它为Gim带来了Git功能。它有许多与您的问题无关的功能,但值得一试。但是,它还可以帮助您记住保持提交消息的正确长度:
答案 2 :(得分:18)
答案 3 :(得分:6)
答案 4 :(得分:1)
这是一个可以与任何编辑器一起使用的自动包装的git钩子: https://github.com/surabhigupta/AutoWrapSeventyTwo
答案 5 :(得分:1)
早期帖子中的一些选项有效,除了我注意到不同系统之间的不一致。
Fedora 28(最近从F26升级)很容易一旦我意识到:git-commit / git-tag里面的版本显示它指向.virc文件(怪异*)所以我只是复制了我的〜/ .vi m rc进入〜/ .virc [除了,见下文]。
根据{{3}},来自brew的vim 8.0的macOS 10.13.4可以很好地使用/usr/share/vim/vim80/ftplugin/gitcommit.vim。CentOS 7.4与vim 7.4(git版本1.8.3.1)由于某种原因虽然似乎没有使用其提供的gitcommit.vim中的textwidth行,所以我去了一个快速而肮脏的解决方法(为了救我来自处理多个文件)〜/ .vimrc:
nmap <F2> :set textwidth=72<CR>
inoremap <F2> <Esc>:set textwidth=72<CR>a
这似乎工作得很好并且很容易记住 - 我大多只是从那里拉出来并且有点放弃使用旧版本的git和vim来解决这些问题。
否则,我(暂时)在Abe Voelker的:verbose :set tw=?之后去了Chip Hogg的suggestion:autocmd FileType gitcommit setlocal textwidth = 72
我不认为它在git-commit中有很大的不同,但它可能更安全(特别是如果该行最终被复制到整个vimrc中)。 Filetype当然设置为on,就像许多例子中的vimrcs一样。
* 然而,我仍然很好奇为什么vim的标尺没有显示,所以我看了一下:帮助标尺通知+ cmdline_info(显示在:版本之后)需要在编译时设置时间。运行:在git-commit之外的vim中显示不同的设置和不同的编译时间,这表明git可能正在调用vim的系统副本而不是用户的副本。
所以我在开始时应该做的就是answer,除非我没有,因为我认为这是一个多余的步骤。在每个git安装上首先执行此操作可能会从一开始就节省很多麻烦!
答案 6 :(得分:0)
除了其他答案外,在编辑时使用gqip
重新格式化段落。