强制GVim在关闭前提示

时间:2012-07-26 14:52:28

标签: vim

我最近一直在向GVim过渡,因为我发现它更美观,比终端中的vim快一点。我有这个非常坏的习惯,我正试图打破。当我从命令行使用vim时,我的工作流程是这样的:

vim filename.txt
# make some edits
ZZ
# do other stuff
vim otherfile.txt
# make some edits
ZZ

现在使用GVim,我最终太频繁地关闭了编辑器。我想知道当我执行:wqZZ时,是否有办法迫使GVim提示我或打开空缓冲区。有什么想法吗?

编辑:我知道如何重新映射密钥,但我想知道是否有办法迫使GVim有一个不同的行为,然后从命令行调用vim。

4 个答案:

答案 0 :(得分:6)

将以下内容放入vimrc可以完全禁用ZZ快捷方式:

nnoremap ZZ   <Nop>

或者您可以将它们重新映射到:q的标准行为:

if has("gui_running")
    nnoremap ZZ :q
    nnoremap :wq :q
endif

答案 1 :(得分:6)

ZZ上调用一个函数,如果只剩下一个选项卡和窗口,则提示是否关闭(默认为关闭)。请参阅:help confirm()

nnoremap ZZ :call QuitPrompt()<cr>

fun! QuitPrompt()
   if has("gui_running") && tabpagenr("$") == 1 && winnr("$") == 1
      let choice = confirm("Close?", "&yes\n&no", 1)
      if choice == 1 | wq | endif
   else | wq | endif
endfun

答案 2 :(得分:2)

在.vimrc中添加:

set confirm

答案 3 :(得分:0)

gvim和vim句柄退出时有所不同。选项1可以像您期望的那样工作。选项2在vim中很好用,但是在gvim中,您可以通过在X Windows中按“ X”关闭它(部分)来解决它。它仍然会确认文件是否未经编辑,但是保存所有内容后,它只会退出所有内容。也许其他人知道如何处理该问题。

选项1:仅在未保存文件时确认退出

将此添加到您的.vimrc中:

set confirm

选项2:始终确认退出(执行ZZ或q时)

使用此插件

 Plugin 'vim-scripts/confirm-quit'

或者手动编码following along with this to see what you need to do(顺便说一句,此插件来自this SE Question