您正在为 git 提交消息获取这些设置,因为 Vim 识别文件类型 ( gitcommit
) 并为其加载特定于文件类型的设置。
在这种情况下,它来自 file $VIMRUNTIME/ftplugin/gitcommit.vim
,其中包括以下行:
setlocal nomodeline tabstop=8 formatoptions+=tl textwidth=72
你可以通过向你的主目录添加另一个文件类型插件来覆盖它,这个插件gitcommit
将在 Vim 运行时的插件之后加载。
您可以使用名为的文件来执行此操作~/.vim/after/ftplugin/gitcommit.vim
(假设您使用的是 Vim,如果您使用 NeoVim,则路径的初始部分会有所不同。)该after
目录用于最后加载的插件文件,因此通过放置您的文件在那里,您将确定您的代码将在上述代码之后运行。
在该文件中,您可以添加一个命令来撤消换行的不良影响,例如:
setlocal textwidth&
或者:
setlocal formatoptions-=t formatoptions-=l
这两个设置中的任何一个都将防止在第 72 列自动换行。更改'formatoptions'
而不是重置的优点'textwidth'
是,仅通过更改'formatoptions'
您仍然可以使用命令,例如gq
手动格式化文本块以符合 72 个字符的行宽限制,如果你想这样做。这样你就可以两全其美了。
无论您决定设置两个选项中的哪一个,请确保使用:setlocal
而不是:set
,因为该插件仅针对该缓冲区加载,您应该尝试仅修改该缓冲区上的选项并避免接触全局选项。