2

我试图从屏幕切换到 tmux。我的 screenrc 配置之一允许我在屏幕的大部分顶部水平部分运行 vim(我使用 NERD_tree + 许多 vim 拆分),并在底部为 shell 命令保留一个小得多的拆分窗口。我的 screenrc 的一部分处理拆分窗口:

# 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
4

2 回答 2

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第二个向(大概)最近创建的会话发送命令。第三个将客户端附加到命名会话。

于 2012-03-24T14:58:26.127 回答
-1

(注意:这是对我之前答案的改进)

我们会将必要的 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。我们向 tmux 提供显式命令attach,以便它附加到我们在“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 行小于一半的新窗格。

于 2012-03-22T18:45:15.953 回答