使用Git,我的提交编辑器是Vim。我在记住换行方面一直做得很差,所以我得到的行很长(例如,参见此答案)。有没有使用一些办法git config
或.vimrc
魔法,我能得到Vim的在72列自动换行?
Answers:
将此添加到您的.vimrc
:
au FileType gitcommit setlocal tw=72
.../vim73/ftplugin/gitcommit.vim
除非您设置了自己的文本宽度,否则该设置应该已经存在。
formatoption
t
设置时有效。使用:set fo?
来检查:set fo+=t
,以正确的。
:filetype on
.vimrc。这使vim可以检查文件类型,并在这种情况下看到您正在编辑gitcommit文件。@Henning也是正确的,您需要包含一个带有t的fo来包装textwidth。但是,据我了解,这是默认设置,但仍然是一个失败点。
filetype plugin on
在.vimrc中说
尽管其他答案可以很好地解决此问题,但我强烈建议您安装Tim Pope的fugitive.vim。
fugitive.vim是一个出色的插件,为Vim带来了Git功能。它具有许多与您的问题无关的功能,但是值得一试。但是,它也可以帮助您记住将提交消息保持适当的长度:
这是用于自动包装的git钩子,可与任何编辑器一起使用:https : //github.com/surabhigupta/AutoWrapSeventyTwo
之前的文章中有几个选项可以工作,但我注意到不同系统之间存在不一致之处。
一旦我意识到Fedora 28(最近从F26升级)就很容易了:git-commit / git-tag中的:version指出它指向.virc文件(怪异*),因此我只需将〜/ .vi m rc复制到〜/。 virc [除外,请参见下文]。
来自brew的带有vim 8.0的macOS 10.13.4可以按:verbose:set tw =?正常关闭/usr/share/vim/vim80/ftplugin/gitcommit.vim 。。
由于某些原因,带有vim 7.4的CentOS 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回答后去了Chip Hogg的建议:autocmd FileType gitcommit setlocal textwidth = 72
我认为这在git-commit内部没有什么区别,但是安全起来可能更好(特别是如果该行最终在整个vimrc中被复制)。当然,在许多示例vimrcs中,文件类型都设置为on。
*但是,我仍然对为什么未显示vim的标尺感到好奇,所以我看了:help标尺,该标尺告知+ cmdline_info(在:version之后显示)需要在编译时设置。在git-commit之外的vim中运行:ver会显示不同的设置和不同的编译时间,这表明git可能正在调用vim的系统副本而不是用户。
所以我一开始应该做的就是运行git config --global core.editor“ vim”,除了我没有,因为我认为这是多余的步骤。从一开始就在每个git安装上首先执行此操作可能会节省很多麻烦!
'textwidth'
选项.vimrc
。那不符合您的需求吗?