Vim window分屏详解

回忆上次

查询手册

  • 查一下手册:h window

图片描述

  • 三者定位
    • 上次的 buffer缓存 是内存中的文件缓存
    • 这次的 window窗口 是打开 buffer 的一个视角
    • tab 标签是 window窗口的集合
  • 我们可以
    • 通过:sp[lit]来上下切分窗口
    • 且切分了之后
    • 我们可以在一屏幕内同时看到第1行和第1000行
    • 切分出窗口之后可以用:q退出当前窗口
    • 这样就又回到单一窗口的状态

在此切分

图片描述

  • :sp[lit]切分 窗口之后
    • 可以切换窗口
    • ctrl-w ctrl-k切换到当前窗口上面的窗口
    • ctrl-w ctrl-j切换到当前窗口下面的窗口
    • ctrl-w
      • 意味着window
    • ctrl-kctrl-j
      • 意味着切换的方向
  • 切分之后可以再次切分 :sp[lit]
    • 再次切换
    • ctr-wctrl-k
      • 切换到当前窗口上面的窗口
    • ctrl-wctrl-j
      • 切换到当前窗口下面的窗口

纵向切分

  • 我们现在位于中间的一层
  • :vsp[lit]
    • v的意思是 vertical 垂直方向
    • 于是就可以把这个 window 再垂直方向上进行切分
  • 在左右切换的时候,使用
    • ctrl-wctrl-h
      • 切换到当前窗口左面的窗口
    • ctrl-wctrl-l
      • 切换到当前窗口右面的窗口

图片描述

退出窗口

  • 退出当前window窗口
    • :q
  • 强制退出当前window窗口不保存
    • :q!
  • 不保存强行退出所有
    • buffer :qall!
  • 保存所有未保存的文件
    • :wall
  • 全部保存并退出
    • :wqall

设置window显示与隐藏

  • :on[ly]
    • 保留当前window,其余的都hidden
  • :hide
    • 隐藏当前window
  • 如果:set autowrite
    • hidden的时候就自动保存

调整

图片描述

  • 调整窗口 window 高度减小
    • 高度减小
      • ctrl-w -
    • 高度减小N
      • :res[ize] -N
  • 调整窗口 window 高度增大
    • 高度增大
      • ctrl-w +
    • 高度增大N
      • :res[ize] +N
  • 设置当前窗口高度值为N
    • :res[ize] N
    • 或者直接在正常模式下
      • z15cr
  • 总共是 80*24
    • 看着分配
  • 窗口高度都统一
    • ctrl-w=

调整窗口

图片描述

  • 调整窗口 window 宽度减小
    • 宽度减小
      • ctrl-w <
    • 窗口 window 宽度减小N
      • :vertical res[ize] -N
  • 调整窗口 window 宽度增大
    • 宽度增大
      • ctrl+w >
    • 宽度增大N
      • :res[ize] +N
    • 设置当前窗口宽度值为N
      • :vertical res[ize] N
  • 窗口高度宽度都统一
    • ctrl-w=
  • 总共是 80*24
    • 还是得看着分配看着分配

状态横条

图片描述

  • :set laststatus=0不用状态横条
  • :set laststatus=1有多个窗口的时候,最底下有一个状态横条
  • :set laststatus=0各窗口有各自的状态横条

快速终端

  • 可以用:terminal或者:ter切换到命令模式
  • 只有vim8以上的版本才支持
  • 可以试试不?
    • 看起来是单独新建了一个进程
  • 如何上下切换 窗口 window ?
    • 快捷键
  • 如何切出 shell ?
    • 试试 exit 命令
    • 或者万能的退出快捷键ctrl-d

图片描述

  • 想要纵向分屏出shell?
    • :vertical terminal
    • :vert ter

总结

  • 我们这次了解了 窗口window
  • 窗口是用来装 缓冲buffer
  • buffer 是在内存里面载入的硬盘文件
  • 窗口的切分
    • :sp[lit] 水平切分
    • :vsp[lit] 垂直切分
  • 窗口的切换
    • ctrl-wctrl-k
      • 切换到当前窗口上面的窗口
    • ctrl-wctrl-j
      • 切换到当前窗口下面的窗口
    • ctrl-wctrl-h
      • 切换到当前窗口左面的窗口
    • ctrl-wctrl-l
      • 切换到当前窗口右面的窗口
  • 窗口的隐藏和全屏
    • :hid[e]可以隐藏当前窗口
      • 隐藏的windowbuffer不保存
      • 除非设置了autowrite
    • :on[ly]可以全屏当前窗口
      • 其他的窗口都进入:hide状态
  • 'laststatus' 可以设置状态横条
  • :terminal 可以开启终端
  • 这次主要就是window窗口,还挺方便
  • 尤其多文件操作
  • 这个还有什么可玩的吗?🤔
  • 下次再说 👋

教程来源于Github,感谢overmind1980大佬的无私奉献,致敬!

技术教程推荐

左耳听风 -〔陈皓〕

Vue开发实战 -〔唐金州〕

许式伟的架构课 -〔许式伟〕

大规模数据处理实战 -〔蔡元楠〕

Vim 实用技巧必知必会 -〔吴咏炜〕

陶辉的网络协议集训班02期 -〔陶辉〕

程序员的个人财富课 -〔王喆〕

深入C语言和程序运行原理 -〔于航〕

大厂广告产品心法 -〔郭谊〕