Echo a customized message with VIM editor

vimvimrc

How can I deltect if there is a file modification in VIM upon exiting (:q)?
If there is a file modification Vim echos

E37: No write since last change (add ! to override) 

I want to override this message with a custom message and an action similar to

File modified: Do you wish to save the file? (y)Yes (n)No (c)Cancel

I have modified Vim's behavior to save file on Ctrl-s and quit on Ctrl-w

Now I am looking for a solution if the file is already modified and user is quitting it with Ctrl-w I want Vim to prompt to save.

Here is the content of my .vimrc file:

map <C-S> :w<CR>
imap <C-S> <Esc>:w<CR>i

map <C-w> :q<CR>
imap <C-w> <Esc>:q<CR>

Best Answer

You could use :confirm quit, e.g.

map <C-w> :confirm quit<CR>

By the way: C-w is a bad choice for a shortcut, because it is used as the start of other shortcuts, e.g. C-w v for splitting vertically. That's why you experience a short delay before the dialog pops open: after you press C-w, vim waits a short time for other keypresses, before it decides that you really just wanted to press C-w.

Related Question