首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在vim中退出vimdiff模式,特别是对于逃犯?

如何在vim中退出vimdiff模式,特别是对于逃犯?
EN

Stack Overflow用户
提问于 2010-04-24 15:45:31
回答 14查看 33.9K关注 0票数 65

我在fugitive extension中使用vim。它有一个:Gdiff命令,可以让你进入vimdiff模式,但是关闭/退出vimdiff模式的正确/快捷方法是什么呢?

也就是说,假设我正在编辑Git仓库下的文件FooBar.txt。我启动了:Gdiff,检查我在vimdiff中所做的更改,然后我想返回并继续编辑FooBar.txt或任何其他文件:)

UPDATE1:我打算在下一个工作日尝试一下这些快速组合:)

代码语言:javascript
复制
"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 (仅关闭比较窗口!)

代码语言:javascript
复制
"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

EN

回答 14

Stack Overflow用户

发布于 2011-10-14 10:59:24

根据:https://github.com/tpope/vim-fugitive/issues/36

关闭另一个窗口。如果你还没有把焦点转移到这个窗口上,最简单的方法就是<C-W><C-O>,这意味着“让这个窗口成为唯一的窗口”

票数 39
EN

Stack Overflow用户

发布于 2011-02-19 07:03:18

我在使用diffoff时不太走运,但我刚刚了解到,不带参数的:Gedit将把您带回文件的工作目录版本,而不是您正在查看的早期版本。

由于q (不需要:q)将关闭diff侧边栏,因此您可以先执行q,然后执行:Gedit以删除侧边栏,然后返回到文件的当前版本。

票数 13
EN

Stack Overflow用户

发布于 2011-04-04 21:12:35

这对我来说很好,结合了这里的一些现有想法:

代码语言:javascript
复制
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>
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2703644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档