Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
关闭前强制GVim提示_Vim - Fatal编程技术网

关闭前强制GVim提示

关闭前强制GVim提示,vim,Vim,最近我一直在向GVim过渡,因为我发现它比终端中的vim更美观,速度更快。我有一个非常坏的习惯,我正在努力改掉。当我从命令行使用vim时,我的工作流程如下: vim filename.txt # make some edits ZZ # do other stuff vim otherfile.txt # make some edits ZZ 现在使用GVim,我关闭编辑器的频率太高了。我想知道当我执行:wq或ZZ时,是否有办法强制GVim提示我或打开一个空缓冲区。有什么想法吗 编辑:我知道如

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

vim filename.txt
# make some edits
ZZ
# do other stuff
vim otherfile.txt
# make some edits
ZZ
现在使用GVim,我关闭编辑器的频率太高了。我想知道当我执行
:wq
ZZ
时,是否有办法强制GVim提示我或打开一个空缓冲区。有什么想法吗


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

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

nnoremap ZZ   <Nop>

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

nnoremap ZZ:call QuitPrompt()
有趣!QuitPrompt()
如果有(“gui_正在运行”)&&tabpagenr($”==1&&winnr($”==1
让选项=确认(“关闭?”,“&yes\n&no”,1)
如果选择==1 | wq | endif
else | wq | endif
结束

将此添加到您的.vimrc中:

set confirm
set confirm

Gvim和vim句柄退出时有点不同。选项1在这两种情况下都能正常工作。选项2在vim中工作得很好,但在gvim中,您可以通过在X窗口中按下“X”来绕过它(部分)。它仍将确认文件是否未编辑,但在保存所有内容时,它将退出所有内容。也许其他人知道如何处理这个问题

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


将此添加到.vimrc中:

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

使用这个插件

 Plugin 'vim-scripts/confirm-quit'

或者手工编写(顺便说一句,这个插件诞生于此)

我可以这样做,但我仍然喜欢在命令行中打开vim的功能,进行快速编辑和ZZ。如果是这样,就用
If has(“gui_running”)…endif围绕它