vim多窗格

  • vim打开文件分为三个阶段:buffer、window与tab
    • buffer就是在同一个界面打开的文件
    • window就是使用水平分割与垂直分割的窗口
    • tab则是可以是上述两者的总集合
  • buffer
    • :e filename在已打开文件的界面中再打开一个新文件,显示这个新文件,原文件被隐藏
    • :ls显示全部打开文件的名字
    • bn b{number} bprev bfirst blast bnext在打开的多个文件中切换
    • bd清除当前缓冲区内,即关闭当前打开的文件
  • window
    • 初始进入
      • vim -o filename1 filename2水平分割显示文件
      • vim -O filename1 filename2垂直分割显示文件
    • 打开分割窗口
      • :vs、:sp、ctrl + w + s、ctrl + w + v将当前buffer内文件垂直或水平再开新窗口
    • 关闭分割窗口:
      • ctrl + w + c与ctrl + w + q(若只有一个窗口关闭窗口且退出vim)
      • :only仅保留当前分屏
      • :hide关闭当前分屏
    • 分割后窗口切换:
      • ctrl + w + w、ctrl + w + h、ctrl + w + j、ctrl + w + k、ctrl + w + l
    • 分割窗口后移动
      • ctrl + w + R移动两个窗口内容
      • ctrl + w + H、ctrl + w + J、ctrl + w + K、ctrl + w + L,最后字母是大写,只移动窗口
    • 调整窗口大小
      • ctrl + w + =所有窗口等宽、等高
      • 窗口高度
        • ctrl + w + -减少高度
        • ctrl + w + +增加高度
          • {N} ctrl + w + +或ctrl + w + {N} +增加N行高度
        • ctrl + w + _最大化当前窗口高度
          • [N] ctrl + w + _设置当前窗口高度为N
        • :res[ize] {N}设置当前高度
      • 窗口宽度
        • ctrl + w + <减少宽度
        • ctrl + w + >增加宽度
        • ctrl + w + |最大化当前窗口宽度
          • [N] ctrl + w + |设置当前窗口宽度为N
        • :vertical res {N}设置窗口宽度为N
  • tab
    • 新建tab:tabnew创建新的tab标签
      • :tabe(tabedit) filename在新标签页上打开文件
      • :tab split在新的标签页中打开当前buffer中的文件(光标所在的文件)
        • 也可以使用ctrl + w + T:与上面相比,可以将原tab页面上该文件关闭
      • :tab ball在buffer中打开多个文件的情况下,可以为每一个文件新建一个tab页
    • 其它
      • vim默认可以打开10个标签页,使用set tabpagemax=15来修改这个值
      • :tabs显示已打开标签页的列表
      • :tabclose(tabc)关闭标签页;:tabonly(tabo)关闭除当前标签页的其它tab页
    • 切换标签页
      • 切换到下一个标签页::tabn、gt、ctrl + PageDown
      • 切换到上一个标签页::tabp、gT、ctrl + PageUp
      • :tabfirst、:tabr移动到第一个标签页;:tablast移动到最后一个标签页
    • 移动标签页
      • :tabm number移动标签页到指定位置,如果不加number而移动到最后
    • 标签页头的显示控制
      • 一般情况下,只有在标签页多于1个时,才会显示标签页头,设置方法::set showtabline=1
      • 在任何时候都显示标签栏::set showtabline=2
      • 从不显示标签栏::set showtabline=0
相关推荐
陌上花开缓缓归以22 分钟前
arm linux ddr 内存布局
linux·arm开发
龙腾-虎跃27 分钟前
Linux 趣味实战|纯 Bash Shell 脚本实现俄罗斯方块终端小游戏(完整源码资源)
linux·运维·bash
阳光九叶草LXGZXJ8 小时前
达梦数据库-报错-15-列【XXX】长度超出定义
linux·运维·数据库·sql·学习
奔跑的大白啊8 小时前
多容器共享目录权限踩坑记
linux·ubuntu·共享目录·linux权限·docker 容器化部署
Android系统攻城狮11 小时前
Linux Gstreamer深度解析之gst_audio_encoder_set_frame_max调用流程与实战(六十一)
android·linux·运维·音视频·gstreamer音视频·音视频进阶·gstreamer音视频进阶
H.莓飛12 小时前
【C++】命名空间、缺省参数、函数重载与引用
linux·开发语言·c++·visual studio
91刘仁德12 小时前
IP协议详解:从IP协议头到网段划分、路由与NAT
linux·服务器·网络·网络协议·tcp/ip
硅基手札13 小时前
【Linux内核专栏 14】网络协议栈
linux·运维·网络协议
沫璃染墨14 小时前
《Linux工程实践篇(一):认识设计模式——从日志系统看策略模式》
linux·c++·安全·设计模式·策略模式
工作10年+,存储芯片行业14 小时前
Linux NVMe 中断排查与性能优化:CPU 亲和性
linux·运维·服务器·windows·性能优化·ssd·pcie