使用 VIM 编辑器回显自定义消息

Ash*_*win 4 vim vimrc

退出 ( :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)

dan*_*ann 5

你可以使用:confirm quit,例如

map <C-w> :confirm quit<CR>
Run Code Online (Sandbox Code Playgroud)

顺便说一句:C-w对于快捷方式来说是一个糟糕的选择,因为它被用作其他快捷方式的开始,例如C-w v垂直拆分。这就是为什么在弹出对话框之前会遇到短暂延迟的原因:在您按下 之后C-w,vim 会等待一小段时间等待其他按键,然后才决定您真的只想按下C-w