为什么我的.vimrc中的某些设置不起作用?

时间:2014-02-11 08:12:38

标签: vim

这是我的.vimrc(我在Windows XP上使用gVimPortable):

set nocompatible
source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/mswin.vim
behave mswin

syntax enable
set background=light
colorscheme solarized

set formatoptions+=t
set tw=10

nmap <leader>s dwwP

set diffexpr=MyDiff()
function MyDiff()
  let opt = '-a --binary '
  if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
  if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
  let arg1 = v:fname_in
  if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif
  let arg2 = v:fname_new
  if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif
  let arg3 = v:fname_out
  if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif
  let eq = ''
  if $VIMRUNTIME =~ ' '
    if &sh =~ '\<cmd'
      let cmd = '""' . $VIMRUNTIME . '\diff"'
      let eq = '"'
    else
      let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '\diff"'
    endif
  else
    let cmd = $VIMRUNTIME . '\diff'
  endif
  silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq
endfunction

由于某些原因,colorscheme有效,但set formatoptions+=tset tw=10等其他人

文本根本没有被包裹(超过10个字符)。

可能是什么问题?

3 个答案:

答案 0 :(得分:4)

'formatoptions'等设置通常由 filetype plugins 修改(您可以通过vimrc_example.vim启用这些设置。)

您可以通过

找到上次修改该选项的位置
:verbose setlocal formatoptions?

如果它给你ftplugin/foo.vim,你必须通过:setlocal中的~/.vim/after/ftplugin/foo.vim命令覆盖它(或完全禁用文件类型插件)。

答案 1 :(得分:0)

:help上的tw表示设置compatible时设置为0(禁用)。 compatible是否设置在我们无法看到的位置(可能是在其中一个源文件的开头nocompatible之后)?

答案 2 :(得分:0)

你应该选择你想要的东西:

  1. 通过插入换行符,让vim将文本格式化为更短的行:可以通过设置textwidth(例如set textwidth=30中的.vimrc)来实现。然后,您可以通过标记文本(可视模式)并键入gq来重新格式化文本。
  2. 保持原样,但显示已包装:将set wrap添加到.vimrc