我试图从屏幕切换到tmux。我的一个screenrc配置允许我在屏幕的大部分顶部水平部分运行vim(我使用NERD_tree +许多vim拆分),并在底部为shell命令保留一个小得多的拆分窗口。我的部分屏幕处理拆分窗口:
# start two sessions
screen -t code vim
screen -t shell
# goto screen 0 and split it
select 0
split
# switch to bottom split and make it 8 lines smaller
focus
resize -8
# select screen 1 to show in bottom split
select 1
focus
答案 0 :(得分:0)
(注意:这是我之前回答的改进)
我们将必要的tmux命令添加到名为“vim-session”的文件中。让我们先看看内容,然后我们将看到如何使用该文件。
new-session -n code vim
split-window
resize-pane -D 8
我们要做的第一件事是创建一个新会话。 -d
阻止我们附加到会话,-n
选项命名会话的初始窗口,我们在其中运行vim
。接下来,我们将窗口垂直分成两个窗格,一个在顶部,一个在底部。焦点自动移动到底部的新窗格。最后,我们将当前窗格向下调整(-D
)8行。
您将使用
启动您的tmux会话$ tmux -f vim-session attach
这表示使用我们刚刚创建的配置文件而不是默认文件~/.tmux.conf
。我们将显式命令attach
提供给tmux,以便它附加到我们在“vim-session”中创建(但没有附加到)的会话。没有attach
,tmux会
隐式创建一个新会话并附加到该会话而不是我们在“vim-session”中创建的会话。
稍微更改您的调整标准,我们可以移除对resize-pane
的调用:
new-session -d -n code vim
split-window -p 30 # Make the new pane 30% of your screen
#split-window -l 10 # Make the new pane exactly 10 lines.
我认为没有办法让split-window
创建一个比8行小一半的新窗格。
答案 1 :(得分:0)
也许更好的替代方法是使用shell脚本,为键绑定,状态栏配置等保留配置文件。
#!/bin/bash
tmux new-session -d -s coding-session -n code vim
tmux split-window -p 30
tmux attach-session -t coding-session
这里,我们从shell执行三个tmux命令。第一个会话创建一个新会话但不附加到它(以便进程可以退出)。第二个命令发送split-window
命令(可能是)最近创建的会话。第三个将客户端附加到命名会话。