我刚刚下载了vim7.4 for windows,我想知道它附带的默认vimrc文件是做什么的。只需对每个项目进行简要说明即可。 在这里。
set nocompatible
source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/mswin.vim
behave mswin
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
答案 0 :(得分:20)
set nocompatible
默认情况下,Vim的行为与其祖先vi相似。这对于快速编辑来说并不是一个真正的问题,但如果您打算使用它超过10分钟,它会非常糟糕。 set nocompatible
使Vim比Vi更像Vim。
请参阅:help nocompatible
。
source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/mswin.vim
来源这两个文件。 vimrc_example.vim
包含示例设置。看看它可能是一个好主意:它可能包含有用的东西。
behave mswin
mswin.vim
包含一系列设置和映射,旨在使Vim或多或少像典型的Windows编辑器一样工作,例如粘贴<C-v>
。这个命令“激活”了这种愚蠢的行为。
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
这是一个定义Vim在用于区分两个或多个缓冲区时的行为的函数。对我来说,它看起来更像是一个黑客而不是其他任何东西。它似乎是检查你的Windows环境是否能够自己做差异,如果没有,使用内置差异。
如果您打算认真使用/学习Vim,上述任何一项都不应该进入您的$HOME\_vimrc
。如果Vim找到nocompatible
,则会自动为您设置$HOME\_vimrc
以来的第一行。
我对Windows并不熟悉,因此差异部分可能很有用,但您可以安全地放弃其余部分。
当您看到set something
时,请执行:help 'something
(使用单引号)。
答案 1 :(得分:1)
您可能已经想到了这一点,但是如果删除vimrc_example.vim源,则可能需要添加的一件事是syntax on
。如果没有这个,无论colorscheme
如何,gvim中的文本都将是无色的。