如何.tmux.conf
在 tmux 启动时从或以其他方式自动运行 shell 命令,而不必点击任何其他命令?
我如何创建别名、函数或脚本,例如
tmuxirc -> tmux + irssi
Sev*_*zak 18
虽然它似乎不是您想要的,但解决方案是:
如何从 .tmux.conf 运行 shell 命令
是run-shell
,或者,以其缩写形式,run
。从tmux
手册页:
Run Code Online (Sandbox Code Playgroud)run-shell shell-command (alias: run) Execute shell-command in the background without creating a win- dow. After it finishes, any output to stdout is displayed in copy mode. If the command doesn't return success, the exit sta- tus is also displayed.
如果您需要在启动时在后台静默启动脚本,则tmux
可以使用run "command > /dev/null"
.
听起来您想从 shell 外部调用 tmux 而不是从 tmux 内部执行此操作,所以.tmux.conf
是错误的地方。您可以使用 shell 别名(将其放在您的目录中.bashrc
以供重用):
alias tmuxirc='tmux new-session -s irc irssi'
Run Code Online (Sandbox Code Playgroud)
小智 6
我用脚本做类似的事情。当我想用我的开发配置启动 tmux 时,我称之为。脚本本身如下所示:
#!/bin/sh
tmux has-session -t development
if [ $? != 0 ]; then
tmux new-session -s development -n editor -d
tmux send-keys -t development 'cd /var/www/htdocs/' C-m
tmux send-keys -t development 'vim' C-m
tmux split-window -v -t development
tmux split-window -v -t development
tmux select-layout -t development main-horizontal
tmux send-keys -t development:0.1 'cd /var/www/htdocs/' C-m
tmux new-window -n console -t development
tmux send-keys -t development:1 'cd /var/www/htdocs/' C-m
tmux select-window -t development:0
fi
tmux attach -t development
Run Code Online (Sandbox Code Playgroud)
这给我的是一个带有 2 个窗口的 tmux 会话,窗口 1 在屏幕顶部有一个 Vim 会话,在屏幕底部的第三个左右有两个终端,都指向我的 /var/www/htdocs/ 目录. Window 2 只是一个全屏控制台。这样做的好处是它不会重新创建会话,如果它已经存在,它只会附加到它。