Can I set something like ctrl+s
to save the file?
I don't want to use :w
every time.
First of all stop using :w
to save. Use :update
instead. :update
writes the file to disk only when there are changes. So, it could be really helpful especially if the file is huge.
Now to map <C-S>
to :update
here is how you do it
nnoremap <C-S> :update<cr>
You may also want to have this mapping in Insert mode too. For that use this
inoremap <C-S> <Esc>:update<cr>gi
This mapping goes normal mode, executes the :update
command and then leaves you back where you are in insert
mode.
So, that is how you remap a key.
But I have :update
mapped to zz
in my vimrc
file. zz
is far more easy to hit than Ctrl + S
. Also, mapping Ctrl + S
can cause issues in Unix terminals as pointed out in the comments by @Sato Katsura.
So if you wish to use zz
, you can add that as follows
nnoremap zz :update<cr>
gi
instead of a
, or better yet, use <C-o>
instead of <esc>
.
Commented
Jul 22, 2016 at 5:10
Ctrl-S
is the stop character. You can use stty
to disable it, but then you won't be able to pause a program's output. Remapping Ctrl-S
and Ctrl-Q
is a really bad idea, about as bad as remapping Esc
.
Commented
Jul 22, 2016 at 6:19
Ctrl - S
. I use zz
for saving.
Commented
Jul 22, 2016 at 8:18
stty
adjustments.
Commented
Jul 22, 2016 at 8:29
<C-o>
is extremely useful for mappings. It means "Leave insert command to do a single normal mode command".
Commented
Jul 22, 2016 at 14:20
Yes, that's actually set up in the mswin.vim file that distributed with Vim 6.2 and above for windows.
It contains the following mappings:
" Use CTRL-S for saving, also in Insert mode
noremap <C-S> :update<CR>
vnoremap <C-S> <C-C>:update<CR>
inoremap <C-S> <C-O>:update<CR>
See Vim Wikia page on mapping Ctrl-S for this and other possible mappings.
With ideaVim pluging on WebStorm and prettier configured to format on save (not through File Watchers), you must use :w
instead of :update
.