如何在 tmux 启动时创建布局和 运行 命令?
How to create a layout and run commands in at tmux launch?
我正在尝试编写我可以 run/source 的脚本,以便 tmux 设置特定的布局和 运行 命令。我有一些结果。
以下是我到目前为止所写的内容:
selectp -t 1
splitw -v -p 15
splitw -h -p 50
selectp -t 1
send-keys 'cd ~/code/octoly' Enter
send-keys 'vim .' Enter
selectp -t 2
send-keys 'cd ~/code/octoly' Enter
send-keys 'drails c' Enter
new-window -d -n server -c ~/code/octoly
selectw -t 2
send-keys 'fd' Enter
splitw -h -p 50
send-keys 'cd ~/code/octoly' Enter
send-keys 'drails s' Enter
selectp -t 1
splitw -v -p 50
send-keys 'cd ~/code/octoly' Enter
send-keys 'be guard' Enter
第二个 window 和窗格的创建或多或少起作用。尽管窗格没有给我想要的东西。它们都是在第一个window中创建的,none在第二个中创建的。
这是我 运行 启动 tmux 的方式:
tmux new 'tmux move-window -t 99 \; source-file ~/.tmux/session_octoly'
此外,我真正迷失的地方是,如果我 运行 一个接一个地手动执行每个命令,它会给我想要的东西。
我在这里错过了什么?
首先,您在 new-window
中使用 -d
标志,它不会使新 window 成为 当前 window:
If -d is given, the session does not make the new window the current window.
但是我可能会以不同的方式启动 tmux
,使用 tmux -f
标志来使用 ad-hoc 配置文件来执行您想要的操作。
在您的环境中运行安装之前请检查命令。
# File: ~/.tmux/octoly.conf
# Load default .tmux.conf
source-file ~/.tmux.conf
# setup octoly session
new-session -s octoly -n editor -d -c ~/code/octoly
send-keys 'vim .' Enter
split-window -v -p 15 -c ~/code/octoly
send-keys 'drails c' Enter
split-window -h -p 50 -c ~/code/octoly
# Select vim pane
select-pane -t 1
# create second window
new-window -n server -c ~/code/octoly
send-keys 'fd' Enter
split-window -h -p 50 -c ~/code/octoly
send-keys 'drails s' Enter
select-pane -t 1
split-window -v -p 50 -c ~/code/octoly
send-keys 'be guard' Enter
# Optional step, reselect window 1 (the one with vim)
select-window -t editor
然后您需要启动 tmux
使用:
tmux -f ~/.tmux/octoly.conf attach
另一种选择是构建一个 bash 发送相同命令的脚本。
注意:我每次使用cd
命令时都使用-c
标志来指定起始目录,而不是运行ning .鉴于每个命令都在同一文件夹中 运行,您可以在 split-window
命令中将它们取出。
我正在尝试编写我可以 run/source 的脚本,以便 tmux 设置特定的布局和 运行 命令。我有一些结果。
以下是我到目前为止所写的内容:
selectp -t 1
splitw -v -p 15
splitw -h -p 50
selectp -t 1
send-keys 'cd ~/code/octoly' Enter
send-keys 'vim .' Enter
selectp -t 2
send-keys 'cd ~/code/octoly' Enter
send-keys 'drails c' Enter
new-window -d -n server -c ~/code/octoly
selectw -t 2
send-keys 'fd' Enter
splitw -h -p 50
send-keys 'cd ~/code/octoly' Enter
send-keys 'drails s' Enter
selectp -t 1
splitw -v -p 50
send-keys 'cd ~/code/octoly' Enter
send-keys 'be guard' Enter
第二个 window 和窗格的创建或多或少起作用。尽管窗格没有给我想要的东西。它们都是在第一个window中创建的,none在第二个中创建的。
这是我 运行 启动 tmux 的方式:
tmux new 'tmux move-window -t 99 \; source-file ~/.tmux/session_octoly'
此外,我真正迷失的地方是,如果我 运行 一个接一个地手动执行每个命令,它会给我想要的东西。
我在这里错过了什么?
首先,您在 new-window
中使用 -d
标志,它不会使新 window 成为 当前 window:
If -d is given, the session does not make the new window the current window.
但是我可能会以不同的方式启动 tmux
,使用 tmux -f
标志来使用 ad-hoc 配置文件来执行您想要的操作。
在您的环境中运行安装之前请检查命令。
# File: ~/.tmux/octoly.conf
# Load default .tmux.conf
source-file ~/.tmux.conf
# setup octoly session
new-session -s octoly -n editor -d -c ~/code/octoly
send-keys 'vim .' Enter
split-window -v -p 15 -c ~/code/octoly
send-keys 'drails c' Enter
split-window -h -p 50 -c ~/code/octoly
# Select vim pane
select-pane -t 1
# create second window
new-window -n server -c ~/code/octoly
send-keys 'fd' Enter
split-window -h -p 50 -c ~/code/octoly
send-keys 'drails s' Enter
select-pane -t 1
split-window -v -p 50 -c ~/code/octoly
send-keys 'be guard' Enter
# Optional step, reselect window 1 (the one with vim)
select-window -t editor
然后您需要启动 tmux
使用:
tmux -f ~/.tmux/octoly.conf attach
另一种选择是构建一个 bash 发送相同命令的脚本。
注意:我每次使用cd
命令时都使用-c
标志来指定起始目录,而不是运行ning .鉴于每个命令都在同一文件夹中 运行,您可以在 split-window
命令中将它们取出。