1

vimdiff のマッピングをカスタマイズして、winmerge に似せようとしています

<a-left>垂直方向の 2 分割では、alt-left をマップして現在の diff を左側に移動し、alt-rightをマップして現在の diff を右側に移動したいと考えています<a-right>

マージには:diffg、 andを使用できます:diffp。しかし、その中で使用できるように、自分がどの分割にいるのかを知る必要があります:diffg/:diffp

どの分割にいるのかを検出できる方法はありますか。具体的には、カーソルが左分割か右分割かを知る方法はありますか

Related Question ファイルのリストを取得する方法-現在vimで差分されているファイル

4

2 に答える 2

1

ウィンドウが 2 つしかないと仮定すると、winnr()関数は1最初のウィンドウと22 番目のウィンドウに対して戻ります。winnr('$')を使用して、ウィンドウの数を調べることもできます:echo winnr('$')

dpとだけを使用することもできdoます。そうすれば、ウィンドウ間をジャンプする必要がなくなり、矢印キーよりも簡単に到達できます。

于 2010-03-19T03:05:40.253 に答える
1

特定の質問への回答ではありませんが、役立つ可能性のある素晴らしい差分調整を次に示します。

"" Diff options; ignore whitespace.
set diffopt+=iwhite

私は :diffon :diffoff が好きではありません. したがって、diff、scrollbind、foldmarker、foldcolumn のみを設定します。

"" Diff 'd' {{{
    nmap <silent> ,dd :set diff scb fdm=diff fdc=2<CR>
    nmap <silent> ,dD :windo :set diff scb fdm=diff fdc=2<CR>
    nmap <silent> ,do :set nodiff noscb fdm=manual fdc=0<CR>
    nmap <silent> ,dO :windo :set nodiff noscb fdm=manual fdc=0<CR>
    "nmap <silent> ,dd :diffthis<CR>
    "nmap <silent> ,dD :windo :diffthis<CR>
    "nmap <silent> ,do :diffoff<CR>
    "nmap <silent> ,dO :windo :diffoff<CR>
    nmap <silent> ,du :diffupdate<CR>
"" }}}

また、ディレクトリ ツリーを比較するための DirDiff プラグインもチェックしてください...

于 2010-03-19T09:36:15.837 に答える