13

Windows 用の vim7.4 をダウンロードしました。付属のデフォルトの 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
4

2 に答える 2

23
set nocompatible

デフォルトでは、Vim は祖先の vi のように動作します。素早い編集にはそれほど問題はありませんが、10 分以上使用する場合は非常に残念です。set nocompatibleVim を Vi ライクにするよりも Vim ライクにします。

を参照してください: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 自体を実行できるかどうかを確認しているようで、そうでない場合は組み込みの diff を使用します。

Vim を真剣に使用/学習するつもりなら、上記のどれも$HOME\_vimrc. Vimnocompatible$HOME\_vimrc.

私は Windows にあまり詳しくないので、差分部分は役立つかもしれませんが、残りは安全に削除できます。

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

于 2013-10-15T05:56:48.860 に答える
1

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

于 2015-04-27T14:52:12.923 に答える