Tmux 命令到活动窗格上的 运行 shell 命令?
Tmux command to run shell command on active pane?
我知道 run-shell
命令 运行 是 "global" 会话中的代码,它不一定链接到任何活动的 window、窗格或会话。但是,我想将一个键绑定到 运行 活动窗格的 shell 中的命令。
用例:将键映射到当前活动窗格中的打开 vim
(可能使用某些参数)。就像你 运行 run-shell "command command-parameters*"
.
有没有办法在 tmux 中做到这一点?
正在向当前窗格发送命令
如果您 运行 tmux send-keys vim Enter
,这会将文字按键发送到您当前的窗格以生成 vim。然后您可以将它绑定到您喜欢的任何组合键。
警告:因为这是发送文字按键,所以窗格需要 shell 运行ning 来解释发送的内容(例如 bash / zsh / fish)。
针对特定窗格
您可以使用 -t
标志定位特定目的地。例如,要在当前会话中打开 vim,window 5,窗格 2:
tmux send-keys -t ":5.1" vim Enter
目标的语法非常灵活(请参阅联机帮助页的命令部分,了解目标会话和目标-window),这只是一个示例:
session-name:window-id.pane-id
当session-name为空时(如上例),使用当前会话。 5
标识您指的是哪个 window。 .1
指定 window #5 中的第二个窗格(从 0 开始计数)。
$TMUX_PANE
tmux 中的每个窗格都有自己唯一的 ID(并且在所有会话中都是唯一的)。它通过 $TMUX_PANE
环境变量公开。这也可以用作各种 tmux 命令的目标,例如tmux rename-window -t $TMUX_PANE $new_name
.
我知道 run-shell
命令 运行 是 "global" 会话中的代码,它不一定链接到任何活动的 window、窗格或会话。但是,我想将一个键绑定到 运行 活动窗格的 shell 中的命令。
用例:将键映射到当前活动窗格中的打开 vim
(可能使用某些参数)。就像你 运行 run-shell "command command-parameters*"
.
有没有办法在 tmux 中做到这一点?
正在向当前窗格发送命令
如果您 运行 tmux send-keys vim Enter
,这会将文字按键发送到您当前的窗格以生成 vim。然后您可以将它绑定到您喜欢的任何组合键。
警告:因为这是发送文字按键,所以窗格需要 shell 运行ning 来解释发送的内容(例如 bash / zsh / fish)。
针对特定窗格
您可以使用 -t
标志定位特定目的地。例如,要在当前会话中打开 vim,window 5,窗格 2:
tmux send-keys -t ":5.1" vim Enter
目标的语法非常灵活(请参阅联机帮助页的命令部分,了解目标会话和目标-window),这只是一个示例:
session-name:window-id.pane-id
当session-name为空时(如上例),使用当前会话。 5
标识您指的是哪个 window。 .1
指定 window #5 中的第二个窗格(从 0 开始计数)。
$TMUX_PANE
tmux 中的每个窗格都有自己唯一的 ID(并且在所有会话中都是唯一的)。它通过 $TMUX_PANE
环境变量公开。这也可以用作各种 tmux 命令的目标,例如tmux rename-window -t $TMUX_PANE $new_name
.