使vim停止拆分我的Git提交消息


14

Vim有这样一种令人讨厌的习惯,即拆分我的提交消息并自动换行,由于某种原因将第二行呈现为红色背景。

在此处输入图片说明

我该如何使vim 停止这样做?


1
什么是VIM变量tw,并wm设置为?如果将它们设置为非零值,则将插入自动换行符(默认情况下在第80列)。
ewhac 2014年

11
这是Vim内置的文件类型语法,突出显示了git commit消息,试图对git消息强制采用某种格式。您的突出显示看起来很丑,因为您的git commit消息是“丑”,从某种意义上说,它确实与Vim期望您遵循的格式匹配。无论是gitcommit.vim语法高亮模块和规范是由蒂姆教皇写的。您可以在这里阅读它们:tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html。要获得快速摘要,请使第一行为50个字符的摘要,留空行,然后在下面写下您的段落。
2014年

11
(续)...因此,从技术上讲,这不是一个答案,但是您应该通过编写格式正确的git commit消息来使突出显示不难看。尝试将第一行保持在50个字符以下。第2行应该为空白,这就是为什么将其标记为“警告:此文本不应该在这里!键入从第3行开始的扩展消息。Vim将自动以72个字符分隔行。让它这样做。如果由于进行了一些编辑而需要Vim重做换行符,请突出显示该段落并gq进行修复。
jw013 2014年

1
“如果因为进行了一些编辑而需要Vim重做换行符,请突出显示该段落并执行gq来修复换行符。” 或导航到该段和类型gqipgqparagraph你iñ。
安德鲁·马丁

Answers:


5

文件类型插件强制实施首选的Git提交消息样式:短标题和硬换行符。如果您不同意该样式,请通过以下操作撤消设置~/.vim/after/ftplugin/gitcommit.vim

setlocal wrap formatoptions<

1
对于那些想知道如何formatoptions<作为有效参数的人setlocal,docs :setlocal会解释为它将“通过复制值将{option}的局部值设置为其全局值。”因此,此命令将删除tl标志(在中记录fo-table)插件添加到'formatoptions'
罗里·奥肯

4

我发现我需要的设置~/.vim/after/ftplugin/gitcommit.vim是:

setlocal textwidth=0


谢谢。另一个解决方案在OpenSUSE上对我不起作用,但是这个对我有用。
Artem Russakovskii
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.