今天在 Putty 中编辑 VPS 上的文件的时候不小心将 Ctrl+c 错按成 Ctrl+s,结果 Putty 的界面就不动了,但是并没有断开连接。查了查才知道 Ctrl+s 是停止回显(XOFF),也就是停止屏幕输出的快捷键。可以通过 Ctrl+q 来恢复屏幕输出。
1. Linux 中 Ctrl+s 简介¶
通过 Putty 来编辑文件的时候还真是很容易习惯性的将 Ctrl + c(终止输入)错按成 Ctrl + s(终止回显)。第一次遇上这种事还真是有些慌乱了,我直接关闭了 Putty 终端然后重新登录了。
可是错了一次之后就难免习惯性的再错一次,于是找到了一篇 Recovering from CTRL+S in Putty 的文章,介绍得挺详细。原来终止屏幕输出之后,所有的键盘输入都还是正常响应的,只是看不到而已。按下 Ctrl+q 后就可以打开回显(XON)。如果恢复屏幕输出之前在键盘上乱按一气的话,可能会看到一个惨不忍睹的结果 :D
2. 关闭 Ctrl+s 快捷键的终止回显功能¶
如果希望再次按下这个快捷键的时候不进行任何操作,可以通过如下方式来禁用它。
将下面的代码增加到 .bashrc
文件中(可以通过 stty --help
查看 stty 的更多信息),
stty ixany
stty ixoff -ixon
可以在根目录下通过 vim .bashrc
编辑 .bashrc
文件。
3. 将 Ctrl+s(XOFF)改为保存功能¶
既然知道 Ctrl+s 就是发送 XOFF 信号的,就可以通过该写命令映射来改变其功能。我们可以将它改写成习惯的保存文件功能,在使用 VIM 编辑文件的时候使用。顺便把 Ctrl+q 的功能改成退出 VIM。
要这样改变,可以进行如下操作:
A. 将下面的代码添加到 .bashrc
文件中
# 关闭 Ctrl + s 的 XOFF 功能(XON 是 Ctrl + q) stty ixany stty ixoff -ixon stty stop undef stty start undef
B. 将下面的代码添加到 .vimrc
文件中
” Ctrl+s 用于保存当前编辑的文件 map :w imap :wa ” Ctrl+q 用于退出 VIM 编辑器;如果同时按住 shift 则表示放弃所做更改 map :q imap :q map :q! imap :q!
本文发表于水景一页。永久链接:<https://cnzhx.net/blog/ctrl-plus-s-in-putty/>。转载请保留此信息及相应链接。
我还真不知道这些命令。
是啊,我也是不小心碰上了。
呃呃呃…
不知道呢!很少按错,盲打不错…
说起来也是,用了这么久 Putty 了,今天终于按错了,然后连着错了好几回。