我是tmux的新用户,并希望对其进行配置,以便在运行tmux
时,我可以立即访问自定义的窗口/窗格。
例如,这是一个基本的〜/ .tmux.conf:
new -s main -n workspace
neww
当我运行tmux时,我会被抛入一个简单的旧会话中。当我执行list-sessions
时,我可以看到conf文件中指定的工作区会话,但为了使用它,我必须切换到它。
当我打开tmux时,我怎样才能继续将“工作区”会话转换为我转入的会话,以便我不必每次都切换到它?
答案 0 :(得分:3)
我不确定我是否理解了这个问题,但我使用tmuxinator来快速启动预先填充了窗口,窗格和进程的会话。
答案 1 :(得分:1)
您可以通过运行tmux attach
而非tmux
来附加到上次使用的会话(如果适用,将是您的conf文件创建的会话)。
如果您的配置中有多个会话设置,您可以使用会话名称目标标记选择您登陆的会话,如:tmux attach -t <session_name>
。
答案 2 :(得分:1)
我已创建this script。它不需要tmuxinator,ruby或其他。它只是一个bash脚本,可配置:
名为config的文件应包含以下内容:
combo=()
combo+=('logs' 'cd /var/log; clear; pwd')
combo+=('home' 'cd ~; clear; pwd')
并且bash代码应为:
#!/bin/bash
if [ -r config ]; then
echo ""
echo "Loading custom file"
. config
else
. config.dist
fi
tmux start-server
window=0
windownumber=-1
for i in "${combo[@]}"; do
if [ $((window%2)) == 0 ]; then
name=${i}
((windownumber++))
else
command=${i}
fi
if [ ${combo[0]} == "${i}" ]; then
tmux new-session -d -s StarTmux -n "${name}"
else
if [ $((window%2)) == 0 ]; then
tmux new-window -tStarTmux:$windownumber -n "${name}"
fi
fi
if [ $((window%2)) == 1 ]; then
tmux send-keys -tStarTmux:$windownumber "${command}" C-m
fi
((window++))
done
tmux select-window -tStarTmux:0
tmux attach-session -d -tStarTmux
答案 3 :(得分:0)
您在.tmux.conf
文件中创建会话,但您永远不会附加到该文件。当你刚刚运行
tmux
没有指定命令,因此默认运行new-session
并附加到生成的会话。
将.tmux.conf
文件限制为各种设置并将会话创建和管理保留为单独的脚本会更加清晰。
#!/bin/bash
tmux new -s main -n workspace
tmux neww # Creates a 2nd window, in addition to the new session's first window
tmux attach -t main
答案 4 :(得分:0)
使用我的脚本。 IniTmux。您可以使用简单的YAML文件轻松地描述会话,窗口和窗格。
---
name: AK-Math
root: /i/project/LibAK/feature/Math
windows:
- Matrix : feature
- Vector : feature
- Number : feature
- Complex : feature
- Real : feature
- Integer : feature
- Bool : feature
- Math:
layout : tiled
dir : branch
panes :
- 'ranger'
- ''
models:
feature:
layout: "40fd,113x31,0,0[113x22,0,0{22x22,0,0,0,90x22,23,0,1},113x9,0,23,2]"
dir: <WName>
panes:
- loop "tree obj" 0.5
- vim -c VWSLoadWorkSpace
- ''