6

我最近一直在过渡到 GVim,因为我发现它比终端中的 vim 更美观,而且速度更快。我有一个非常糟糕的习惯,我正在努力改掉。当我从命令行使用 vim 时,我的工作流程是这样的:

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

现在使用 GVim,我最终过于频繁地关闭编辑器。我想知道是否有一种方法可以强制 GVim 在我执行 a :wqor时提示我或打开一个空缓冲区ZZ。有任何想法吗?

编辑:我知道如何重新映射键,但我想知道是否有办法强制 GVim 具有与从命令行调用 vim 时不同的行为。

4

4 回答 4

6

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

nnoremap ZZ   <Nop>

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

if has("gui_running")
    nnoremap ZZ :q
    nnoremap :wq :q
endif
于 2012-07-26T14:55:29.997 回答
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
于 2012-07-26T15:07:47.460 回答
2

在你的 .vimrc 中添加这个:

set confirm
于 2015-03-27T22:09:02.750 回答
0

Gvim 和 vim 处理退出有点不同。选项 1 在两者中都可以正常工作。选项 2 在 vi​​m 中运行良好,但在 gvim 中,您可以通过按“X”在 X Windows 中关闭(部分)绕过它。它仍然会确认文件是否未经编辑,但在保存所有内容后它将退出所有内容。也许其他人知道如何处理这个问题。

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

在你的 .vimrc 中添加这个:

set confirm

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

使用这个插件

 Plugin 'vim-scripts/confirm-quit'

或者手动编码,然后看看你需要做什么(顺便说一句——这个插件是从这个 SE Question诞生的)

于 2020-04-08T15:55:31.213 回答