如果我在tmux中将Cb的键绑定设置为ca,如何将光标移动到行首?


74

我只是从GNU屏幕移到tmux,当我点击时在屏幕中C-a,然后a再次键入可以将我带到行的开头,我想知道我是否坚持使用C-atmux该如何解决?



@ChrisJohnsen感谢您指出这个现有问题,它也有帮助
mko 2012年


[意见]虽然ctrl-a在“ qwerty”键盘上的输入无疑比ctrl-b容易,但我通常不鼓励人们使用这种方式自定义unix工具。如果您所做的只是更改tmux的'prefix'键,那还不错。但是,人们常常不满足于在此停下来,而且他们最终得到了如此严格的定制的tmux,以至于如果要求使用遵循默认行为的其他人的机器,他们将大失所望。我认为,最佳实践是采用已经存在的标准,并保存对您自己的功能扩展的自定义。
瑞安·贝塞尔

[另一个观点]我建议Ctrl-j对任何终端多路复用器使用前缀,因为在Emacs和Vim中,它们的行为都类似于Enter键(只要您的Enter键起作用就可以了);也在j你的家中;而且左侧Ctrl通常比右侧更近,Ctrl因此Ctrl-j是一种快速组合;也j看起来像一个钩子。
isar

Answers:


82

如您所知,C-b是中的默认前缀tmuxC-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

如何将光标移动到行首?
mko

11
这些键绑定到位后,C-a C-a。您还可以添加bind-key a send-prefix以保持类似屏幕的C-a a顺序。
chepner

4
关键send-prefix是它将前缀密钥发送到外壳。tmux不会将光标移动到行的开头;收到时bash(通过readline)做到了C-a。相信我,上面的代码就是您想要的.tmux.conf
chepner

1
我多么愚蠢,在更改配置文件后我没有完全完成tmux会话,现在非常感谢!
mko 2012年

11
您也可以C-a :source ~/.tmux.conf在不退出tmux会话的情况下重新加载conf文件。
jackbravo

81

可能是与我使用的版本有关的问题,但是如果以上代码对您不起作用,请尝试以下操作:

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

10
谢谢,-g我的Ubuntu安装肯定是必需的,也许操作员应该确认接受的答案仍然对他有用吗?
stephenmurdoch

3
似乎Mac也需要-g选项
Jardalu's

在Mac上对我有效,但没有-g:|
Aviel Gross

1
全局均值“所有会话”-我遇到了同样的问题,其中一个会话已更新,而另一会话未更新。-g保存一天。
尼尔·麦吉尔

-g在“ Windows上的Ubuntu上的Bash”上是必需的
chriskelly
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.