当前位置:   article > 正文

29.vim高效使用方法之buffer、window和tab_astronvim tab和buffer

astronvim tab和buffer

载*请注明原始出处:http://blog.csdn.net/a464057216/article/details/51523860

后续此博客不再更新,欢迎大家搜索关注微信公众号“测开之美”,测试开发工程师技术修炼小站,持续学习持续进步。
在这里插入图片描述
许多优秀的图形界面编辑器比如UltraEdit、Notepad++等都有tab(中文叫标签),打开一个文件编辑的时候,相当于把这个文件放到了一个tab中,并且这些编辑器是每文件每tab的,即不允许一个文件在两个tab中打开。这个概念有点像浏览器,我们可以在一个浏览器窗口中打开多个tab,不过浏览器中不同的tab可以访问同一个网页。vim中tab的概念,却完全不同于图形界面编辑器及浏览器的传统意义。

1.buffer

vim中buffer的概念对应UE等编辑器中tab的概念,我们使用vim a.py打开一个文件后,使用:ls命令可以看到当前所有的buffer,比如:

:ls
  1 %a   "a.py"                         line 1
  • 1
  • 2

使用:badd b.py可以打开b.py的buffer(badd代表buffer add,也可以简写成bad),只不过这个时候b.py的buffer是hidden的,使用:ls可以看到如下输出:

:ls                                                                         
  1 %a   "a.py"                         line 1
  2      "b.py"                         line 1
  • 1
  • 2
  • 3

输出中,左侧是buffer的编号,有%的表示是当前激活的window中打开的buffer,a表示这个buffer是active的,双引号中的字符串表示了buffer对应的文件名字,line n表示当前cursor处于该buffer的哪一行。
我们使用:b2命令将b.py的buffer加载到当前窗口,然后使用:ls命令查看如下:

:ls
  1 #    "a.py"                         line 1
  2 %a   "b.py"                         line 1
  • 1
  • 2
  • 3

说明我们目前确实是在b.y的buffer中。我们可以使用:bd1删除a.py的buffer(bd代表buffer delete,当然删除前需要保存buffer 1的更改),然后使用:ls命令查看如下:

:ls
  2 %a   "b.py"                         line 1
  • 1
  • 2

熟悉了buffer的创建、切换、删除、查看buffer列表之后,有人可能会问,我能够方便的使用:sp及:vsp分割窗口,为什么要用buffer呢?不要忘了,能使用:sp及:vsp分割窗口在大型项目中工作的人,显示器一定很大,buffer在显示器较小的时候就很有优势了,它能够实现在文件间的快速切换。

2.window

刚才提到的:sp(水平分割)及:vsp(垂直分割)命令就是分隔window(窗口)的命令,vim又一个优势在于,可以在不同的window中编辑同一个文件的buffer,并且在一个window中对文件进行编辑,修改会同步体现在另外的window中,比如下图(在两个window打开了chapter1.py的buffer):

这里写图片描述

上面的例子,一共打开了两个文件的buffer,比如:

:ls
  1 %a   "chapter1.py"                  line 1
  2 #a   "../chapter2/chapter2.py"      line 0
  • 1
  • 2
  • 3

在左上角的window中:b2则可以加载chapter2.py的buffer,比如:
这里写图片描述

在window之间切换可以使用Ctrl + w + h/j/k/l(向左、下、上、右切换)或者Ctrl + w + w(在窗口间切换)。
如果要调整window的大小,分窗口是水平分隔还是垂直分隔两种情况:
如果是水平分隔可以使用:nwinc +/-把当前激活窗口高度增加、减少n个字符高度,比如:10winc +
如果是垂直分隔可以使用:nwinc >/<把当前激活窗口宽度增加、减少n个字符宽度,比如:5winc >

3.tab

会使用window分隔多窗口之后,我们终于要说一下一开始要讨论的vim的tab的功能。试想在一个工程项目中,我们要开发客户端和服务端的代码,我们可以把屏幕划分成上面是客户端的代码,下面是服务端的代码,但是你的屏幕总是有限的,如果能像mac一样通过三指滑动实现窗口切换就好了。

当然可以,在vim中这就是tab的切换,你可以把服务端放在一个tab中,客户端放在一个tab中,比如vim client1.py后,使用:tabe server1.py在另一个tab中编辑服务端的代码(tabe代表tab edit)。当然,每个tab中可以分隔出window,我做了一个如下的例子:

这里写图片描述

tab的标题栏会显示该tab当前激活的window中文件的名字,及tab中一共有多少个window。使用gt命令可以切换到下一个tab,使用gT命令可以切换到前一个tab,比如:

这里写图片描述

如果tab比较多,我们可以使用:tabs查看所有tab的列表,然后输入ngt命令切换到对应的tab,其中n是tab的编号,比如:

:tabs                                                                       
Tab page 1
    client3.py
    client2.py
    client1.py
Tab page 2
>   samp.py
Tab page 3
    server3.py
    server2.py
    server1.py
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

'>'表示cursor当前在tab 2的samp.py上,使用1gt即可快速切换到tab 1。
如果当前tab分隔的window比较多,可以使用:tabc命令关闭当前tab(tabc代表tab close)。

如果觉得我的文章对您有帮助,欢迎关注我(CSDN:Mars Loo的博客)或者为这篇文章点赞,谢谢!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/216734
推荐阅读
相关标签
  

闽ICP备14008679号