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


11

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

set textwidth=0 
set wrapmargin=0

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

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


我从没见过~/.vimrc.local。该剑锋的版本,我发现来源(如果存在)在其结束vimrc文件(这是目的地~/.vimrc符号链接,它安装,如果你使用它的安装方法)。也许不是Janus的所有版本都执行此操作-许多人似乎将我找到的版本合并到了分叉中,但是我不知道这是否是“官方”版本。只是为了澄清一下,您的Janus是从哪里得到的?如果它是基于Git的,那么您正在使用哪个提交?
克里斯·约翰森

值得阅读此默认
格式选项

Answers:


13

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

:verbose set tw? wm?

要查看源文件,执行

:scriptnames

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

:help -V

同样,“ textwidth”和“ wrapmargin”的默认值均为0,而不是72和2,因此已经有一些东西将它们设置为非默认值。有关默认值,请参见

:help 'textwidth'
:help 'wrapmargin'

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

:set filetype?

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

:help filetype-overrule

项目#3。


原来问题出在~/.vimrc,来自Janus。我source ~/.vimrc.local以为这是执行的最后一件事,但这是使用au命令设置了这两个。似乎其中的设置~/.vimrc包含维护Janus的人员的许多风格选择。感谢您编写答案,这将有助于我将来为自己解决这些问题。:)
伊恩·波特,

1
由于Janus中的这个问题,我也来到了这里。但是请注意,最新的Janus ~/.vimrc.after确实最后运行了,但是例如发生了特定于python的操作,因此我不得不在该文件中使用au FileType python set softtabstop=4 tabstop=4 shiftwidth=4 textwidth=0而不是简单地set textwidth=0使用它。
philfreo 2012年

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()

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


1
使用Janus
Eric Yang

1
Huzzah,谢谢!这是唯一对我有用的东西。由于某种原因(我无法解决),macvim覆盖了.txt文件的vimrc中的textwidth。
马特

0

这应该有助于:

(也许BufAdd并且BufCreate是多余的,但是我添加了它以防万一)

function! DisableWrap()
    set nowrap
    set nolinebreak
    set formatoptions-=cro
endfunction
autocmd BufNew,BufAdd,BufCreate,VimEnter * call DisableWrap()
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.