返回大旺国际登录网站
当前位置: 主页 > 精通Office > 其他教程 >

VIM—概念和技巧

时间:2015-12-28 21:45来源:大旺国际登录网站www.zhixing123.cn 编辑:麦田守望者

Vim 概念

Vim 系列有很多人催更了,今天就写写 Vim 的基本概念,之后先容几个使用技巧

下面大家来先容一下Vim中的几个基本概念:Buffer(缓冲区)、Window(窗口)和Tab-page(标签页)。

1、Buffer:很多读者问,用 Vim 打开文件后,文件内容存哪了,每次修改都要读写硬盘吗?显然不会每次编辑都写硬盘,事实上Vim打开的文件都会被加载到内存中,在内存中大家使用 Buffer 来描述正在编辑的文件,一个Buffer对应一个被编辑的文件副本。当大家在完成了一个Buffer的编辑后就可以保存该文件。Buffer不仅包含了文件的内容,也记录了该文件的编辑状态等配置信息,比如激活、隐藏、上次编辑行数等。

用Vim可以打开多个文件同时编辑,也可以把不需要的文件关掉,但这时文件副本依然保存在缓冲区中,大家可以通过 :ls:buffers查看这些Buffer,还可以通过类似:buffer n的方式重新打开文件(n表示Buffer的序号)。当然,大家有更好的方式来处理这些Buffer,那就是CommandTBuffer,要想使用CommandTBuffer,先要安装CommandT插件,请大家记住这个插件的名字,大家以后会用到。

2、Window:是对应Buffer的一个展示窗口。一个Buffer可以对应多个窗口,比如大家可以通过:split filename:vsplit filename命令在多个窗口打开一个文件,当修改某一个窗口的文件时,其他窗口都会同步更新。当然大家也可以在多个窗口打开多个文件,编辑后用:wq保存退出,但是记住,只要没有最终退出Vim进程,那么这些打开的文件Buffer依然保存在缓存区中,可以随时再次打开。

3、Tab-page:Tab-page就比较容易理解,对应一组窗口,大家可以通过:tabedit filename在另一个标签页中打开一个文件,在这个标签页中又可以打开多个窗口。

下图可以清晰的表达Buffer、Window和Tab-page的关系:

bwt

理解了这三个概念和三者之间的关系,对大家用好Vim有非常大的帮助。

Vim 技巧

1、打开 Vim之后,可以用:split filename:vsplit filenamenew filename横向或纵向切割窗口,使用 ctrl + w可以在个窗口之间跳转,使用 ctrl + 方向键可以按照方向切换窗口。

2、用 Vim 打开一个文件,如果大家想实现所有文本行翻转,那么可以实行如下命令:
:g/^/m 0

3、在 Vim 中统计文本行数和当前光标的位置,可以使用 ctrl + g,统计字节数,可以使用 g + ctrl + g

4、对文本进行简单排序:
用 shift v 选中多行文本,输入 : !sort,看看效果如何

5、如果你想把当前目录下(包括子文件夹)所有后缀为 java 的文件中的 apache 替换成 eclipse,那么依次实行如下命令: 在当前目录下实行:

vim 
:n **/*.java 
:argdo %s/apache/eclipse/ge | update

第四个技巧在 Vim 系列第二篇里提到过,今天说明一下,这就用到了buffer 的概念,通过替换后在内存中打开多个文件,argdo 表示在内存中实行 Vim 的命令,%s/apache/eclipse/ge 表示在内存中实行字符串替换,g 表示全局替换,e 表示如果文件中没有可替换字符串不报错继续实行,| 是管道标识符,update 表示替换完之后更新并写入文件。

------分隔线----------------------------
标签(Tag):Vim
------分隔线----------------------------
推荐内容
猜你感兴趣
XML 地图 | Sitemap 地图