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

载*请注明原始出处: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

使用: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

输出中,左侧是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

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

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

熟悉了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

在左上角的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

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

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

  • 16
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
使用jedi-vim插件,需要按照以下步骤进行配置: 1. 安装vim插件管理器vundle。在终端中输入以下命令进行安装: ```shell git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim ``` 2. 在vim配置文件~/.vimrc中添加以下内容: ```vim set nocompatible " be iMproved, required filetype off " required " set the runtime path to include Vundle and initialize set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin() " let Vundle manage Vundle, required Plugin 'VundleVim/Vundle.vim' " The following are examples of different formats supported. " Keep Plugin commands between vundle#begin/end. " jedi-vim插件 Plugin 'davidhalter/jedi-vim' call vundle#end() " required filetype plugin indent on " required " To ignore plugin indent changes, instead use: "filetype plugin on " " Brief help " :PluginList - lists configured plugins " :PluginInstall - installs plugins; append `!` to update or just :PluginUpdate " :PluginSearch foo - searches for foo; append `!` to refresh local cache " :PluginClean - confirms removal of unused plugins; append `!` to auto-approve removal " " see :h vundle for more details or wiki for FAQ " Put your non-Plugin stuff after this line ``` 3. 保存并退出vim配置文件,然后在vim中输入以下命令安装插件: ```vim :PluginInstall ``` 4. 安装完成后,可以使用jedi-vim插件提供的自动补全功能。在vim中输入以下命令开启自动补全: ```vim :set omnifunc=jedi#completions ``` 然后在编辑Python文件时,输入`.`或者`<C-Space>`即可触发自动补全。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值