我在fugitive extension中使用vim。它有一个:Gdiff命令,可以让你进入vimdiff模式,但是关闭/退出vimdiff模式的正确/快捷方法是什么呢?
也就是说,假设我正在编辑Git仓库下的文件FooBar.txt。我启动了:Gdiff,检查我在vimdiff中所做的更改,然后我想返回并继续编辑FooBar.txt或任何其他文件:)
UPDATE1:我打算在下一个工作日尝试一下这些快速组合:)
"vimdiff current vs git head (fugitive extension)
nnoremap <Leader>gd :Gdiff<cr>
"switch back to current file and closes fugitive buffer
nnoremap <Leader>gD :diffoff!<cr><c-w>h:bd<cr>
UPDATE2: My current mappings (仅关闭比较窗口!)
"vimdiff current vs git head (fugitive extension)
nnoremap <Leader>gd :Gdiff<cr>
"switch back to current file and closes fugitive buffer
nnoremap <Leader>gD <c-w>h<c-w>c
另外,请帮我决定以下内容是否应该作为答案:https://stackoverflow.com/a/15975201/275980
发布于 2011-10-14 10:59:24
根据:https://github.com/tpope/vim-fugitive/issues/36
关闭另一个窗口。如果你还没有把焦点转移到这个窗口上,最简单的方法就是
<C-W><C-O>
,这意味着“让这个窗口成为唯一的窗口”
。
发布于 2011-02-19 07:03:18
我在使用diffoff
时不太走运,但我刚刚了解到,不带参数的:Gedit
将把您带回文件的工作目录版本,而不是您正在查看的早期版本。
由于q
(不需要:q
)将关闭diff侧边栏,因此您可以先执行q
,然后执行:Gedit
以删除侧边栏,然后返回到文件的当前版本。
发布于 2011-04-04 21:12:35
这对我来说很好,结合了这里的一些现有想法:
function! MyCloseDiff()
if (&diff == 0 || getbufvar('#', '&diff') == 0)
\ && (bufname('%') !~ '^fugitive:' && bufname('#') !~ '^fugitive:')
echom "Not in diff view."
return
endif
" close current buffer if alternate is not fugitive but current one is
if bufname('#') !~ '^fugitive:' && bufname('%') =~ '^fugitive:'
if bufwinnr("#") == -1
b #
bd #
else
bd
endif
else
bd #
endif
endfunction
nnoremap <Leader>gD :call MyCloseDiff()<cr>
https://stackoverflow.com/questions/2703644
复制相似问题