【问题标题】:If I set key bind of C-b to c-a in tmux how can I move the cursor to the beginning of the line?如果我在 tmux 中将 C-b 的键绑定设置为 c-a 如何将光标移动到行首?
【发布时间】:2012-07-19 08:44:31
【问题描述】:

我只是从 GNU screen 移动到 tmux,在 screen 当我点击 C-a,然后再次输入 a 可以带我到行首,我想知道我是否坚持在 tmux 中使用 C-a 怎么能我可以解决这个问题吗?

【问题讨论】:

  • @ChrisJohnsen 感谢您指出这个现有问题,它也有帮助
  • [意见] 虽然 ctrl-a 无疑比 ctrl-b 更容易在 'qwerty' 键盘上键入,但我通常不鼓励人们以这种方式自定义 unix 工具。如果您所做的只是更改 tmux 的“前缀”键,那就不会那么糟糕了。但通常人们并不满足于止步于此,他们最终会得到如此严格定制的 tmux,以至于如果被要求使用遵循默认行为的其他人的机器,他们会感到不自在。我觉得最好的做法是采用已经存在的标准,并为您自己的功能扩展保存自定义。
  • [ANOTHER OPINION] 我建议对任何终端多路复用器使用 Ctrl-j 前缀,因为在 Emacs 和 Vim 中的行为类似于 Enter 键(只要您的 Enter 键有效,您应该没问题); j 也在你的主行;左边的Ctrl 通常比右边的Ctrl 更近所以Ctrl-j 这是一个快速的组合;还有j 看起来像个钩子。

标签: tmux


【解决方案1】:

如您所知,C-btmux 中的默认前缀。 C-b C-b 用于将实际的 C-b 字符发送到终端。如果将前缀切换为C-a,则只需重新绑定一些键即可更新哪个键发送send-prefix命令。

为您的.tmux.conf

# You probably already put this in
set prefix C-a

unbind-key C-b
bind-key C-a send-prefix

【讨论】:

  • 如何移动光标移动行首?
  • 在这些键绑定到位后,C-a C-a。您还可以添加bind-key a send-prefix 以保持与屏幕类似的C-a a 序列。
  • send-prefix 的重点在于它将前缀键发送到 shell。 tmux 不会将光标移动到行首; bash 在收到 C-a 时会执行此操作(通过 readline)。相信我,上面的代码就是你想要的.tmux.conf
  • 我是多么愚蠢,我在更改配置文件后并没有完全完成 tmux 会话,现在它可以工作了,非常感谢!
  • 您也可以在不退出 tmux 会话的情况下执行 C-a :source ~/.tmux.conf 重新加载 conf 文件。
【解决方案2】:

可能是我使用的版本的问题,但是如果上面的代码不适合你,试试这个:

set -g prefix C-a
unbind-key C-b
bind-key C-a send-prefix

【讨论】:

  • 谢谢,我的 Ubuntu 安装肯定需要-g,也许操作人员应该确认接受的答案对他仍然有效?
  • 似乎 mac 也需要 -g 选项
  • 在没有-g的mac上为我工作:|
  • 全局意思是“所有会话”——我遇到了同样的问题,一个会话更新但另一个没有。 -g 节省了一天。
  • -g 在“Windows 上的 Ubuntu 上的 Bash”上是必需的
猜你喜欢
  • 2021-12-27
  • 2012-09-03
  • 1970-01-01
  • 1970-01-01
  • 2022-11-29
  • 2011-05-30
  • 2018-08-05
  • 2013-05-21
  • 1970-01-01
相关资源
最近更新 更多