有没有办法别名tmux命令?

Jef*_* Wu 11 tmux

tmux有一个可以通过访问的命令模式,C-b :我想知道是否有一种方法可以在我的.tmux.conf文件中split-window使用别名命令,就像我vsp在vim中经常使用的那样.

我知道我可以绑定键盘快捷键,bind但我也可以使用别名命令吗?

Pau*_*ney 6

tmux 2.4 添加了command-alias执行此操作的数组选项,例如您可以这样做

:set -s command-alias[10] vsp='split-window -h'
Run Code Online (Sandbox Code Playgroud)

然后你可以:vsp像你期望的那样在命令提示符中使用。

  • 如何列出迄今为止定义的所有别名? (2认同)
  • 由于它是一个选项(如“set-option”中),因此它只是“tmux show-options command-alias”。 (2认同)

Ric*_*ich 5

从 tmux 2.0 开始,这似乎是不可能的。

但是,您可以做的一件事是从 shell 向封闭的 tmux 会话发送命令。这意味着您可以创建一个可以拆分窗口的bash别名:

alias vsp="tmux split-window -h"
Run Code Online (Sandbox Code Playgroud)

然后,您可以从 bash 提示符运行vsp以垂直分割 tmux 窗口。根据您的具体用例,这可能会有所帮助。

还值得注意的是,如果目标是最小化输入,则 tmux 命令可以缩短为最短的明确前缀:spsplit-window.


小智 -1

是的。在你的 tmux.conf 中使用bind-key。例如,要分割 tmux 窗口,请使用:

\n\n
bind-key v split-window -v #C-b v to split vertically\nbind-key h split-window -h #C-b h horizontal\n
Run Code Online (Sandbox Code Playgroud)\n\n

如果您不想使用前缀 (Cb),只需添加 -n 参数:

\n\n
bind-key -n C-right next # C - \xe2\x86\x92 to move to next window.\n
Run Code Online (Sandbox Code Playgroud)\n

  • 不确定这是否回答了原来的问题。我相信最初的问题是问从“命令提示符”执行的命令是否可以使用别名,**不是**“绑定键”。功能相当于 `alias vsp="split-window -h"`。所以有人可以像在 Vim 中那样做类似 `Cb :vsp` 的垂直分割。 (3认同)