我从文档中发现了这个伟大的命令:
command DiffOrig vert new | set bt=nofile | r # | 0d_ | diffthis
\ | wincmd p | diffthis
所以我想出了这个:
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>
问题是,当我\dc
时,它会跳回文件的开头,而不是在发出\do
之前我离开的位置。如何解决这个问题?
请亲自尝试一下,看看问题是什么以及如何解决。并告诉我如何解决它们: - )
答案 0 :(得分: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>
答案 1 :(得分:2)
您可以在要关闭的窗口中:q
,然后:diffoff
关闭剩余窗口中的差异格式。不确定是否可以在一个命令中完成。
答案 2 :(得分:1)
要关闭差异窗口并返回到您正在编辑的文件,您可以尝试将其添加到.vimrc文件中:
if!exists(“:DiffOff”)
命令DiffOff diffoff&lt; bar&gt;只有
ENDIF
然后输入:DiffOff关闭差异窗口。