vim多文件操作

70 阅读3分钟

vim 多文件操作 先介绍多文件操作的相关概念(Buffer,Window,Tab)

Buffer是指打开一个文件的内存缓冲区
窗口是Buffer可视化的分割区域
Tab 可以组织窗口为一个工作区

Buffer-什么是缓冲区:

vim打开一个文件后会加载文件内容到缓冲区
之后的修改都是针对内存中的缓冲区,并不会直接保存到文件
直到我们执行:w  (write) 的时候才会把修改内容写入到文件里

如何在一个vim编辑的文件中使用vim打开别的文件 命令模式下e a.txt Buffer切换 buffer之间如何进行切换

使用  :ls 会列举当前缓冲区,然后使用 :b n 跳转到第n个缓冲区
:bpre :bnext :first :blast
或者用:b buffer_name 加上tab 补全来跳转

Window窗口 窗口是可视化分割区域

一个缓冲区可以分割成多个窗口,每个窗口也可以打开不同的缓冲区
ctrl+w +s 水平分割 ctrl +w +v  垂直分割。或者:sp 和 :vs
每个窗口可以继续无限分割(看你屏幕是否够大)

image.png

如何切换窗口 切换窗口的命令都是使用ctrl+w(window) 作为前缀

命令用途
ctrl+w +w在窗口间来回切换
ctrl+w +h切换到左边的窗口
ctrl+w +j切换到右边的窗口
ctrl+w +k切换到上面的窗口
ctrl+w +l切换到右边的窗口

重排窗口 重排窗口可以改变窗口的大小 :h window-resize 查看文档

命令用途
ctrl+w +=使所有窗口等宽等高
ctrl+w +_最大化活动窗口的高度
ctrl+w +最大化活动窗口的高度
[N] ctrl+w +_ 把活动窗口的高度设置为[N]行
[N] ctrl+w +把活动窗口的高度设置为[N]行

Tab标签将窗口分组 Tab是可以容纳一系列窗口的容器(:h tabpage)

 Vim的Tab和其他的编辑器不一样,可以想象成Linux的虚拟桌面
 比如一个Tab全用来编辑Python文件,一个Tab全是HTML文件
 相比于窗口,Tab一般用的比较少,Tab太多管理起来比较麻烦

Tab(标签页)操作 Tab使用不多,简单了解一些常用的操作就好

命令用途
:tabe [dit] {filename}在新标签中打开{filename}
ctrl + w +T把当前窗口移动到一个新标签页
:tabc[lose]关闭当前标签及其中的所有窗口
:tabo[nly]只保留活动标签页,关闭所有其他标签页

Tab标签页切换操作 在同一个标签中打开多个文件 在一个vim打开的文件中执行命令:sp 新文件 或者 :vs 新文件 如何打开一个文件在一个新的标签中 :tabnew 新文件 如何切换不同的标签页,一般建立两个就好,太多不好操作

Ex命令普通模式命令用途
:tabn[ext] {N}{N}gt切换到编号为{N}的标签页
:tabn[ext]gt切换到下一个标签页
:tabp[revious]gT切换到上一标签页