我最近一直在向GVim过渡,因为我发现它更美观,比终端中的vim快一点。我有这个非常坏的习惯,我正试图打破。当我从命令行使用vim时,我的工作流程是这样的:
vim filename.txt
# make some edits
ZZ
# do other stuff
vim otherfile.txt
# make some edits
ZZ
现在使用GVim,我最终太频繁地关闭了编辑器。我想知道当我执行:wq
或ZZ
时,是否有办法迫使GVim提示我或打开空缓冲区。有什么想法吗?
答案 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)