如何在退出( )时检测 VIM 中是否有文件修改:q
?如果有文件修改 Vim 回显
E37: No write since last change (add ! to override)
我想用自定义消息和类似的操作覆盖此消息
File modified: Do you wish to save the file? (y)Yes (n)No (c)Cancel
我修改了 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>
答案1
你可以使用:confirm quit
,例如
map <C-w> :confirm quit<CR>
顺便说一句:C-w
对于快捷方式来说是一个糟糕的选择,因为它被用作其他快捷方式的开始,例如C-w v
用于垂直分割。这就是为什么在弹出对话框之前您会遇到短暂的延迟:在您按下 后C-w
,vim 会等待一小会儿再按下其他按键,然后才确定您确实只是想按下C-w
。
答案2
你已经得到了具体的答案。这是一个通用的:
您可以在以下位置找到几乎所有您能想到的 vim 增强功能的示例(以及完整的工作包)http://www.vim.org/scripts/index.php