Putty 中的 Ctrl+s

今天在 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!

©

本文发表于水景一页。永久链接:<http://cnzhx.net/blog/ctrl-plus-s-in-putty/>。转载请保留此信息及相应链接。

4 条关于 “Putty 中的 Ctrl+s” 的评论

    • 说起来也是,用了这么久 Putty 了,今天终于按错了,然后连着错了好几回。

时间过去太久,评论已关闭。
如果您有话要说,请到讨论区留言并给出此文章链接。
谢谢您的理解 :-)