V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
lazydog
V2EX  ›  问与答

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

  •  
  •   lazydog · 2020-10-12 13:24:23 +08:00 · 1419 次点击
    这是一个创建于 1506 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    1.jpg

    22.jpg

    3.jpg

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

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

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

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

    zsh 本身有三栏功能吗?
    lazydog
        3
    lazydog  
    OP
       2020-10-12 14:10:44 +08:00
    @jdhao @no1xsyzy 感谢,我试一下你们的方法。zsh 本身没有三栏的~
    Tink
        4
    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
        5
    lazydog  
    OP
       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
        6
    null  
       2020-10-12 15:08:05 +08:00
    Tink
        7
    Tink  
       2020-10-12 17:11:03 +08:00
    @lazydog #5

    不是。。。
    这几句命令就是在 zshrc 里面添加的,第一行事 tmux_init 啊,肯定不是在.tmux.conf 里面啊
    lazydog
        8
    lazydog  
    OP
       2020-10-12 19:22:48 +08:00
    @Tink 啊,是我理解错了,你这个方法直接在 zsh 执行 tmux_init 命令就可以了。我后面添加的那个是会在开启 zsh 是就直接进入 tmux 并分栏,我还在纳闷呢。
    lazydog
        9
    lazydog  
    OP
       2020-10-12 19:36:14 +08:00
    @null 感谢,我试一下这个。
    Ingo
        10
    Ingo  
       2020-10-12 23:37:38 +08:00 via iPhone
    vim -s Session.vim 回到关闭前的状态,辅以一些相关小插件,不知道楼主喜欢不喜欢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5932 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 43ms · UTC 06:19 · PVG 14:19 · LAX 22:19 · JFK 01:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.