2011-06-21 5 views
9

を切り替え、DiffOrigで簡単に見て撮影:問題があるその後、私はドキュメントからこの偉大なコマンドを発見したバック

command DiffOrig vert new | set bt=nofile | r # | 0d_ | diffthis | wincmd p | diffthis | wincmd p 
map <Leader>do :DiffOrig<cr> 
map <leader>dc :q<cr>:diffoff!<cr> 

command DiffOrig vert new | set bt=nofile | r # | 0d_ | diffthis 
    \ | wincmd p | diffthis 

だから私はこれで作ってみました私が\dcと答えると、ファイルの先頭にジャンプします。\doを発行する前に、ファイルの先頭に戻っていません。これを修正するには?

これを自分で試してみてください。問題が何であるか、問題を解決する方法を見てください。そして、それらを修正する方法も教えてください:

+0

私は単にウィンドウを閉じるのではなく、実際にスクラッチバッファを削除するので、 ':q'の代わりに':bd'を使うのが好きです。 –

答えて

6

command DiffOrig let g:diffline = line('.') | vert new | set bt=nofile | r # | 0d_ | diffthis | :exe "norm! ".g:diffline."G" | wincmd p | diffthis | wincmd p 
nnoremap <Leader>do :DiffOrig<cr> 
nnoremap <leader>dc :q<cr>:diffoff<cr>:exe "norm! ".g:diffline."G"<cr> 
+2

はい、これは古いと知っていますが、問題が見つかりました。問題の解決策があります。 vimが実行されている間に〜/ .vimrcのリソースがある場合は、すでに存在するコマンドに関するエラーが発生します。そのエラーを削除するには、 '!'コマンドに 'コマンドのように見えるように! DiffOrg .... '(など)。 – demure

2

閉じるウィンドウで:qを入力し、残りのウィンドウでdiff形式をオフにする場合は:diffoffとすることができます。 1つのコマンドで実行できるかどうかは不明です。あなたが試みることができる

+0

ありがとう、しかし、私の質問を参照して、私は少し編集しました。 – Flavius

+2

私は ':diffoff!'を実行する方が好きです。すべてのウィンドウを ':diffoff'します。 –

+0

閉じたいウィンドウに ':q'の代わりに、保存したいウィンドウで' on'( 'only'の略)を使うこともできます! – dotancohen

1

を差分ウィンドウを閉じて、あなたが編集したファイルに戻るには、あなたの.vimrcファイルにこれを追加してみてください:

存在する場合(」!は、 :diffOff」)
   コマンドdiffOff diffoff <バー>のみ
endifの

次に電子nter:DiffOffで差分ウィンドウを閉じます。

+0

ありがとうございます。すべてのアイデアはupvoteに値する! – Flavius

関連する問題