===============================================================================
= 欢 迎 阅 读 《 V I M 教 程 》 —— 版本 1.7 =
===============================================================================
vim 是一个具有很多命令的功能非常强大的编辑器。限于篇幅,在本教程当中
就不详细介绍了。本教程的设计目标是讲述一些必要的基本命令,而掌握好这
些命令,您就能够很容易将vim当作一个通用的万能编辑器来使用了。
完成本教程的内容大约需要25-30分钟,取决于您训练的时间。
注意:
每一节的命令操作将会更改本文。推荐您复制本文的一个副本,然后在副本上
进行训练(如果您是通过"vimtutor"来启动教程的,那么本文就已经是副本了)。
切记一点∶本教程的设计思路是在使用中进行学习的。也就是说,您需要通过
执行命令来学习它们本身的正确用法。如果您只是阅读而不操作,那么您可能
会很快遗忘这些命令的!
好了,现在请确定您的Shift-Lock(大小写锁定键)还没有按下,然后按键盘上
的字母键 j 足够多的次数来移动光标,直到第一节的内容能够完全充满屏幕。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第一讲第一节∶移动光标
※※ 要移动光标,请依照说明分别按下 h、j、k、l 键。 ※※
^
k 提示∶ h 的键位于左边,每次按下就会向左移动。
< h l> l 的键位于右边,每次按下就会向右移动。
j j 键看起来很象一支尖端方向朝下的箭头。
v
1. 请随意在屏幕内移动光标,直至您觉得舒服为止。
2. 按下下行键(j),直到出现光标重复下行。
现在您应该已经学会如何移动到下一讲吧。
3. 现在请使用下行键,将光标移动到第二讲。
提示∶如果您不敢确定您所按下的字母,请按下<ESC>键回到正常(Normal)模式。
然后再次从键盘输入您想要的命令。
提示∶光标键应当也能正常工作的。但是使用hjkl键,在习惯之后您就能够快速
地在屏幕内四处移动光标了。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第一讲第二节∶VIM的进入和退出
!! 提示∶敬请阅读完整本一节的内容,然后才能执行以下所讲解的命令。
1. 请按<ESC>键(这是为了确保您处在正常模式)。
2. 然后输入∶ :q! <回车>
这种方式的退出编辑器绝不会保存您进入编辑器以来所做的改动。
3. 如果您看到了命令行提示符,请输入能
够带您回到本教程的命令,那就是∶
vimtutor <回车>
4. 如果您自信已经牢牢记住了这些步骤的话,请从步骤1执行到步骤3退出,然
后再次进入编辑器。
提示::q! <回车>不会保存您进入编辑器以来所做的改动。在后面的教程里会告诉您
如何把改动保存到文件中。
5. 将光标移动到第一讲第三节。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第一讲第三节∶文本编辑之删除
** 在正常(Normal)模式下,可以按下 x 键来删除光标所在位置的字符。**
1. 请将光标移动到本节中下面标记有 ---> 的那一行。
2. 为了修正输入错误,请将光标移至准备删除的字符的位置处。
3. 然后按下 x 键将错误字符删除掉。
4. 重复步骤2到步骤4,直到语句正确为止。
---> The ccow jumpedd ovverr thhe mooon.
5. 好了,该行已经修正了,下一节内容是第一讲第四节。
提示∶在您浏览本教程时,不要强行记忆。记住一点∶在使用中学习。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第一讲第四节∶文本编辑之插入
** 在正常模式下,可以按下 i 键来插入文本。**
1. 请将光标移动到本节中下面标记有 ---> 的第一行。
2. 为了使得第一行内容雷同于第二行,请将光标移至准备插入文本的位置的
所在的文本第一个字符处。
3. 然后按下 i 键,接着输入必要的文本字符。
4. 所有文本错误都修正完毕,请按下 <ESC> 键返回正常模式。
重复步骤2至步骤4以便修正句子。
---> There is text misng this .
---> There is some text missing from this line.
5. 如果您对文本插入操作已经很满意,移动光标到第一讲第四节。
第一讲第五节∶文本编辑之附加
** 在正常模式下,可以按下 A 键来附加文本。**
1. 请将光标移动到本节中下面标记有 ---> 的第一行。
光标在这一行的哪个字符上都没关系。
2. 按下 A 键,录入必要的附加文本。
3. 附加文本录入后,请按下 <ESC> 键返回正常模式。
4. 所请将光标移动到本节中下面标记有 ---> 的第二行。
重复步骤2至步骤3以便修正句子。
---> There is some text missing from th
There is some text missing from this line.
---> There is also some text miss
There is also some text missing here.
5. 如果您对文本插入操作已经很满意,移动光标到第一讲第六节。
第一讲第六节∶文件编辑
** 使用 :wq 保存文件并退出。**
!! 提示∶敬请阅读完整本一节的内容,然后才能执行以下所讲解的命令。
1. 按第一讲第二节所讲退出教程: :q!
光标在这一行的哪个字符上都没关系。
2. 在命令提示符后,输入一下命令
: vim tutor <回车>。
‘vim’是启动Vim编辑器的命令。‘tutor’是要编辑文件的名字。
使用可以被改变的文件。
3. 按照前面教程所讲。插入与删除文本。
4. 使用 :wq <回车> 保存文件的修正内容并退出Vim。
5. 重新输入 vimtutor 进入本教程。移动到下面的小结处。
6. 阅读与理解上面的步骤,动手去做。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第一讲小结
1. 光标在屏幕文本中的移动既可以用箭头键,也可以使用 hjkl 字母键。
h (左移) j (下行) k (上行) l(右移)
2. 欲进入vim编辑器(从命令行提示符),请输入∶vim 文件名 <回车>
3. 欲退出vim编辑器,请输入以下命令放弃所有修改∶<ESC> :q! <回车>
或者输入以下命令保存所有修改∶<ESC> :wq <回车>
4. 在正常模式下删除光标所在位置的字符,请按∶ x
5. 在正常模式下要在光标所在位置开始插入或附加文本,请按∶
i 输入插入文本 <ESC> 在光标之前插入
A 输入附加文本 <ESC> 在光标之后附加
提示∶按下 <ESC> 键会带您回到正常模式或者取消一个不期望或者部分完成
的命令。
下面接下来继续第二讲的内容。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第二讲第一节∶删除类命令
** 输入 dw 可以从光标处删除至一个单字/单词的末尾。**
1. 请按下 <ESC> 键确保您处于正常模式。
2. 请将光标移动到本节中下面标记有 ---> 的那一行。
3. 请将光标移至需要删除的单词的开始。
4. 接着输入 dw 删除掉该单词。
提示∶当键入 d 时,字母 d 会出现在屏幕最下面的那一行。您所输入的
dw 会在您输入的同时出现在屏幕的最后一行。Vim此时等待您输人 w。
如果输入了不是 d 的错误字母,请按下 <ESC> 键取消,然后重新再来。
---> There are a some words fun that don't belongpaper in this sentence.
5. 重复步骤3至步骤4,直至句子修正完毕。接着继续第二讲第二节内容。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第二讲第二节∶其他删除类命令
** 输入 d$ 从当前光标删除到行末。**
1. 请按下 <ESC> 键确保您处于正常模式。
2. 请将光标移动到本节中下面标记有 ---> 的那一行。
3. 请将光标移动到该行的尾部(也就是在第一个点号‘.’后面)。
4. 然后输入 d$ 从光标处删至当前行尾部。
---> Somebody typed the end of this line twice. end ofthis line twice.
5. 请继续学习第二讲第三节就知道是怎么回事了。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第二讲第三节∶关于命
令和动作
大部分改变文本的指令都是由命令与动作组成。
删除命令 d 的格式如下∶
d motion
其意如下∶
d - 代表删除指令。
motion - 代表命令所要操作的对象(下面有相关介绍)。
一个简短的动作列表∶
w - 从当前光标当前位置直到下一个单字/单词的首字母。
e - 从当前光标当前位置直到当前单字/单词的末尾。
$ - 从当前光标当前位置直到当前行末。
所以键入 de 会删除当前光标位置一直到这个单字/单词的末尾。
提示∶
在正常模式下面仅按代表相应动作的键而不使用命令,则
将看到光标的移动正如上面的动作列表所代表的一样。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第二讲第四节∶操作动作的计数
** 在对象前键入数字表示重复多个动作很多次。 **
1. 请将光标移动到本节中下面标记有 ---> 的那一行。
2. 输入 2w 使光标移动当前位置后的两个单词的位置。
3. 输入 2w 使光标移动当前位置后的三个单词的结尾位置。
4. 输入 0 (零) 使光标移动到当前行的起始位置。
5. 使用不同的数字重复步骤2与步骤3
---> This is just a linewith words you can move around in.
6. 请继续学习第二讲第五节
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第二讲第五节∶删除操作的计数
** 在命令中键入数字表示重复多次这个命令。 **
前面键入删除命令与动作时,在动作前键入一个计数,这样可以删除更多。
d 数字 动作
1. 请将光标移动到本节中下面标记有 ---> 的那一行中第一个大写的字母处。
2. 输入 d2w 删除两个大写单词。
3. 键入不同的数字重复步骤1与步骤2,使用一个指令删除大写单词
---> this ABC DE line FGHIJK LMN OP of words is Q RS TUV cleaned up.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第二讲第六节∶行的操作
** 输入 dd 可以删除整一个当前行。 **
鉴于整行删除的高频度,VIM 的设计者决定要简化整行删除,仅需要在目标行上
击打两次 d 就可以删除掉光标所在的整行了。
1. 请将光标移动到本节中下面的短句段落中的第二行。
2. 输入 dd 删除该行。
3. 然后移动到第四行。
4. 接着输入 2dd 删除两行。
---> 1) Roses are red,
---> 2) Mud is fun,
---> 3) Violets are blue,
---> 4) I have a car,
---> 5) Clocks tell time,
---> 6) Sugar is sweet
---> 7) And so are you.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第二讲第七节∶撤消类命令
** 输入 u 来撤消最后执行的命令,输入 U 来修正整行。**
1. 请将光标
移动到本节中下面标记有 ---> 的那一行,并将其置于第一个错误处。
2. 输入 x 删除第一个不想保留的字母。
3. 然后输入 u 撤消最后执行的(一次)命令。
4. 这次要使用 x 修正本行的所有错误。
5. 现在输入一个大写的 U ,恢复到该行的原始状态。
6. 接着多次输入 u 以撤消 U 以及更前的命令。
7. 然后多次输入 CTRL-R (先按下 CTRL 键不放开,接着输入 R 键) ,这样就
可以执行恢复命令,也就是撤消掉撤消命令。
---> Fiix the errors oon thhis line and reeplace themwitth undo.
8. 这些都是非常有用的命令。下面是第二讲的小结了。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第二讲小结
1. 欲从当前光标删除至一下一个单字/单词,请输入∶dw
2. 欲从当前光标删除至当前行末尾,请输入∶d$
3. 欲删除整行,请输入∶dd
4. 重复一个对象在前面附加一个计数∶2w
5. 在正常模式下一个文本修改命令的格式是∶
operator [number] motion
其意是∶
operator - 代表要做的事情,比如 d 代表删除
[number] - 代表的是命令执行的次数
motion - 在欲操作文本上的动作,比如 w 代表单字/单词,$ 代表到行末等等。
6. 欲移动到当前行的开始,使用一个零:0
7. 欲撤消以前的操作,请输入∶u (小写的u)
欲撤消在一行中所做的改动,请输入∶U (大写的U)
欲撤消以前的撤消命令,恢复以前的操作结果,请输入∶CTRL-R
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第三讲第一节∶置入类命令
** 输入 p 将最后一次删除的内容置入光标之后 **
1. 请将光标移动到本节中下面标记 ---> 的第一行。
2. 输入 dd 将该行删除,这样会将该行保存到vim的缓冲区中。
3. 接着将光标移动到准备置入的位置的上方。记住∶是上方哦。
4. 输入 p 将该行粘贴置入。
5. 重复步骤2至步骤4,将所有的行依序放置到正确的位置上。
---> d) Can you learn too?
---> b) Violets are blue,
---> c) Intelligence is learned,
---> a) Roses are red,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第三讲第二节∶替换类命令
** 输入 r 和一个字符替换光标所在位置的字符。**
1. 请将光标移动到本节中下面标记有 ---> 的第一行。
2. 请移动光标到第一个错误的适当位置。
3. 接着输入 r 和替换后的字符,这样就能将错误替换掉了。
4. 重复步骤2和步骤3,直到第一行已经修改完毕。
---> Whan this lime was tuoed in, someonepresswd some wrojg keys!
---> When this line was typed in, someone pressed some wrong keys!
5. 现在我们继
续教程第三讲第三节。
提示∶切记您要在使用中学习,而不是在记忆中学习。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第三讲第三节∶更改类命令
** 要改变一个单字/单词从光标到结尾的部分,请输入 ce **
1. 请将光标移动到本节中下面标记有 ---> 的第一行。
2. 接着把光标放在单词 lubw 的字母 u 的位置那里。
3. 然后输入 ce 就可以修正该单词了(在本例这里是输入 ine )。
4. 最后按 <ESC> 键,然后光标定位到下一个错误第一个准备更改的字母处。
5. 重复步骤3和步骤4,直到第一个句子完全雷同第二个句子。
---> This lubw has a few wptfd that mrrf changing usfthe change command.
---> This line has a few words that need changing using the change command.
提示∶请注意 ce 命令不仅仅是删除操作,也让您进入文本插入状态了。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第三讲第四节∶使用c指令的其他更改类命令
** 更改类指令可以使用同删除类命令所使用的动作参数。**
1. 更改类指令的工作方式跟删除类命令是一致的。操作格式是∶
c [number] motion
2. 动作列表也是一样的,比如 w 代表单字/单词,$代表行末等等。
3. 请将光标移动到本节中下面标记有 ---> 的第一行。
4. 接着将光标移动到第一个错误处。
5. 然后输入 c$ 使得该行剩下的部分更正得同第二行一样。最后按 <ESC> 键。
---> The end of this lineneeds some help to make it like the second.
---> The end of this line needs to be corrected using the c$ command.
提示:键入时可以使用退格键(Backspace)修改错误。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第三讲小结
1. 要重新置入已经删除的文本内容,请输入小写字母 p。该操作可以将已删除
的文本内容置于光标之后。如果最后一次删除的是一个整行,那么该行将置
于当前光标所在行的下一行。
2. 要替换光标所在位置的字符,请输入小写的 r 和要替换掉原位置字符的新字
符即可。
3. 更改类命令允许您改变指定的动作比如输入 ce 可以替换当前光标到单词的末尾的内容;输入 c$ 可以改变当前光标到行末的内容。
4. 更改类命令的格式是∶
c [number] object
下面我们继续学习下一讲。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第四讲第一节∶定位及文件状态
** 输入 CTRL-G 显示当前编辑文件中当前光标所在行位置以及文件状态信息。
输入 SHIFT-G 则直接跳转到文件中的某一指定行。**
提示∶切记要先通读本节内容,
之后才可以执行以下步骤!!!
1. 按下 CTRL 键不放开然后按 g 键。然后就会看到页面最底部出现一个状态信
息行,显示的内容是当前编辑的文件名和当前光标所在行数与文件的总行数。
请记住步骤3的行号。
2. 按下 SHIFT-G 键可以使得当前光标直接跳转到文件最后一行。
按下 gg 可以回到文件的起始位置。
3. 输入您曾停留的行号,然后按下 SHIFT-G。这样就可以返回到您第一次按下
CTRL-g 时所在的行了。
注意∶输入行号时,行号是不会在屏幕上显示出来的。
4. 如果愿意,您可以继续执行步骤1至步骤三。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第四讲第二节∶搜索类命令
** 输入 / 以及尾随的字符串可以用以在当前文件中查找该字符串。**
1. 在正常模式下输入 / 字符。您此时会注意到该字符和光标都会出现在屏幕底
部,这跟 : 命令是一样的。
2. 接着输入 errroor <回车>。那个errroor就是您要查找的字符串。
3. 要查找同上一次的字符串,只需要按 n 键。要向相反方向查找同上一次的字
符串,请输入 Shift-N 即可。
4. 如果您想逆向查找字符串,请使用 ? 代替 / 进行。
5. 欲返回之前的位置按CTRL-O(保持Ctrl键按下的同时按下字母o键)。重复
键入可以回到更早的位置。CTRL-O则是向前移动。
---> "errroor" isnot the way to spell error; errroor is an error.
提示∶如果查找已经到达文件末尾,查找会自动从文件头部继续查找,除非 wrapscan
参数被重置。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第四讲第三节∶配对括号的查找
** 按 % 可以查找配对的括号 )、]、}。**
1. 把光标放在本节下面标记有 --> 那一行中的任何一个 (、[ 或 { 处。
2. 接着按 % 字符。
3. 此时光标的位置应当是在配对的括号处。
4. 再次按 % 就可以跳回配对的第一个括号处。
5. 移动光标到下一个(、[ 或 { 处,键入 % 字符。
---> This ( is a test line with ('s, ['s ] and {'s }in it. ))
提示∶在程序调试时,这个功能用来查找不配对的括号是很有用的。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第四讲第四节∶替换类命令
** 输入 :s/old/new/g 可以替换 old 为 new。**
1. 请将光标移动到本节中下面标记有 ---> 的那一行。
2. 输入 :s/thee/the <回车> 。请注意该命令只改变光标所在行的第一个匹配串。
3. 输入 :s/thee/the/g 加入 g 标志意思是则是替换全行的匹配串。
---> the best time to see thee flowers is in theespring.
4. 要替换两行之间出现的每个匹配串,
输入 :#,#s/old/new/g #,#
代表的是两行的行号。
输入 :%s/old/new/g 则是替换整个文件中的每个匹配串。
输入 :%s/old/new/gc 找到整个文件中的匹配的位置,询问是否替换。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第四讲小结
1. Ctrl-g 用于显示当前光标所在位置和文件状态信息。
G 移动到文件末尾。
数字 G 移动到数字指定行。
gg 移动到第一行。
2. 输入 / 然后紧随一个字符串是则是在当前所编辑的文档中向后查找该字符串。
输入问号 ? 然后紧随一个字符串是则是在当前所编辑的文档中向前查找该字
符串。完成一次查找之后按 n 键则是重复上一次的命令,可在同一方向上查
找下一个字符串所在;或者按 Shift-N 向相反方向查找下该字符串所在。
Ctrl-O返回之前的位置,Ctrl-I到新位置。
3. 如果光标当前位置是括号(、)、[、]、{、},按 % 可以将光标移动到配对的
括号上。
4. 在一行内替换头一个字符串 old 为新的字符串 new,请输入 :s/old/new
在一行内替换所有的字符串 old 为新的字符串 new,请输入 :s/old/new/g
在两行内替换所有的字符串 old 为新的字符串 new,请输入 :#,#s/old/new/g
在文件内替换所有的字符串 old 为新的字符串 new,请输入 :%s/old/new/g
进行全文替换时询问用户确认每个替换需添加 c 选项,请输入 :%s/old/new/gc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第五讲第一节∶在 VIM 内执行外部命令的方法
** 输入 :! 然后紧随著输入一个外部命令可以执行该外部命令。**
1. 按下我们所熟悉的 : 命令设置光标到屏幕底部。这样就可以让您输入命令了。
2. 接着输入感叹号 ! 这个字符,这样就允许您执行外部的 shell 命令了。
3. 我们以 ls 命令为例。输入 !ls <回车> 。该命令就会列举出您当前目录的
内容,就如同您在命令行提示符下输入 ls 命令的结果一样。如果 !ls 没起
作用,您可以试试 :!dir 看看。
提示∶ 所有的外部命令(可以加参数)都可以以这种方式执行。
提示∶ 所有的 : 命令都必须以 <回车> 告终。
从这开始,不再会再次提示。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第五讲第二节∶关于保存文件的更多信息
** 要将对文件的改动保存到文件中,请输入 :w FILENAME 。**
1. 输入 :!dir 或者 :!ls 获知当前目录的内容。您应当已知道最后还得敲
<回车> 吧。
2. 选择一个尚未存在文件名,比如 TEST 。
3. 接着输入 :w TEST (此处 TEST 是您所选择的文件名。)
4. 该命令会以 TEST 为文件名
保存整个文件 (VIM 教程)。为了确保正确保存,
请再次输入 :!dir 查看您的目录列表内容。
提示∶如果您退出 VIM 然后在以文件名 TEST 为参数进入,那么该文件内
容应该同您保存时的文件内容是完全一样的。
5. 现在您可以通过输入 : (MS-DOS): !del TEST
或(Unix) : !rm TEST 来删除 TEST 文件了。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第五讲第三节∶一个具有选择性的保存命令
** 要保存文件的部分内容,请输入 v 动作 : w FILENAME **
1. 把光标移到本行。
2. 按 v 移动光标到后面的第五个项目。注意文本是被高亮选中的。
3. 按 :字符。这时画面底部显示'<,'>.
4. 请输入 : w TEST 。TEST 是还不存在的那个文件茗。确认在按下回车前,
画面底部显示'<,'> w TEST。
5. Vim会把选中的那些行保存到TEST文件中。用 :!dir 确认文件是否正确保存。
这次先别删除掉。下面的教程会使用到它。
提示:按 v 键开始可视化的选择。您可以随意移动光标使得选择的范围变大或
变小。然后可以使用命令操作这些文本。例如,使用 d 删除这些文本。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第五讲第四节∶提取和合并文件
** 要向当前文件中插入另外的文件的内容,请输入 :r FILENAME **
1. 把光标移动到本行。
提示∶ 执行步骤2之后您将看到第五讲第三节,请届时再往下移动回到这里来。
2. 接着通过 :r TEST 将前面创建的名为 TEST 的文件提取进来。提取出来的
文本从光标所在的位置的下方置入。。
3.为了确认文件已经提取成功,移动光标回到原来的位置就可以注意有两份第
五讲第三节,一份是原本,另外一份是来自文件的副本。
提示:也可以读取外部命令的输出。例如 :r !ls 会把 ls 命令的输出结果添加
到光标所在的下方。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第五讲小结
1. :!command 用于执行一个外部命令 command。
请看一些实际例子∶
(MS-DOS) (Unix)
:!dir :ls - 用于显示当前目录的内容。
:!del FILENAME :!rm FILENAME - 用于删除名为 FILENAME 的文件。
2. :w FILENAME 可将当前 VIM 中正在编辑的文件保存到名为FILENAME 的文
件中。
3. v 动作 :w FILENAME 可将当前选中的内容保存到文件FILENAME 中。
4. :r FILENAME 可提取磁盘文件 FILENAME 并将其插入到当前文件的光标位置
下面。
5. :r !dir 读取dir命令的输出并将其插入到当前文件的光标位置下面。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~
第六讲第一节∶打开类命令
** 输入 o 将在光标的下方打开新的一行并进入插入模式。**
1. 请将光标移动到本节中下面标记有 ---> 的那一行。
2. 接着输入小写的 o 在光标的下方打开新的一行并进入插入模式。
3. 然后录入一些文本并按 <ESC> 键退出插入模式而进入正常模式。
---> After typing o the cursor is placedon the open line in Insert mode.
4. 为了在光标的上方打开新的一行,只需要输入大写的 O 而不是小写的 o
就可以了。请在下行测试一下吧在该行上方新开一行。
---> Open up a line above this by typing Shift-O whilethe cursor is on this line.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第六讲第二节∶光标后插入类命令
** 输入 a 将可在光标之后插入文本。 **
1. 请将光标移动到本节中下面标记有 ---> 的第一行的开始。
2. 按下 e 一直到 li 的末尾。
3. 接着输入小写的 a 则可在光标之后插入文本了。
4. 按照下面的单词完成这个单词。按<ESC> 回复正常模式。
5. 按下 e 一直到下一个为未完成的单词,重复步骤3到步骤4.
---> This li will allow you to prac appendi text to aline.
---> This line will allow you to practice appending text to the end of aline.
提示∶ a,i,A 都会进入插入模式,它们的区别只是文本的插入位置不同。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第六讲第三节∶另外一个置换类命令的版本
** 输入大写的 R 可连续替换多个字符。**
1. 请将光标移动到本节中下面标记有 ---> 的第一行。带移动光标到第一个
XXX处。
2. 按下 R 输入下面第二行的数字,这样XXX就会被替换为输入的数字。
3. 按<ESC>离开替换模式,注意尚未替换的文本将仍然保持原状。。
4. 重复这些步骤,替换剩下的XXX。
---> Adding 123 to XXX gives you XXX.
---> Adding 123 to 456 gives you 579.
提示∶置换模式很像插入模式键入每个字符都会删除当前字符。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第六讲第四节∶复制与粘帖文本
** 使用y命令赋值文本,使用p命令粘帖 **
1. 请将光标移动到本节中下面标记有 ---> 的第一行。带移动光标到”a)”后。
2. 使用v进入可视模式,移动光标到“first”前。
3. 输入y 做yank(复制)选择的文本。
4. 移动光标到下一行末尾:j$
5. 输入p 做put(粘帖)刚才复制的文本。然后输入:a second <ESC>键。
6. 使用可视模式选择“ item”,用y复制,输入j$移动到下一行的末尾,
输入p粘帖复制的文本。
---> a) this is the first item.
b)
提示:也可以把y当做指令。yw 复制一个单词
。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第六讲第五节∶设置类命令的选项
** 设置可使查找或者替换可忽略大小写的选项 **
1. 要查找单词 ignore 可在正常模式下输入 /ignore 。要重复查找该词,可以
重复按 n 键。
2. 然后设置 ic 选项(ic就是英文忽略大小写Ignore Case的首字母缩写词),即
输入∶ :set ic
3. 现在可以通过键入 n 键再次查找单词 ignore。注意这时ignore 和IGNORE
都可以被找到。
4. 然后设置 hlsearch 和 incsearch 这两个选项,输入以下内容∶
:set hls is
5. 现在可以再次输入查找命令,看看会有什么效果∶ /ignore
6. 关闭忽略大小写选项:set noic
提示:去掉命中的单词的高亮效果,输入: :nohlsearch
提示:如果只是单次查找命令忽略大小写,只需在后面添加 \c 标志:
/ignore\c<回车>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第六讲小结
1. 输入小写的 o 可以在光标下方打开新的一行并将光标置于新开的行首,进入
插入模式。
输入大写的 O 可以在光标上方打开新的一行并将光标置于新开的行首,进入
插入模式。
2. 输入小写的 a 可以在光标所在位置之后插入文本。
输入大写的 A 可以在光标所在行的行末之后插入文本。
3. 输入e可以移动到单词末尾。
4. 输入y 复制文本,输入p粘帖文本。
5. 输入大写的 R 将进入替换模式,直至按 <ESC> 键退出替换模式而进入正常
模式。
4. 输入 :set xxx 可以设置 xxx 选项。一些选项如下:
ic ignorecase 查找试忽略大小写
is incsearch 表示配置查找单语的绝大部分匹配
his hlsearch 匹配部分高亮显示
7. 在选项前加no可以关掉这个选项。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第七讲第一节∶在线帮助命令
** 使用在线帮助系统 **
Vim 拥有一个细致全面的在线帮助系统。要启动该帮助系统,请选择如下三种方
法之一∶
- 按下 <HELP> 键 (如果键盘上有的话)
- 按下 <F1> 键 (如果键盘上有的话)
- 输入 :help <回车>
在帮助窗口阅读文本弄明白帮助系统是如何工作的。
输入 CTRL-W CTRL-W 从一个窗口跳到另一个
输入 :q <回车> 可以关闭帮助窗口。
提供一个正确的参数给":help"命令,您可以找到关于该主题的帮助。请试验以
下参数(可别忘了按回车键哦。:)∶
:help w <回车>
:help c_CTRL-D <回车>
:help insert-index <回车>
:help user-manual <回车>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第七讲第二
节∶创建一个启动脚本
** 启用vim的功能 **
Vim的功能特性要比vi多得多,但大部分功能都没有缺省激活。为了启动更多的
功能,您得创建一个vimrc文件。
1. 开始编辑vimrc文件,这取决于您所使用的操作系统∶
:e ~/.vimrc 这是Unix系统所使用的命令
:e $VIM/_vimrc 这是Windows系统所使用的命令
2. 接着导入vimrc范例文件∶
:r$VIMRUNTIME/vimrc_example.vim
3. 保存文件,命令为∶
:w
在下次您启动vim的时候,编辑器就会有了语法高亮的功能。您可以继续把您喜
欢的其它功能设置添加到这个vimrc文件中。
如需更多的信息,输入 :help vinrc-intro
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第七讲第三节∶自动完成
** 使用CTRL-D和<TAB>可以自动完成命令行 **
1. 确认VIM没有工作在兼容模式下∶ :set nocp
2. 查看当前目录有哪些文件: :!ls 或 :!dir
3. 开始输入一个命令: :e
4. 按下CTRL-D,Vim会把以e开头的命令用列表的形式表示出来。
5. 按下<TAB>,Vim会自动完成这个命令 “edit”。
6. 现在按下一个空格,输入现有文件名的起始部分: :edit FIL
7. 按下<TAB>,Vim会自动完成文件名(如果这是唯一的)。
提示:自动完成对许多命令都可以用。可以自己尝试CTRL-D和<TAB>。
对于 :help 自动完成更是很有用的。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第七讲小结
1. 输入:help 或按下 <HELP> 键或<F1> 键可以打开帮助窗口。
2. 输入:help找个关于 cmd 的帮助。
3. 输入 CTRL-W CTRL-W 从一个窗口跳到另一个。
4. 输入 :q <回车> 可以关闭帮助窗口。
5. 建立vimrc文件保存喜欢的功能设置添加到这个文件中。
6. 当输入一个 :命令时,按下CTRL-D可以看到目前可能的自动完成拼成的
命令。按下<TAB>选择其中一个。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vim 教程到此结束。本教程只是为了简明地介绍一下vim编辑器,但已足以让您
很容易学会使用本编辑器了。毋庸质疑,vim还有很多很多的命令,本教程所介
绍的还差得远著呢。所以您要精通的话,还望继续努力哦。下一步您可以阅读
vim手册,使用的命令是∶
:help user-manual
为了更进一步的参考和学习,以下这本书值得推荐∶
Vim - Vi Improved - 作者∶Steve Oualline
出版社∶New Riders
这是第一本完全讲解vim的书籍。对于初学者特别有用。其中还包含有大量实例
和图示。欲知详情,请访问 http://iccf-holland.org/click5.html
以下这本书比较老了而且内容主要是vi而不是vim,但是也值得推荐∶
Learning the Vi Editor - 作者∶Linda Lamb
出版社∶O'Reilly & As
sociates Inc.
这是一本不错的书,通过它您几乎能够了解到全部vi能够做到的事情。此书的第
六个版本也包含了一些关于vim的信息。
本教程是由来自Calorado School of Minese的Michael C. Pierce、Robert K.
Ware 所编写的,其中来自Colorado State University的Charles Smith提供了
很多创意。编者通信地址是∶
bware@mines.colorado.edu