2013-10-15 8 views
7

Windows用のvim7.4をダウンロードしました。付属のデフォルトのvimrcファイルが何をしているのか知りたいと思います。各項目の簡単な説明だけが知っているといいでしょう。 ここにあります。デフォルトではvimの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 

答えて

15
set nocompatible 

、Vimはその祖先viのように振る舞います。あなたが10分以上それを使用するつもりなら、それは本当に素早く編集するための問題ではありませんが、真剣にそれを吸う。 set nocompatibleは、VimをViに似たものにします。

:help nocompatibleを参照してください。

source $VIMRUNTIME/vimrc_example.vim 
source $VIMRUNTIME/mswin.vim 

これらの2つのファイルを指定します。 vimrc_example.vimには設定例があります。それを見てみることをお勧めします:それはあなたのために有用なものを含むかもしれません。

behave mswin 

mswin.vimは貼り付ける<C-v>のように、一般的なWindowsのエディタのように多かれ少なかれVimの仕事をするために設計された設定やマッピングの束が含まれています。このコマンドは、その愚かな振る舞いを "活性化"します。

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 

これは、2つ以上のバッファを比較するときにVimの動作を定義する関数です。それは他の何よりもハックのように見えます。あなたのWindows環境がdiff自体を実行できるかどうかを確認しているかどうかを確認しているかどうかを確認しているかのように見えます。

Vimの使用を真剣に考えている人は、上記のどれも$HOME\_vimrcに入ってはいけません。 Vimが$HOME\_vimrcを見つけた場合は、nocompatibleが自動的に設定されているので、最初の行は表示されません。

私はWindowsに精通していないので、差分部分は役に立ちますが、残りの部分は安全に削除できます。

set somethingが表示されたら、:help 'something(一重引用符を使用)を実行します。

+0

素晴らしい回答、ありがとう – Hoto

1

これは分かっているかもしれませんが、vimrc_example.vimソースを削除した場合に追加したいことは、syntax onです。これがなければ、colorschemeに関係なくgvimではテキストは無色になります。

関連する問題