如何重新映射 tmux 分屏键?

在我的Linux机器上,对于我的终端shell,我已经映射了tmux按键,以便我可以分割窗口,然后在新窗格之间切换。 无论是否使用这些映射,我都找不到如何重新映射Mac上的键组合,让我能够分割终端窗口并保留当前所在目录,用于新窗口。这对我所有的终端工作非常方便。 我可以使用Iterm菜单本身和/或它显示的快捷键组合,但是这些似乎只是Iterm分割窗口,并且它们唯一不能做到的就是设置相同的目录,而是进入我的主目录(~)。 请注意,这与切换tmux窗格无关,那个工作正常,也与切换Iterm窗格无关,如iterm - what's the key-combo to switch panes? 所示,高级配置似乎也没有生效: enter image description here 有人知道我可以使用/创建的键组合或映射来在我的Mac上实现“tmux分割并保留目录”功能吗?型号大约两年前发布。 我以为在iterm中的本地窗格分割中找到了它,通过更改工作目录从主目录更改为重用上一个会话的目录的设置。

enter image description here

但是没有起作用,我在新窗格中仍然得到了我的主目录。 [更新 - 我发现原来的tmux键组合 - 操作键 + "和操作键加上%(难怪我重新映射它们!)实际上在我的Mac上可行,即。

enter image description here

所以看起来我在.tmux.conf中重新映射它们的方式是这样的
set -g prefix C-a # this just changes my prefix from ctrl-b to ctrl-a
bind \ split-window -h # Split panes horizontal
bind - split-window -v # Split panes vertically

不工作(ctrl-a的重新映射可以正常使用,但是用于分割窗格的另外两个键绑定不起作用),可能是什么原因呢?

我的整个.tmux.conf文件内容如下:

$ cat .tmux.conf
bind r source-file ~/.tmux.conf \; display "Reloaded!" # Reload with ctrl-r
set -g prefix C-a # prefix from ctrl-b to ctrl-a
unbind C-b # allow ctrl-b for other things
set -sg escape-time 1 # quicker responses
bind C-a send-prefix # Pass on ctrl-a for other apps
set -g base-index 1 # Numbering of windows
setw -g pane-base-index 1 # Numbering of Panes
bind \ split-window -h # Split panes horizontal
bind - split-window -v # Split panes vertically
我还尝试过删除我的 .vimrc 文件,虽然它与终端 shell 问题无关,但我还是这样做了,但没有起作用。 信息更新:
$ tmux -V
tmux 1.8
[mdurrant@Macintosh ~]
$ tmux list-keys | grep split
bind-key          " split-window
bind-key          % split-window -h

附言:我已更新标题以反映我的更新。


1那个 .tmux.conf 对我有效(在 tmux 1.8 下):当我使用指定的配置文件启动一个新的服务器时,你的绑定工作正常。你确定你已经重新加载了你的配置吗?在 tmux 会话中运行 tmux list-keys | grep split 会显示什么? - Chris Johnsen
tmux 1.8和上面显示的键列表输出。 - Michael Durrant
1个回答

我需要重新加载(也许“应用”更合适)我的配置文件。
我已经重启了我的Mac,以为这样就可以了,但是我还需要做以下操作:
$ tmux source-file ~/.tmux.conf
注意:请按照所示的方式输入,不要更改任何内容。source-file 是你实际输入(或复制粘贴)的内容,而不是你替换为自己的值的东西。

2鉴于上述答案已被接受,我想补充一下这是一个非常常见的重新绑定操作:bind-key r source-file ~/.tmux.conf \; display "配置已重新加载!" - Kaolin Fire
2与此有些相关,供将来的谷歌用户参考:我想交换我的水平/垂直键,因为从直觉上来说那样更有意义,并发现要重新映射双引号键",你必须将它放在单引号中的.tmux.conf文件内。即:bind '"' split-window -h - yiwei
谢谢!我必须在 macOS 10.14 上做同样的事情。 - haxpor