退出 ( :q
) 时如何检测VIM 中是否有文件修改?如果有文件修改 Vim 回显
E37: No write since last change (add ! to override)
Run Code Online (Sandbox Code Playgroud)
我想用自定义消息和类似于的操作覆盖此消息
File modified: Do you wish to save the file? (y)Yes (n)No (c)Cancel
Run Code Online (Sandbox Code Playgroud)
我修改了 Vim 的行为以保存文件Ctrl-s
并退出Ctrl-w
现在我正在寻找一个解决方案,如果文件已经被修改并且用户正在使用 Ctrl-w 退出它我希望 Vim 提示保存。
这是我的 .vimrc 文件的内容:
map <C-S> :w<CR>
imap <C-S> <Esc>:w<CR>i
map <C-w> :q<CR>
imap <C-w> <Esc>:q<CR>
Run Code Online (Sandbox Code Playgroud)
你可以使用:confirm quit
,例如
map <C-w> :confirm quit<CR>
Run Code Online (Sandbox Code Playgroud)
顺便说一句:C-w
对于快捷方式来说是一个糟糕的选择,因为它被用作其他快捷方式的开始,例如C-w v
垂直拆分。这就是为什么在弹出对话框之前会遇到短暂延迟的原因:在您按下 之后C-w
,vim 会等待一小段时间等待其他按键,然后才决定您真的只想按下C-w
。