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!

©

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

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

雁过留声,人过留名

您的电子邮箱地址不会被公开。 必填项已用 * 标注

特别提示:与当前文章主题无关的讨论相关但需要较多讨论求助信息请发布到水景一页讨论区的相应版块,谢谢您的理解与合作!请参考本站互助指南
您可以在评论中使用如下的 HTML 标记来辅助表达: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>