习惯了使用Windows下的常用编辑器如UltraEdit,notepad++等的人再使用vim就感觉很不方便,确实,我自己也那么认为, windows下的编辑器用的越是熟练感觉使用vim越不方便。如果稍微练习一下,其实使用vim也没有多么困难,无非就是熟悉几个命令。vim的命令非 常多,但没必要都记住,有些根本用不到,试想,在windows下你使用编辑器会使用到哪些功能?无非就是,复制,粘贴,删除,移动光标,打开文件,保存 文件,退出文件等这几个常用的操作,因此在使用vim的时候只要掌握了这几个常用命令再加上天天练习使用基本上就可以上手了。学了就是要用,只要用上几 天,就感觉非常方便了。这是我这几天的感想。虽然目前还是在windows下工作,但是装了一个gvim,感觉很好用,gvim还支持windows下的 常用快捷键操作,不过这样不助于你练习vim,因此不要使用windows下那些操作。
网上有很多vim学习资料,还都是中文的,使用man vim也能得到帮助信息,不过是英文的。我感觉那些资料太多太杂,还不怎么使用。下面贴上一个从网上收集的简单明了的常用命令分类列表,一是作为总结,也希望对有需要者有所帮助:
-------------------------------------------------------------------------------------------
1. 光标在屏幕文本中的移动既可以用箭头键,也可以使用 hjkl 字母键。
h (左移) j (下行) k (上行) l (右移)
2. 欲进入vim编辑器(从命令行提示符),请输入∶vim 文件名 <回车>
3. 欲退出vim编辑器,请输入以下命令放弃所有修改∶
<ESC> :q! <回车>
或者输入以下命令保存所有修改∶
<ESC> :wq <回车>
4. 在正常模式下删除光标所在位置的字符,请按∶ x
5. 在正常模式下要在光标所在位置开始插入文本,请按∶
i 输入必要文本 <ESC>
特别提示∶按下 <ESC> 键会带您回到正常模式或者取消一个不期望或者部分完成
的命令。
-----------------------------------------------------------------------------
1. 欲从当前光标删除至单字/单词末尾,请输入∶dw
2. 欲从当前光标删除至当前行末尾,请输入∶d$
3. 欲删除整行,请输入∶dd
4. 在正常模式下一个命令的格式是∶
[number] command object 或者 command [number] object
其意是∶
number - 代表的是命令执行的次数
command - 代表要做的事情,比如 d 代表删除
object - 代表要操作的对象,比如 w 代表单字/单词,$ 代表到行末等等。
$ (to the end of line), etc.
5. 欲撤消以前的操作,请输入∶u (小写的u)
欲撤消在一行中所做的改动,请输入∶U (大写的U)
欲撤消以前的撤消命令,恢复以前的操作结果,请输入∶CTRL-R
-----------------------------------------------------------------------------------------------
1. 要重新置入已经删除的文本内容,请输入小写字母 p。该操作可以将已删除
的文本内容置于光标之后。如果最后一次删除的是一个整行,那么该行将置
于当前光标所在行的下一行。
2. 要替换光标所在位置的字符,请输入小写的 r 和要替换掉原位置字符的新字
符即可。
3. 更改类命令允许您改变指定的对象,从当前光标所在位置直到对象的末尾。
比如输入 cw 可以替换当前光标到单词的末尾的内容;输入 c$ 可以替换当
前光标到行末的内容。
4. 更改类命令的格式是∶
[number] c object 或者 c [number] obje
ct
---------------------------------------------------------------------------------------------------
1. Ctrl-g 用于显示当前光标所在位置和文件状态信息。Shift-G 用于将光标跳
转至文件最后一行。先敲入一个行号然后按 Shift-G 则是将光标移动至该行
号代表的行。
2. 输入 / 然后紧随一个字符串是则是在当前所编辑的文档中向后查找该字符串。
输入问号 ? 然后紧随一个字符串是则是在当前所编辑的文档中向前查找该字
符串。完成一次查找之后按 n 键则是重复上一次的命令,可在同一方向上查
找下一个字符串所在;或者按 Shift-N 向相反方向查找下该字符串所在。
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
2008-8-1补充:
可以在s前面加上范围,比如:1,5s/from/to表示替换1到5行的from,在vim中有些字符可以很方便的表示一些特殊行,比如.表示当前行, $表示最后一行,第一行当然就是1了.所以我们可以用:.s/from/to命令替换当前行的from,用:.,$s/from/to替换从当前行到结束 行的每行的第一个匹配的from.
它并不会断词,会把fromxxx也当成匹配项,这当然是错误的,我们可以加上/<来表示匹配一个单词的开始,/>来表示单词的结束, 命令看起来就像这个样子:%s//<from/>/to/g
-----------------------------------------------------------------------------------------------
1. :!command 用于执行一个外部命令 command。
请看一些实际例子∶
:!dir - 用于显示当前目录的内容。
:!rm FILENAME - 用于删除名为 FILENAME 的文件。
2. :w FILENAME 可将当前 VIM 中正在编辑的文件保存到名为 FILENAME 的文
件中。
3. :#,#w FILENAME 可将当前编辑文件第 # 行至第 # 行的内容保存到文件
FILENAME 中。
4. :r FILENAME 可提取磁盘文件 FILENAME 并将其插入到当前文件的光标位置
后面。
-----------------------------------------------------------------------------------------------
1. 输入小写的 o 可以在光标下方打开新的一行并将光标置于新开的行首,进入
插入模式。
输入大写的 O 可以在光标上方打开新的一行并将光标置于新开的行首,进入
插入模式。
2. 输入小写的 a 可以在光标所在位置之后插入文本。
输入大写的 A 可以在光标所在行的行末之后插入文本。
3. 输入大写的 R 将进入替换模式,直至按 <ESC> 键退出替换模式而进入正常
模式。
4. 输入 :set xxx 可以设置 xxx 选项。
-----------------------------------------------------------------------------------
Vim 拥有一个细致全面的在线帮助系统。要启动该帮助系统,请选择如下三种方
法之一∶
- 按下 <HELP> 键 (如果键盘上有的话)
- 按下 <F1> 键 (如果键盘上有的话)
- 输入 :help <回车>
输入 :q <回车> 可以关闭帮助窗口。
提供一个正确的参数给":help"命令,您可以找到关于该主题的帮助。请试验以
下参数(可别忘了按回车键哦。 ∶
:help w <回车>
:help c_<T <回车>
:help insert-index <回车>
:help user-manual <回车>
------------------------------------------------------------------------------------------------
Vim的功能特性要比vi多得多,但大部分功能都没有缺省激活。为了启动更多的
功能,您得创建一个vimrc文件。
1. 开始编辑vimrc文件,这取决于您所使用的操作系统∶
:edit ~/.vimrc 这是Unix系统所使用的命令
:edit $VIM/_vimrc 这是Windows系统所使用的命令
2. 接着导入vimrc范例文件∶
:read $VIMRUNTIME/vimrc_example.vim
3. 保存文件,命令为∶
:write
-------------------------------------------------------------------------------------------------
2008-8-1日补充
1.将光标移动到该行的最前面 0
2.将光标移动到该行的最后面 $
3.将光标移动到下一个字 w或W
4.将光标移动到本单词的最后一个字符,如果已经位于本词最后一个字符,则移动到下一个单词的最后一个字符 e
5.将光标移动到本单词的第一个字符,如果已经位于本词第一个字符,则移动到上一个单词的第一个字符 b
6.将光标移动到本段(以一个空行作为两段分开的标志)的开头 { (花括号)
7.向前翻页: Ctrl + b (back首字母b)
8.向后翻页: Ctrl + f (记忆法:向后翻页就是前进,取单词foward首字符f)
复制类命令:
1.yy :复制光标所在一行
2.yw :复制当前字符开始到该单词结束的部分,如:fhjakhkfa fafl,光标位于j处,则复制jakhkfa
3.n+yw: n是一个整数,复制当前字符到本单词结束部分和后面的n-1个单词。
4.p :粘贴复制的内容
5.n+d+向上的方向键:将当前行和上面的n行一起删除,一共删除n+1行
6.ZZ保存并退出vim
网上有很多vim学习资料,还都是中文的,使用man vim也能得到帮助信息,不过是英文的。我感觉那些资料太多太杂,还不怎么使用。下面贴上一个从网上收集的简单明了的常用命令分类列表,一是作为总结,也希望对有需要者有所帮助:
-------------------------------------------------------------------------------------------
1. 光标在屏幕文本中的移动既可以用箭头键,也可以使用 hjkl 字母键。
h (左移) j (下行) k (上行) l (右移)
2. 欲进入vim编辑器(从命令行提示符),请输入∶vim 文件名 <回车>
3. 欲退出vim编辑器,请输入以下命令放弃所有修改∶
<ESC> :q! <回车>
或者输入以下命令保存所有修改∶
<ESC> :wq <回车>
4. 在正常模式下删除光标所在位置的字符,请按∶ x
5. 在正常模式下要在光标所在位置开始插入文本,请按∶
i 输入必要文本 <ESC>
特别提示∶按下 <ESC> 键会带您回到正常模式或者取消一个不期望或者部分完成
的命令。
-----------------------------------------------------------------------------
1. 欲从当前光标删除至单字/单词末尾,请输入∶dw
2. 欲从当前光标删除至当前行末尾,请输入∶d$
3. 欲删除整行,请输入∶dd
4. 在正常模式下一个命令的格式是∶
[number] command object 或者 command [number] object
其意是∶
number - 代表的是命令执行的次数
command - 代表要做的事情,比如 d 代表删除
object - 代表要操作的对象,比如 w 代表单字/单词,$ 代表到行末等等。
$ (to the end of line), etc.
5. 欲撤消以前的操作,请输入∶u (小写的u)
欲撤消在一行中所做的改动,请输入∶U (大写的U)
欲撤消以前的撤消命令,恢复以前的操作结果,请输入∶CTRL-R
-----------------------------------------------------------------------------------------------
1. 要重新置入已经删除的文本内容,请输入小写字母 p。该操作可以将已删除
的文本内容置于光标之后。如果最后一次删除的是一个整行,那么该行将置
于当前光标所在行的下一行。
2. 要替换光标所在位置的字符,请输入小写的 r 和要替换掉原位置字符的新字
符即可。
3. 更改类命令允许您改变指定的对象,从当前光标所在位置直到对象的末尾。
比如输入 cw 可以替换当前光标到单词的末尾的内容;输入 c$ 可以替换当
前光标到行末的内容。
4. 更改类命令的格式是∶
[number] c object 或者 c [number] obje
ct
---------------------------------------------------------------------------------------------------
1. Ctrl-g 用于显示当前光标所在位置和文件状态信息。Shift-G 用于将光标跳
转至文件最后一行。先敲入一个行号然后按 Shift-G 则是将光标移动至该行
号代表的行。
2. 输入 / 然后紧随一个字符串是则是在当前所编辑的文档中向后查找该字符串。
输入问号 ? 然后紧随一个字符串是则是在当前所编辑的文档中向前查找该字
符串。完成一次查找之后按 n 键则是重复上一次的命令,可在同一方向上查
找下一个字符串所在;或者按 Shift-N 向相反方向查找下该字符串所在。
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
2008-8-1补充:
可以在s前面加上范围,比如:1,5s/from/to表示替换1到5行的from,在vim中有些字符可以很方便的表示一些特殊行,比如.表示当前行, $表示最后一行,第一行当然就是1了.所以我们可以用:.s/from/to命令替换当前行的from,用:.,$s/from/to替换从当前行到结束 行的每行的第一个匹配的from.
它并不会断词,会把fromxxx也当成匹配项,这当然是错误的,我们可以加上/<来表示匹配一个单词的开始,/>来表示单词的结束, 命令看起来就像这个样子:%s//<from/>/to/g
-----------------------------------------------------------------------------------------------
1. :!command 用于执行一个外部命令 command。
请看一些实际例子∶
:!dir - 用于显示当前目录的内容。
:!rm FILENAME - 用于删除名为 FILENAME 的文件。
2. :w FILENAME 可将当前 VIM 中正在编辑的文件保存到名为 FILENAME 的文
件中。
3. :#,#w FILENAME 可将当前编辑文件第 # 行至第 # 行的内容保存到文件
FILENAME 中。
4. :r FILENAME 可提取磁盘文件 FILENAME 并将其插入到当前文件的光标位置
后面。
-----------------------------------------------------------------------------------------------
1. 输入小写的 o 可以在光标下方打开新的一行并将光标置于新开的行首,进入
插入模式。
输入大写的 O 可以在光标上方打开新的一行并将光标置于新开的行首,进入
插入模式。
2. 输入小写的 a 可以在光标所在位置之后插入文本。
输入大写的 A 可以在光标所在行的行末之后插入文本。
3. 输入大写的 R 将进入替换模式,直至按 <ESC> 键退出替换模式而进入正常
模式。
4. 输入 :set xxx 可以设置 xxx 选项。
-----------------------------------------------------------------------------------
Vim 拥有一个细致全面的在线帮助系统。要启动该帮助系统,请选择如下三种方
法之一∶
- 按下 <HELP> 键 (如果键盘上有的话)
- 按下 <F1> 键 (如果键盘上有的话)
- 输入 :help <回车>
输入 :q <回车> 可以关闭帮助窗口。
提供一个正确的参数给":help"命令,您可以找到关于该主题的帮助。请试验以
下参数(可别忘了按回车键哦。 ∶
:help w <回车>
:help c_<T <回车>
:help insert-index <回车>
:help user-manual <回车>
------------------------------------------------------------------------------------------------
Vim的功能特性要比vi多得多,但大部分功能都没有缺省激活。为了启动更多的
功能,您得创建一个vimrc文件。
1. 开始编辑vimrc文件,这取决于您所使用的操作系统∶
:edit ~/.vimrc 这是Unix系统所使用的命令
:edit $VIM/_vimrc 这是Windows系统所使用的命令
2. 接着导入vimrc范例文件∶
:read $VIMRUNTIME/vimrc_example.vim
3. 保存文件,命令为∶
:write
-------------------------------------------------------------------------------------------------
2008-8-1日补充
1.将光标移动到该行的最前面 0
2.将光标移动到该行的最后面 $
3.将光标移动到下一个字 w或W
4.将光标移动到本单词的最后一个字符,如果已经位于本词最后一个字符,则移动到下一个单词的最后一个字符 e
5.将光标移动到本单词的第一个字符,如果已经位于本词第一个字符,则移动到上一个单词的第一个字符 b
6.将光标移动到本段(以一个空行作为两段分开的标志)的开头 { (花括号)
7.向前翻页: Ctrl + b (back首字母b)
8.向后翻页: Ctrl + f (记忆法:向后翻页就是前进,取单词foward首字符f)
复制类命令:
1.yy :复制光标所在一行
2.yw :复制当前字符开始到该单词结束的部分,如:fhjakhkfa fafl,光标位于j处,则复制jakhkfa
3.n+yw: n是一个整数,复制当前字符到本单词结束部分和后面的n-1个单词。
4.p :粘贴复制的内容
5.n+d+向上的方向键:将当前行和上面的n行一起删除,一共删除n+1行
6.ZZ保存并退出vim