无法让 Vim 将 CTRL+S 重新映射到 `:w`

5 bash vim gnome-terminal

我一直试图通过编辑我的文件来让 Vim 重新映射CTRL+ S(或 ^S),但是它不起作用。:w.vimrc

这是我目前的~/.vimrc配置:

nmap <c-s> :w<CR>
imap <c-s> <Esc>:w<CR>
imap <c-s> <Esc><c-s>
Run Code Online (Sandbox Code Playgroud)

我读到CTRL+S可以运行一个冻结终端的命令,但是我似乎没有遇到过这种情况。

如果我按CTRL+ S,则什么也不会发生。如果我这样做了ESC并且:q我被告知我还​​没有保存更改。

:current告诉我user vimrc file: "$HOME/.vimrc"

rom*_*inl 7

在整个<C-a>-><C-z>范围内,<C-s>并且<C-q>是仅有的两个不能在 CLI Vim 中映射的,因为它们在到达编辑器之前就被拦截了。

它们旨在用于流量控制,主要是终端和网络计算相对较长历史的产物,今天并不真正相关。

为您的 Ctrl 映射取回完整字母表的最简单方法是将此行添加到您的*rc

stty -ixon
Run Code Online (Sandbox Code Playgroud)