我希望有一个很好的指南,介绍 bash(和类似)shell 中使用的常见 Control 键组合以及这些 shell 中使用的常见程序所使用的组合。
我的具体目的是能够在一台计算机上运行 GNU screen,通过 ssh 连接到第二台计算机并在该计算机上使用 screen 和 irssi。因此,我需要使用除 Ctrl-A 之外的其他键来控制其中一个 screen 会话。因此,我需要知道哪些 Control 组合键可以安全使用。
但我想这个列表对于想要将自定义操作绑定到控制键组合的人来说会很有用。
我认为我们最好按应用程序对 Control 键组合进行分组(例如 bash 本身、screen、vim、emacs),以便轻松找到您使用或可以忽略的应用程序。因此,请每个答案对应一个应用程序 - 希望这样可行。
答案1
猛击本身使用 GNU readline 库,许多其他交互式命令行程序也是如此。Readline 具有以下模仿 emacs 行为的默认键绑定:
在线移动:
- Ctrl + A 转到当前输入行的开头
- Ctrl + E 转到当前输入行的末尾
编辑行上的文本:
- Ctrl + U 清除光标位置之前的行。如果您位于行末,则清除整行。
- Ctrl + H 与退格键相同
- Ctrl + W 删除光标前的单词
- Ctrl + K 清除光标后的行
- Ctrl + T 交换光标前的最后两个字符
- Esc + T交换光标前的最后两个单词
其他:
- Ctrl + L 清除屏幕,类似于清除命令
- Ctrl + R 让你搜索以前使用过的命令
- Ctrl + C 杀死你正在运行的任何东西
- Ctrl + D 退出当前 shell
- Ctrl + Z 将您正在运行的任何内容放入暂停的后台进程中。fg 将其恢复。
答案2
Vim用途:
- Ctrl-B 后退(上)一屏
- Ctrl-D 向下半屏
- Ctrl-E 向上滚动文本(除非必须移动,否则光标不会移动)
- Ctrl-F 前进(下)一屏
- Ctrl-G 显示状态
- Ctrl-H 退格键
- Ctrl-J 行下来
- Ctrl-L 刷新屏幕
- Ctrl-N 向下移动一行(或通过自动完成向前滚动)
- Ctrl-P 向上移动一行(或通过自动完成向后滚动)
- Ctrl-R 重做(撤消后)
- Ctrl-T 转到上次标签跳转之前正在编辑的文件/代码
- Ctrl-U 向上半屏
- Ctrl-V 进入视觉阻断模式
- Ctrl-W 用于管理分割窗口
- Ctrl-Y 向下滚动文本(除非必须移动,否则光标不会移动)
答案3
Emacs使用一切。从http://www.cs.rutgers.edu/LCSR-Computing/some-docs/emacs-chart.html:
- C-SP 设置标记命令
- Ca 行首
- Cb 反向字符
- 抄送退出递归编辑
- Cd 删除字符
- CE 终端生产线
- Cf 正向字符
- Cg(上面的链接中没有明确提到,但在输入命令时用作“取消”)
- Ch 帮助命令
- Ci (TAB) 缩进制表符命令
- Cj (LFD) 换行和缩进
- CK杀灭线
- 氯乙烯
- Cm(RET)换行
- 下一行
- 共同开线
- Cp 上一行
- Cq 引用-插入
- 反向搜索
- Cs isearch-前进
- Ct 转置字符
- Cu 普遍论证
- 简历向上滚动
- Cw 终止区域
- Cx Control-X-前缀
- 赛扬克
- Cz 暂停 emacs
- C-] 中止递归编辑
- C-_ 撤消
答案4
很多应用程序都使用 GNU readline 库,因此了解这些键绑定很有用。您可以在 readline(2) 手册页中学习它们,可在此处轻松查看:
http://linux.die.net/man/3/readline