我最近一直在向GVim过渡,因为我发现它更美观,比终端中的vim快一点.我有这个非常坏的习惯,我正试图打破.当我从命令行使用vim时,我的工作流程是这样的:
vim filename.txt
# make some edits
ZZ
# do other stuff
vim otherfile.txt
# make some edits
ZZ
Run Code Online (Sandbox Code Playgroud)
现在使用GVim,我最终太频繁地关闭了编辑器.我想知道是否有办法迫使GVim提示我或打开一个空的缓冲区,当我做一个:wq或ZZ.有任何想法吗?
编辑:我知道如何重新映射密钥,但我想知道是否有办法迫使GVim有一个不同的行为然后从命令行调用vim.
将以下内容放在vimrc中可以完全禁用ZZ快捷方式:
nnoremap ZZ <Nop>
Run Code Online (Sandbox Code Playgroud)
或者您可以将它们重新映射到以下标准行为:q:
if has("gui_running")
nnoremap ZZ :q
nnoremap :wq :q
endif
Run Code Online (Sandbox Code Playgroud)
调用一个函数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
Run Code Online (Sandbox Code Playgroud)