在 vim 中使用 CTRL-s 保存

Sou*_*Das 3 vim keyboard-shortcuts vimrc

我在 .vimrc 中添加了这一行,以便按下ctrl-s保存当前文件

:nmap <C-s> :w!<cr>
:imap <C-s> <esc>:w!<cr>
Run Code Online (Sandbox Code Playgroud)

但这是行不通的。关于我做错了什么的任何建议?

slm*_*slm 5

请参阅这篇 wikia.com 文章,了解您想要做的确切事情:http ://vim.wikia.com/wiki/Map_Ctrl-S_to_save_current_or_new_files

简而言之,您需要执行以下操作。

1.加入这个~/.vimrc

" If the current buffer has never been saved, it will have no name,
" call the file browser to save it, otherwise just save it.
nnoremap <silent> <C-S> :if expand("%") == ""<CR>browse confirm w<CR>else<CR>confirm w<CR>endif<CR>
Run Code Online (Sandbox Code Playgroud)

2. Disable terminal's interpretation of Ctrl+S

# bash
# No ttyctl, so we need to save and then restore terminal settings
vim()
{
    local ret STTYOPTS="$(stty -g)"
    stty -ixon
    command vim "$@"
    ret=$?
    stty "$STTYOPTS"
    return "$ret"
}

# zsh
vim() STTY=-ixon command vim "$@"
Run Code Online (Sandbox Code Playgroud)