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)
这应该为所有文件类型禁用不需要的自动换行符