.vimrc.local 中的 textwidth=0 和 wrapwidth=0 不被尊重

Ian*_*ter 12 vim text-editors macvim

我的 .vimrc.local 底部有以下几行:

set textwidth=0 
set wrapmargin=0
Run Code Online (Sandbox Code Playgroud)

但是,每当我打开一个新文件时,这两个值都设置为其默认值(分别为 72 和 2),而不是我的自定义设置。我的 .vimrc.local 文件中的其他设置似乎已设置(选项卡等),但只有这两个设置不断被重置。如果我输入:source ~/.vimrc.local设置更改并正常工作。

有没有办法查看 vim 启动时正在设置什么?我怀疑 MacVim 或 Janus 附带的某些插件或设置正在设置这些选项,但我不知道如何一次查看每个设置。

gar*_*ohn 16

要找出最后设置 'textwidth' 和 'wrapmargin' 的位置,请执行

:verbose set tw? wm?
Run Code Online (Sandbox Code Playgroud)

要查看哪些文件已被获取,请执行

:scriptnames
Run Code Online (Sandbox Code Playgroud)

如果这些还不足以发现问题,您可以在 Vim 启动时使用 -V 选项并将各种启动事件记录到文件中。看

:help -V
Run Code Online (Sandbox Code Playgroud)

此外,'textwidth' 和 'wrapmargin' 的默认值都是 0,而不是 72 和 2,所以已经有人将它们设置为非默认值。有关默认值,请参阅

:help 'textwidth'
:help 'wrapmargin'
Run Code Online (Sandbox Code Playgroud)

PS
要检查的另一件事是文件类型插件进行这些设置的可能性。该:verbose set ...命令应显示进行这些设置的位置,但您也可以执行

:set filetype?
Run Code Online (Sandbox Code Playgroud)

查看当前文件类型,然后打开$VIMRUNTIME/ftplugin/<filetype>.vim,其中 <filetype> 是上面找到的 'filetype' 选项的值,以查看是否在那里进行了这些设置。您可以通过将您的设置放在您创建的名为 ~/.vim/after/ftplugin/<filetype>.vim 的文件中来覆盖文件类型插件所做的设置。看

:help filetype-overrule
Run Code Online (Sandbox Code Playgroud)

第 3 项。


小智 8

我通过将以下内容添加到我的.vimrc.local文件中解决了这个问题:

" Disable annoying auto line break
fu! DisableBr()
    set wrap
    set linebreak
    set nolist  " list disables linebreak
    set textwidth=0
    set wrapmargin=0
    set fo-=t
endfu

" Disable line breaks for all file types
:au BufNewFile,BufRead *.* call DisableBr()
Run Code Online (Sandbox Code Playgroud)

这应该为所有文件类型禁用不需要的自动换行符