如何设置 vim/zsh/tmux 可以在启动时显示三栏?

2020-10-12 13:24:23 +08:00
 lazydog

最近写代码发现竖分三栏对我来说利用率最好了,所以想着怎么可以在 vim/zsh/tmux 中操作一下。在网上找了一圈,大家都是在说如何手动分割,但是手动分割我知道如何操作,缺点在于每次都需要手动分割调整,所以我想要更自动化一点:每次打开 vim/zsh/tmux 就可以直接显示下图的这种效果:

当然上面三张图是我手动分割的,第一张是 iTerm 自带的分割方式,第二张是通过 tmux 进行的分割,第三张是 vim 下 vsp 分割的。

有了解的 v 友可以提供个思路嘛?

ps: 如果是在 vim 启动后显示三栏,需要单独找到文件然后打开,繁琐了一点。如果在 zsh/tmux 中设置的话,可以直接用 vim 打开文件,或许后者是我更需要的。

1402 次点击
所在节点    问与答
10 条回复
jdhao
2020-10-12 13:30:34 +08:00
vim 和 tmux 肯定可以,就是相当于启动的时候执行一些特定的命令,按这个方向搜索能找到需要的东西。
zsh 不清楚
no1xsyzy
2020-10-12 13:45:04 +08:00
vim 只要把 : 指令直接写在 .vimrc 最后就行, .vimrc 相当于启动后自动帮你执行一些语句。
tmux 不清楚,不过记得类似 screen 来着,也是那套传统 Unix 做法
rc = run commands,本意就是启动后先运行一些命令

zsh 本身有三栏功能吗?
lazydog
2020-10-12 14:10:44 +08:00
@jdhao @no1xsyzy 感谢,我试一下你们的方法。zsh 本身没有三栏的~
Tink
2020-10-12 14:43:18 +08:00
tmux_init()
{
tmux new-session -s "auto" -d -n "auto"
tmux split-window -h
tmux split-window -h
tmux select-layout even-horizontal
tmux select-pane -L
tmux select-pane -L
tmux -2 attach-session -d
}
lazydog
2020-10-12 15:03:23 +08:00
@Tink 感谢你的方法,这个可以完美解决 tmux 三屏的问题,不过还需要添加
if which tmux 2>&1 >/dev/null; then
test -z "$TMUX" && (tmux attach || tmux_init)
fi
到 zshrc 或者 bashrc 中。
null
2020-10-12 15:08:05 +08:00
Tink
2020-10-12 17:11:03 +08:00
@lazydog #5

不是。。。
这几句命令就是在 zshrc 里面添加的,第一行事 tmux_init 啊,肯定不是在.tmux.conf 里面啊
lazydog
2020-10-12 19:22:48 +08:00
@Tink 啊,是我理解错了,你这个方法直接在 zsh 执行 tmux_init 命令就可以了。我后面添加的那个是会在开启 zsh 是就直接进入 tmux 并分栏,我还在纳闷呢。
lazydog
2020-10-12 19:36:14 +08:00
@null 感谢,我试一下这个。
Ingo
2020-10-12 23:37:38 +08:00
vim -s Session.vim 回到关闭前的状态,辅以一些相关小插件,不知道楼主喜欢不喜欢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/714144

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX