VIM经验之谈.docx

上传人:b****4 文档编号:24249379 上传时间:2023-05-25 格式:DOCX 页数:11 大小:27.91KB
下载 相关 举报
VIM经验之谈.docx_第1页
第1页 / 共11页
VIM经验之谈.docx_第2页
第2页 / 共11页
VIM经验之谈.docx_第3页
第3页 / 共11页
VIM经验之谈.docx_第4页
第4页 / 共11页
VIM经验之谈.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

VIM经验之谈.docx

《VIM经验之谈.docx》由会员分享,可在线阅读,更多相关《VIM经验之谈.docx(11页珍藏版)》请在冰豆网上搜索。

VIM经验之谈.docx

VIM经验之谈

VIM的历史

BramMoolenaar在80年代末购入他的Amiga计算机时,Amiga上还没有他最常用的编辑器vi。

Bram从一个开源的vi复制Stevie开始,开发了Vim的1.0版本。

最初的目标只是完全复制vi的功能,那个时候的Vim是ViIMitation(模拟)的简称。

1991年Vim1.14版被"FredFishDisk#591"这个Amiga用的免费软体集所收录了。

1992年1.22版本的Vim被移植到了UNIX和MS-DOS上。

从那个时候开始,Vim的全名就变成ViIMproved(改良)了。

在这之后,Vim加入了不计其数的新功能。

做为第一个里程碑的是1994年的3.0版本加入了多视窗编辑模式(分割视窗)。

从那之后,同一萤幕可以显示的Vim编辑文件数可以不止一个了。

1996年发布的Vim4.0是第一个利用图型接口(GUI)的版本。

1998年5.0版本的Vim加入了highlight(语法高亮)功能。

2001年的Vim6.0版本加入了代码折叠、插件、多国语言支持、垂直分割视窗等功能。

2006年5月发布的Vim7.0版更加入了拼字检查、上下文相关补完,标签页编辑等新功能。

现在最新的版本是2008年8月发布的Vim7.2,该版本合并了vim7.1以来的所有修正补丁,并且加入了脚本的浮点数支持。

编辑本段VIM学习方法

Vim目前已经有类Unix版和Windows版,尽管vim较vi已经改良了不少,但是初次使用还是会一头雾水,不知如何操作,所以学习vim要首先过2关。

第一关是理解vim的设计思路,vim设计之初就是整个文本编辑都用键盘而非鼠标来完成,键盘上几乎每个键都有固定的用法,且vim的制作者希望用户在普通模式(也就是命令模式,只可输入命令)完成大部分的编辑工作,将此模式设计为默认模式,初学者打开vim,如果直接输入单词,结果就会滴滴乱响,这是因为vim把用户输入的单词理解为命令了。

第二关是命令关,vim有过百条命令对应编辑的需要,如果能熟练使用vim这些命令,编辑速度确实比鼠标要快很多,但是想全都记住它们也是一件难事,我想记住它们最好的方法就是多多来练习,确实把vim用在日常的文本编辑中去,且遇到难题不要放弃,而是查找解决的方法,每解决一个难题,你的vim技能就上升一级。

其实,Vim与其它编辑器一个很大的区别在于,它可以完成复杂的编辑与格式化功能.在这些领域还少有软件能与它分庭抗礼,但是,与所有的灵活性的代价一样,你需要用自己的双手来实现它.这在事实上造成了用户在使用Vim过程中的几个自然阶段.一开始是notepad,word,edit垄断你的大脑,这些东西根深蒂固,挥之不去Vim的使用对你而言是一场噩梦,它降低而不是提高了你的工作效率.对三种工作模式的不解甚至使你认为它是一个充满BUG或者至少是一个古怪的与当今友好用户界面设计严重脱节的软件.事实上,这些起初看起来古怪的特性是Vim(或者是vi)的作者和它的用户们在自己漫长的文字编辑和程序设计生涯中总结出来的最快速最实在的操作,在几乎等于计算机本身历史的成长期中,历经无数严厉苛刻的计算机用户的批评与检验,无用的特性或糟糕的设计在Vim用户群面前根本就没有生存的余地.Vim细心而谨慎的作者们也不允许自己精心设计的软件里有这样东西.第二个阶段你开始熟悉一些基本的操作,这些操作足以应付你日常的工作,你使用这些操作时根本就不假思索.但这些阶段你仍然很少去碰Vim那晦涩的在线帮助文档.它在你心里只是notepad,edit一个勉强合格的替代品.第三个阶段,精益求精的你不满足于无休无止的简单操作,冗长而乏味,有没有更好的办法可以四两拔斤.于是,从UNIX参考手册上,从同事口中,你渐渐叩开:

helpxxx的大门.开始探索里面充满魔力的咒语.从杂耍般的带有表演性质的技巧开始,这些技巧令人眩目但少有实用性.不过这却是你拥有魔力的第一步.接下来,你开始认识到这些咒语背后的真经,开始偷偷修改一些奇怪的符号,于是,奇迹产生了,魔力不但仍然有效,而且真实地作用于你现实中的文字编辑生活.你在第二阶段由于熟练操作而尘封已久的大脑突然开始运作.但这个过程并非是达到某个临界状态后的一路坦途,不断的挫折,新的挑战,看似MissionImpossible的任务.永远伴随着任何一个人的任何一个学习过程.这是你使用Vim的最后一个阶段,也是最漫长最有挑战性同时也充满无数奇趣的阶段.这个阶段里你开始定制一些希奇古怪的颜色.开始以敲入i18n来输入internationalization,开始让Vim替你纠正经常把the误敲成teh的毛病,开始让Vim与系统里各种精悍而强大的兄弟工具进行合作,开始写越来越长的script,每一次的文本编辑体验都妙趣横生高潮跌起.你的头脑因为要用Vim完成高效的编辑而高度紧张.你开始在Vim邮件列表里提一些确实是问题的问题.也开始发现你在Vim里做了以前在SHELL里做的几乎一切事.事实上你已经成了一个无可救药的Vim骨灰级玩家.

编辑本段高效率移动

1、在插入模式之外

基本上来说,你应该尽可能少的呆在插入模式里面,因为在插入模式里面VIM就像一个“哑巴”编辑器一样。

很多新手都会一直呆在插入模式里面,因为这样易于使用。

但VIM的强大之处在于他的命令行模式!

你会发现,在你越来越了解VIM之后,你就会花越来越少的时间使用插入模式了。

2、使用h、j、k、l

使用VIM高效率编辑的第一步,就是放弃使用箭头键。

使用VIM,你就不用频繁的在箭头键和字母键之间移来移去了,这会节省你很多时间。

当你在命令模式时,你可以用h、j、k、l来分别实现左、下、上、右箭头的功能。

一开始可能需要适应一下,但一旦习惯这种方式,你就会发现这样操作的高效之处了。

在你编辑你的电子邮件或者其他有段落的文本时,你可能会发现使用方向键和你预期的效果不一样,有时候可能会一次跳过了很多行。

这是因为你的段落在VIM看来是一个大的长长的行。

这时你可以在按h、j、k或者l之前键入一个g,这样VIM就会按屏幕上面的行如你所愿的移动了。

3、在当前行里面有效的移动光标

很多编辑器只提供了简单的命令来控制光标的移动(比如左、上、右、下、到行首/尾等)。

VIM则提供了很多强大的命令来满足你控制光标的欲望。

当光标从一点移动到另外一点,在这两点之间的文本(包括这两个点)称作被“跨过”,这里的命令也被称作是motion。

(简单说明一下,后面会用到这个重要的概念)

4、常用到的一些命令(motion)

fx:

移动光标到当前行的下一个x处。

很明显,x可以是任意一个字母,而且你可以使用;来重复你的上一个f命令。

tx:

和上面的命令类似,但是是移动到x的左边一个位置。

(这真的很有用)Fx:

和fx类似,不过是往回找。

w:

光标往前移动一个词。

b:

光标往后移动一个词。

0:

移动光标到当前行首。

^:

移动光标到当前行的第一个字母位置。

$:

移动光标到行尾。

):

移动光标到下一个句子。

(:

移动光标到上一个句子。

5、在整个文件里面有效移动光标

VIM有很多命令,可以用来到达文件里面你想到达的地方。

下面是一些在文件里面移动的命令:

向下移动一屏。

向上移动一屏。

G:

到文件尾numG:

移动光标到指定的行(num)。

(比如10G就是到第10行)gg:

到文件首H:

移动光标到屏幕上面M:

移动光标到屏幕中间L:

移动光标到屏幕下面*:

读取光标处的字符串,并且移动光标到它再次出现的地方。

#:

和上面的类似,但是是往反方向寻找。

/text:

从当前光标处开始搜索字符串text,并且到达text出现的地方。

必须使用回车来开始这个搜索命令。

如果想重复上次的搜索的话,按n。

text:

和上面类似,但是是反方向。

ma:

在当前光标的位置标记一个书签,名字为a。

书签名只能是小写字母。

你看不见书签的存在,但它确实已经在那里了。

`a:

到书签a处。

注意这个不是单引号,它一般位于大部分键盘的1的左边。

`.:

到你上次编辑文件的地方。

这个命令很有用,而且你不用自己去标记它。

编辑本段高效的输入

1、使用关键词自动完成

VIM有一个非常漂亮的关键词自动完成系统。

这表示,你可以输入一个长词的一部分,然后按一下某个键,然后VIM就替你完成了这个长词的输入了。

举个例子:

你有一个变量名为iAmALongAndAwkwardVarName在你写的代码的某个地方。

也许你不想每回都自己一个一个字母的去输入它。

使用关键词自动完成功能,你只需要输入开始几个字母(比如iAmAL),然后按(按住Ctrl,再按N)或者

如果VIM没有给出你想要的词,继续按,直到你满意为止,VIM会一直循环它找到的匹配的字符串。

2、聪明的进入插入模式

很多新手进入插入模式都只是用i。

这样当然可以进入插入模式,但通常不是那么合适,因为VIM提供了很多进入插入模式的命令。

下面是最常用的一些:

i:

在当前字符的左边插入I:

在当前行首插入a:

在当前字符的右边插入A:

在当前行尾插入o:

在当前行下面插入一个新行O:

在当前行上面插入一个新行c{motion}:

删除motion命令跨过的字符,并且进入插入模式。

比如:

c$,这将会删除从光标位置到行尾的字符并且进入插入模式。

ct!

,这会删除从光标位置到下一个叹号(但不包括),然后进入插入模式。

被删除的字符被存在了剪贴板里面,并且可以再粘贴出来。

d{motion}:

和上面差不多,但是不进入插入模式。

3、有效的移动大段的文本

使用可视选择(visualselections)和合适的选择模式不像最初的VI,VIM允许你高亮(选择)一些文本,并且进行操作。

这里有三种可视选择模式:

v:

按字符选择。

经常使用的模式,所以亲自尝试一下它。

V:

按行选择。

这在你想拷贝或者移动很多行的文本的时候特别有用。

按块选择。

非常强大,只在很少的编辑器中才有这样的功能。

你可以选择一个矩形块,并且在这个矩形里面的文本会被高亮。

在选择模式的时候使用上面所述的方向键和命令(motion)。

比如,vwww,会高亮光标前面的三个词。

Vjj将会高亮当前行以及下面两行。

4、在可视选择模式下剪切和拷贝

一旦你高亮了选区,你或许想进行一些操作:

d:

剪贴选择的内容到剪贴板。

y:

拷贝选择的内容到剪贴板。

c:

剪贴选择的内容到剪贴板并且进入插入模式。

在非可视选择模式下剪切和拷贝如果你很清楚的知道你想拷贝或者剪切什么,那你根本就不需要进入可视选择模式。

这样也会节省时间:

d{motion}:

剪切motion命令跨过的字符到剪贴板。

比如,dw会剪切一个词而dfS会将从当前光标到下一个S之间的字符剪切至剪贴板。

y{motion}:

和上面类似,不过是拷贝。

c{motion}:

和d{motion}类似,不过最后进入插入模式。

dd:

剪切当前行。

yy:

拷贝当前行。

cc:

剪切当前行并且进入插入模式。

D:

剪切从光标位置到行尾到剪贴板。

Y:

拷贝当前行。

C:

和D类似,最后进入插入模式。

x:

剪切当前字符到剪贴板。

s:

和x类似,不过最后进入插入模式。

5、粘贴

粘贴很简单,按p。

6、使用多重剪贴板

很多编辑器都只提供了一个剪贴板。

VIM有很多。

剪贴板在VIM里面被称为寄存器(Registers)。

你可以列出当前定义的所有寄存器名和它们的内容,命令为“:

reg”。

最好使用小写字母来作为寄存器的名称,因为大写的有些被VIM占用了。

使用寄存器的命令为双引号“。

比如:

我们要拷贝当前行到寄存器k。

你应该按“kyy。

(你也可以使用V”ky。

为什么这样也可以呢?

)现在当前行应该已经存在了寄存器k里面直到你又拷贝了一些东西进入寄存器k。

现在你可以使用命令“kp来粘贴寄存器k里面的内容到你想要的位置。

7、避免重复

令人惊奇的.命令在VI里面,输入.(小数点符号),将会重复你输入的上一个命令。

比如,你上个命令为“dw”(删除一个词),VI将会接着再删除一个词。

8、使用数字

使用数字也是VIM强大的而且很节省时间的重要特性之一。

在很多VIM的命令之前都可以使用一个数字,这个数字将会告诉VIM这个命令需要执行几次。

比如:

3j将会把光标向下移动三行。

10dd将会删除十行。

y3″将会拷贝从当前光标到第三个出现的引号之间的内容到剪贴板。

数字是扩展motion命令作用域非常有效的方法。

VIM的历史

BramMoolenaar在80年代末购入他的Amiga计算机时,Amiga上还没有他最常用的编辑器vi。

Bram从一个开源的vi复制Stevie开始,开发了Vim的1.0版本。

最初的目标只是完全复制vi的功能,那个时候的Vim是ViIMitation(模拟)的简称。

1991年Vim1.14版被"FredFishDisk#591"这个Amiga用的免费软体集所收录了。

1992年1.22版本的Vim被移植到了UNIX和MS-DOS上。

从那个时候开始,Vim的全名就变成ViIMproved(改良)了。

在这之后,Vim加入了不计其数的新功能。

做为第一个里程碑的是1994年的3.0版本加入了多视窗编辑模式(分割视窗)。

从那之后,同一萤幕可以显示的Vim编辑文件数可以不止一个了。

1996年发布的Vim4.0是第一个利用图型接口(GUI)的版本。

1998年5.0版本的Vim加入了highlight(语法高亮)功能。

2001年的Vim6.0版本加入了代码折叠、插件、多国语言支持、垂直分割视窗等功能。

2006年5月发布的Vim7.0版更加入了拼字检查、上下文相关补完,标签页编辑等新功能。

现在最新的版本是2008年8月发布的Vim7.2,该版本合并了vim7.1以来的所有修正补丁,并且加入了脚本的浮点数支持。

编辑本段VIM学习方法

Vim目前已经有类Unix版和Windows版,尽管vim较vi已经改良了不少,但是初次使用还是会一头雾水,不知如何操作,所以学习vim要首先过2关。

第一关是理解vim的设计思路,vim设计之初就是整个文本编辑都用键盘而非鼠标来完成,键盘上几乎每个键都有固定的用法,且vim的制作者希望用户在普通模式(也就是命令模式,只可输入命令)完成大部分的编辑工作,将此模式设计为默认模式,初学者打开vim,如果直接输入单词,结果就会滴滴乱响,这是因为vim把用户输入的单词理解为命令了。

第二关是命令关,vim有过百条命令对应编辑的需要,如果能熟练使用vim这些命令,编辑速度确实比鼠标要快很多,但是想全都记住它们也是一件难事,我想记住它们最好的方法就是多多来练习,确实把vim用在日常的文本编辑中去,且遇到难题不要放弃,而是查找解决的方法,每解决一个难题,你的vim技能就上升一级。

其实,Vim与其它编辑器一个很大的区别在于,它可以完成复杂的编辑与格式化功能.在这些领域还少有软件能与它分庭抗礼,但是,与所有的灵活性的代价一样,你需要用自己的双手来实现它.这在事实上造成了用户在使用Vim过程中的几个自然阶段.一开始是notepad,word,edit垄断你的大脑,这些东西根深蒂固,挥之不去Vim的使用对你而言是一场噩梦,它降低而不是提高了你的工作效率.对三种工作模式的不解甚至使你认为它是一个充满BUG或者至少是一个古怪的与当今友好用户界面设计严重脱节的软件.事实上,这些起初看起来古怪的特性是Vim(或者是vi)的作者和它的用户们在自己漫长的文字编辑和程序设计生涯中总结出来的最快速最实在的操作,在几乎等于计算机本身历史的成长期中,历经无数严厉苛刻的计算机用户的批评与检验,无用的特性或糟糕的设计在Vim用户群面前根本就没有生存的余地.Vim细心而谨慎的作者们也不允许自己精心设计的软件里有这样东西.第二个阶段你开始熟悉一些基本的操作,这些操作足以应付你日常的工作,你使用这些操作时根本就不假思索.但这些阶段你仍然很少去碰Vim那晦涩的在线帮助文档.它在你心里只是notepad,edit一个勉强合格的替代品.第三个阶段,精益求精的你不满足于无休无止的简单操作,冗长而乏味,有没有更好的办法可以四两拔斤.于是,从UNIX参考手册上,从同事口中,你渐渐叩开:

helpxxx的大门.开始探索里面充满魔力的咒语.从杂耍般的带有表演性质的技巧开始,这些技巧令人眩目但少有实用性.不过这却是你拥有魔力的第一步.接下来,你开始认识到这些咒语背后的真经,开始偷偷修改一些奇怪的符号,于是,奇迹产生了,魔力不但仍然有效,而且真实地作用于你现实中的文字编辑生活.你在第二阶段由于熟练操作而尘封已久的大脑突然开始运作.但这个过程并非是达到某个临界状态后的一路坦途,不断的挫折,新的挑战,看似MissionImpossible的任务.永远伴随着任何一个人的任何一个学习过程.这是你使用Vim的最后一个阶段,也是最漫长最有挑战性同时也充满无数奇趣的阶段.这个阶段里你开始定制一些希奇古怪的颜色.开始以敲入i18n来输入internationalization,开始让Vim替你纠正经常把the误敲成teh的毛病,开始让Vim与系统里各种精悍而强大的兄弟工具进行合作,开始写越来越长的script,每一次的文本编辑体验都妙趣横生高潮跌起.你的头脑因为要用Vim完成高效的编辑而高度紧张.你开始在Vim邮件列表里提一些确实是问题的问题.也开始发现你在Vim里做了以前在SHELL里做的几乎一切事.事实上你已经成了一个无可救药的Vim骨灰级玩家.

编辑本段高效率移动

1、在插入模式之外

基本上来说,你应该尽可能少的呆在插入模式里面,因为在插入模式里面VIM就像一个“哑巴”编辑器一样。

很多新手都会一直呆在插入模式里面,因为这样易于使用。

但VIM的强大之处在于他的命令行模式!

你会发现,在你越来越了解VIM之后,你就会花越来越少的时间使用插入模式了。

2、使用h、j、k、l

使用VIM高效率编辑的第一步,就是放弃使用箭头键。

使用VIM,你就不用频繁的在箭头键和字母键之间移来移去了,这会节省你很多时间。

当你在命令模式时,你可以用h、j、k、l来分别实现左、下、上、右箭头的功能。

一开始可能需要适应一下,但一旦习惯这种方式,你就会发现这样操作的高效之处了。

在你编辑你的电子邮件或者其他有段落的文本时,你可能会发现使用方向键和你预期的效果不一样,有时候可能会一次跳过了很多行。

这是因为你的段落在VIM看来是一个大的长长的行。

这时你可以在按h、j、k或者l之前键入一个g,这样VIM就会按屏幕上面的行如你所愿的移动了。

3、在当前行里面有效的移动光标

很多编辑器只提供了简单的命令来控制光标的移动(比如左、上、右、下、到行首/尾等)。

VIM则提供了很多强大的命令来满足你控制光标的欲望。

当光标从一点移动到另外一点,在这两点之间的文本(包括这两个点)称作被“跨过”,这里的命令也被称作是motion。

(简单说明一下,后面会用到这个重要的概念)

4、常用到的一些命令(motion)

fx:

移动光标到当前行的下一个x处。

很明显,x可以是任意一个字母,而且你可以使用;来重复你的上一个f命令。

tx:

和上面的命令类似,但是是移动到x的左边一个位置。

(这真的很有用)Fx:

和fx类似,不过是往回找。

w:

光标往前移动一个词。

b:

光标往后移动一个词。

0:

移动光标到当前行首。

^:

移动光标到当前行的第一个字母位置。

$:

移动光标到行尾。

):

移动光标到下一个句子。

(:

移动光标到上一个句子。

5、在整个文件里面有效移动光标

VIM有很多命令,可以用来到达文件里面你想到达的地方。

下面是一些在文件里面移动的命令:

向下移动一屏。

向上移动一屏。

G:

到文件尾numG:

移动光标到指定的行(num)。

(比如10G就是到第10行)gg:

到文件首H:

移动光标到屏幕上面M:

移动光标到屏幕中间L:

移动光标到屏幕下面*:

读取光标处的字符串,并且移动光标到它再次出现的地方。

#:

和上面的类似,但是是往反方向寻找。

/text:

从当前光标处开始搜索字符串text,并且到达text出现的地方。

必须使用回车来开始这个搜索命令。

如果想重复上次的搜索的话,按n。

text:

和上面类似,但是是反方向。

ma:

在当前光标的位置标记一个书签,名字为a。

书签名只能是小写字母。

你看不见书签的存在,但它确实已经在那里了。

`a:

到书签a处。

注意这个不是单引号,它一般位于大部分键盘的1的左边。

`.:

到你上次编辑文件的地方。

这个命令很有用,而且你不用自己去标记它。

编辑本段高效的输入

1、使用关键词自动完成

VIM有一个非常漂亮的关键词自动完成系统。

这表示,你可以输入一个长词的一部分,然后按一下某个键,然后VIM就替你完成了这个长词的输入了。

举个例子:

你有一个变量名为iAmALongAndAwkwardVarName在你写的代码的某个地方。

也许你不想每回都自己一个一个字母的去输入它。

使用关键词自动完成功能,你只需要输入开始几个字母(比如iAmAL),然后按(按住Ctrl,再按N)或者

如果VIM没有给出你想要的词,继续按,直到你满意为止,VIM会一直循环它找到的匹配的字符串。

2、聪明的进入插入模式

很多新手进入插入模式都只是用i。

这样当然可以进入插入模式,但通常不是那么合适,因为VIM提供了很多进入插入模式的命令。

下面是最常用的一些:

i:

在当前字符的左边插入I:

在当前行首插入a:

在当前字符的右边插入A:

在当前行尾插入o:

在当前行下面插入一个新行O:

在当前行上面插入一个新行c{motion}:

删除motion命令跨过的字符,并且进入插入模式。

比如:

c$,这将会删除从光标位置到行尾的字符并且进入插入模式。

ct!

,这会删除从光标位置到下一个叹号(但不包括),然后进入插入模式。

被删除的字符被存在了剪贴板里面,并且可以再粘贴出来。

d{motion}:

和上面差不多,但是不进入插入模式。

3、有效的移动大段的文本

使用可视选择(visualselections)和合适的选择模式不像最初的VI,VIM允许你高亮(选择)一些文本,并且进行操作。

这里有三种可视选择模式:

v:

按字符选择。

经常使用的模式,所以亲自尝试一下它。

V:

按行选择。

这在你想拷贝或者移动很多行的文本的时候特别有用。

按块选择。

非常强大,只在很少的编辑器中才有这样的功能。

你可以选择一个矩形块,并且在这个矩形里面的文本会被高亮。

在选择模式的时候使用上面所述的方向键和命令(motion)。

比如,vwww,会高亮光标前面的三个词。

Vjj将会高亮当前行以及下面两行。

4、在可视选择模式下剪切和拷贝

一旦你高亮了选区,你或许想进行一些操作:

d:

剪贴选择的内容到剪贴板。

y:

拷贝选择的内容到剪贴板。

c:

剪贴选择的内容到剪贴板并且进入插入模式。

在非可视选择模式下剪切和拷贝如果你很清楚的知道你想拷贝或者

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1