Flo*_*low 112 hotkeys gnu-screen tmux
屏幕带有Ctrl+ A。另一方面,在 screen 中开发的 tmux 使用Ctrl+ B。然而,这两种击键也用于编辑器、shell 等。因此,在 tmux 或 screen 中使用时,选择其中任何一种都会降低这些工具的用户体验和功能。
什么前缀与其他程序和 shell 的键绑定冲突最少?
小智 57
对于想要在 tmux 中使用反引号作为转义符的人,您需要添加:
unbind C-b
set -g prefix `
bind-key ` send-prefix
Run Code Online (Sandbox Code Playgroud)
最后一个很重要,否则你不能为其他目的输入反引号:-)
小智 56
我认为^\
(又名^|
)是最好的,如果它在您的键盘布局上方便的位置。它在其他程序中的使用非常罕见:
SIGQUIT
到进程^C
拦截时中止 shell 中的 for 或 while 循环toggle-input-method
在 emacs 中不知道还有什么其他用途。小心不要意外杀死进程之外tmux
或screen
习惯之后。不过,这几年只在我身上发生过一次。
~/.tmux.conf
unbind-key C-b
set -g prefix 'C-\'
bind-key 'C-\' send-prefix
Run Code Online (Sandbox Code Playgroud)
~/.screenrc
escape ^|^|
Run Code Online (Sandbox Code Playgroud)
小智 21
Ctrl+A也已知会导致 Emacs 出现问题,包括 Emacs 模式下的 Bash。听起来这对你来说不是问题。
Ctrl+O是我见过的另一种选择。显然,这是RatPoison 中的默认设置(这是一个不需要鼠标的 X 窗口管理器)。我Ctrl+O在使用嵌套屏幕时使用过:Ctrl+O用于外部屏幕和Ctrl+A内部屏幕。效果很好,但有点吓到我的同事。:-)
我只是在想,如果您使用 vi 而不是 Emacs,还有一些选择。Ctrl+G例如,没有被很多人使用。
sim*_*air 13
我使用Ctrl-Q
了tmux
,到目前为止效果很好。不过,我不得不提一下,它与 shell 流控制相冲突。默认情况下,Ctrl-Q
用于在用 停止输出后重新启用输出Ctrl-S
。在意外击中后几次被卡住的外壳感到惊讶后Ctrl-S
,我学会了不按Ctrl-S
。
(也可以使用 完全关闭流量控制stty -ixon
,或者将不同的键绑定到stty start
和stty stop
。)
# tmux.conf
unbind C-b
set -g prefix C-q
Run Code Online (Sandbox Code Playgroud)
Dar*_*all 12
我使用复杂的屏幕系统。我的默认转义设置为 \140\140,这是反引号。这Ctrl-A使我在 Zsh 中的 Emacs 和命令行编辑变得复杂,我不喜欢Ctrl-O(大多数屏幕操作的 2 手操作)。
我将 's' 重新绑定到屏幕 1,以便在键盘上从左到右创建新会话,从 1 开始。这允许我为我认为持久或参考窗口保留屏幕 0。一个手势到 (backtick)1, (backtick)2, (backtick)3 在窗口之间切换是非常快速的。
在 Unix 环境中使用反引号的问题是在尝试剪切和粘贴 shell/Perl 脚本代码时。出于这个原因,我绑定了F11/F12在我的转义字符之间切换。
bindkey -d -k F1 escape ^O^O # bound to F11
bindkey -d -k F2 escape \140\140 # bound to F12
Run Code Online (Sandbox Code Playgroud)
Ctrl-O当我进行剪切和粘贴操作时,这会将转义交换为for。我发现点击双勾很简单,而且对于大多数屏幕操作来说是一个很好的折衷方案。
使用更新的解决方案重新审视此答案,该解决方案允许通过点击 来切换模式F12,并使用标题来指示模式。
bindkey -d -k F1 escape ^O^O # bound to F11
bindkey -d -k F2 escape \140\140 # bound to F12
Run Code Online (Sandbox Code Playgroud)
我喜欢保留^Space
非常特殊/常见的操作,因为我发现它是最容易输入的前缀,但现在我正在尝试将其映射为prefix
in tmux。
它让您的手指自由地立即跳转到您想要输入的命令。试一试。
一个迟来的建议: ctrl-s
。 ctrl-s
有很多优点:
ctrl-a
(事实上,对于大多数打字机来说,它会使用与之前相同的两个手指ctrl-a
),所以从ctrl-a
到的肌肉记忆切换ctrl-s
是微不足道的——对我来说,它在第一次尝试后大约一个小时内就变成了第二天性。ctrl-a
的emacs风格“回行开始”或者vim式“增量号”业务。或者嘿,用于在 tmux 窗格内运行 screen 而无需担心转义前缀字符来控制嵌入的屏幕实例。(我经常使用带有包含到远程服务器的 ssh 会话的窗格的本地 tmux 来执行此操作,我在其中运行 screen)当然,ctrl-s 上没有任何东西的原因是在终端中,它传统上用于流量控制,可以追溯到像这样的分页工具之前more
并且less
很常见。我确信某个地方的某个 GUI 终端程序仍然默认启用了流程控制功能,但我实际上并没有碰到过;默认情况下,我尝试过的 gui 终端程序似乎都完全忽略了它,这使得方便的组合键可用于更高效的用途。
因此,如果您实际上不是在(例如)原始 Linux 终端中使用 screen/tmux,而是从基于 GUI 的终端中使用,那么我建议您ctrl-s
尝试一下;它使在 tmux 和 screen 中压缩对我来说更方便。
归档时间: |
|
查看次数: |
72287 次 |
最近记录: |