vim(编辑器之神)01基础篇(二) vim模式解析

vim包括许多模式,不同模式有不同的功能。
     例如,“插入模式”让用户输入;“命令模式”>让用户执行保存/退出等等命令。

本文,我们主要介绍vim的3种最常用模式:普通模式插入模式命令模式。至于其他的模式,如Visual模式,替换模式等等;在后面用到的时候再详细介绍。

目录
1. 普通模式
     1.1 模式说明
     1.2 进入方式
     1.3 模式详解
2. 插入模式
     2.1 模式说明
     2.2 进入方式
     2.3 模式详解
3. 命令模式
     3.1 模式说明
     3.2 进入方式
     3.3 模式详解
4. 替换模式
     4.1 模式说明
     4.2 进入方式
     4.3 模式详解

1. 普通模式

1.1 模式说明

普通模式,又称为"编辑模式"。它的作用是让用户执行编辑操作。例如,上/下/左/右移动输入光标,复制/粘贴文本,删除文本等等。

在所有模式中,普通模式是使用最多的。体现在以下几个方面:
(01) 用vim打开文件时,默认进入的就是普通模式!
(02) 按“ESC”键从其它模式退出时,都会返回到普通模式。

1.2 进入方式

普通模式的进入方式主要有两种:
(01) 用vim重新打开文件。因为用vim打开文件时,默认就进入普通模式。
(02) 在其它模式下按“ESC”返回。

1.3 模式详解

下面,我将列举出普通模式下的基本操作。第1列表示操作,第2列表示操作的含义,第3列表示如果该操作常用与否。例如,

h  左移动光标  (常用)  

第1列是"h",表示按字母h;第2列是说,该操作的含义是"左移动光标";第3列是"(常用)",表示该操作比较常用!

1. 字母指令

A  进入"插入模式",并且光标移至到当前行的行尾。
a  (append的首字母)进入"插入模式",并且光标移至当前字母的后面。  (常用)
B  以单词(word)为单位向前移(忽略标点),移动到前一个单词的起始处。
b  (back的首字母)以单词(word)为单位向前移(不忽略标点),移动到前一个单词的起始处。  (常用)
C  进入"插入模式",并且删除"当前光标"至"当前行末尾"的内容。
c  (crop的首字母)[组合键],需要和其他字母组合才能生效。
   ch,表示删除前一个字母并进入"插入模式"。cj表示删除当前行和上一行,并进入"插入模式"。
D  删除"当前光标"至"当前行末尾"的内容。
d  (delete的首字母)[组合键],需要和其他字母组合才生效。
   dd,表示删除当前行。  (常用)
   ndd,其中n表示数字;ndd表示删除当前行(包括)往后的n行。例如,5dd表示删除5行。  (常用)
E  以单词(word)为单位向后移(忽略标点),移动到当前单词的结尾处。
e  (end的首字母)以单词(word)为单位向后移(不忽略标点),移动到当前单词的结尾处。  (常用)
F  [组合键],后面需要接字母或数字才有效。 
   F<charater> 其中,charater为字母或者数字;它表示向前查找charater,并将光标移动到charater处。  (常用)
f  (forward的首字母)[组合键],后面需要接字母或数字才有效。 
   f  <charater> charater为字母或者数字,表示向后查找charater,并将光标移动到charater处。  (常用)
G  (01) 光标移动到当前文件的最后一行。  (常用)
   (02) 除了上面的功能之外,G也可以作为[组合键]。
        nG  其中,n为数字,nG表示移至该文档的第n行。例如,12G 表示移动到本文档的第12行。  (常用)
g  (go的首字母)[组合键]。
   (01) gg  移动到当前文件的首行。  (常用)
   (02) ngg 等同于nG。其中,n为数字,ngg表示移至该文档的第n行。  (常用)
H  (header的首字母)光标移动到本屏首行。 
h  (01) 左移光标一个字母。  (常用)
   (02) nh,其中n为数字,表示左移n个字母。
I  进入"插入模式",并且光标移至到当前行的行首。
i  (insert的首字母)进入"插入模式",并且光标移至当前字母的前面。  (常用)
J  (join的首字母)将下面的一行拼接到当前行的行尾。
j  (01) 下移光标一个字母。  (常用)
   (02) nj,其中n为数字,表示下移n个字母。
K  在man中搜索当前光标下的词。
k  (01) 上移光标一个字母。  (常用)
   (02) nk,其中n为数字,表示上移n个字母。
L  (last的首字母)光标移动到本屏末尾。
l  (01) 右移光标一个字母。  (常用)
   (02) nl,其中n为数字,表示右移n个字母。
M  (middle的首字母)光标移动到本屏中间行。
m  (mark的首字母)[组合键][书签键]用于保存书签。在下一章讲解vim书签时,再详细介绍该指令! 
N  [用于查找指令]查找上一个搜索项。在下一章讲解搜索的时候,再详细介绍该指令。
n  (next的首字母)[用于查找指令]查找下一个搜索项。在下一章讲解搜索的时候,再详细介绍该指令。 
O  在当前行的上边插入新行,并进入"插入模式"。
o  (open的首字母)在当前行的下边插入新行,并进入"插入模式"。  (常用)
P  [用于复制/粘贴指令]在当前字母的前面或当前行的上面进行粘贴。在下一章讲解复制/粘贴的时候,再详细介绍该指令。 
p  (paste的首字母)[用于复制/粘贴指令]在当前字母的后面或当前行的下面进行粘贴。在下一章讲解复制/粘贴的时候,再详细介绍该指令。  (常用) 
R  进入"替换模式"。在后面讲解替换模式的时候,再详细介绍该指令。 
Q  进入"Ex模式"。
q  [用于宏记录]在后面章节讲解宏记录时,再详细说明。 
r  (replace的首字母)[组合键]替换当前字母。 r<charater> 其中,charater表示字母或数字;它的含义是用charater替换当前光标处的字母。  (常用)
S  删除当前行,并进入"插入模式"。 
s  (subtract的首字母)删除当前字母,并进入"插入模式"。 
T  和F作用类似,只不过向前查找到charater之后,光标会跳转到charater的后一个字母。
t  (till的首字母)和f作用类似,只不过向前查找到charater之后,光标会跳转到charater的前一个字母。
U  撤销在上一次操作所在行的所有操作。
u  (undo的首字母)撤销在上一次操作。与 <Ctrl>+r相对应。  (常用)
V  进入"Visual模式",行模式。
v  进入"Visual模式",单字母模式。
W  以单词(word)为单位向后移(忽略标点),移动到后一个单词的起始处。
w  以单词(word)为单位向后移(不忽略标点),移动到后一个单词的起始处。  (常用)
X  删除当前光标处的前一个字母。
x  删除当前光标处的字母。
Y  相当于yy。 例如,nY,其中n表示数字,表示复值n行。
y  (yank的首字母)[组合按键]
   (01) yy 复值当前行。  (常用)
   (02) nyy 其中n为数字,表示复制n行。  (常用)
Z  [组合键]例如,ZZ是关闭vim窗口。
z  [组合键]
   (01) z. 重绘vim窗口,并以当前行为中心。
   (02) z- 重绘vim窗口,翻到上一屏。
   (03) z+ 重绘vim窗口,翻到下一屏。
   (04) zi 切换折叠(foldenable)开关。

2. 非字母指令

~  切换当前字母的大小写,并将光标移到下一个字母
`  [组合键]
   `` 跳转到(当前文件)上一次的跳转位置,并且光标位于上一次所在的字母位置。
'  [组合键]
   '' 跳转到(当前文件)上一次的跳转位置,并且光标位于行首。
@  [用于宏指令]在后面章节章节讲解宏指令(即,命令的记录与回放)时再介绍该指令。  
#  向上查找。  (常用)
*  向下查找。  (常用)
$或<End>  光标移至当前行的末尾。  (常用)
0或<Home>  光标移至当前行的行首。  (常用)
^  光标移至当前行的行首。
%  括号匹配,光标跳转到与当前括号相匹配的括号处。  (常用)
+  光标移动到下一行的首字母处
-  光标移动到上一行的首字母处
<Space> 即空格键盘,光标后移一个字母。 n<Space> 其中,n表示数字,n<Space>表示光标向后移这一行的n个字符。
<Enter> 即回车键,光标移到下一行。n<Enter> 其中,n为数字,n<End>表示光标向下移动 n 行。
<<  向左缩进。  (常用)
>>  向右缩进。  (常用)
.  重复上一次操作。  (常用)

3. 组合指令

<Ctrl>+f  屏幕向下移动一页,相当于 <Page Down>按键。  (常用)  
<Ctrl>+b  屏幕向上移动一页,相当于 <Page Up>按键。  (常用)  
<Ctrl>+d  屏幕向下移动半页  
<Ctrl>+u  屏幕向上移动半页  
<Ctrl>+r  恢复撤销的动作。

说明:上面列出的仅仅只是普通模式下的部分指令,其中,有标识"常用"的指令,请一定要能够熟练使用!


2. 插入模式

2.1 模式说明

插入模式,顾名思义,它的作用就是插入内容。它的主要目的是让用户输入文本。进入插入模式之后,vim就进入输入状态;用户就能输入文本。

2.2 进入方式

在普通模式下,输入"A","a","I","i","O","o","C","S"或"s"等指令都能进入到插入模式。

2.3 模式详解

<Backspace>或<Ctrl>+h  删除光标的前一个字母。  (常用)
<Ctrl>+w  删除光标的前一个单词。  (常用)
<Ctrl>+n  弹出"备选词列表" 或 跳转到"备选词列表"的下一项。  (常用)
<Ctrl>+p  弹出"备选词列表" 或 跳转到"备选词列表"的上一项。  (常用)
<Ctrl>+o  插入一条普通模式下的指令。  (常用)


3. 命令模式

3.1 模式说明

命令模式的作用是让用户输入命令。例如,通过":w"命令来保存文本。

3.2 进入方式

在普通模式下,输入冒号":"进入命令模式。然后,即可输入命令来完成相应的操作。

3.3 模式详解

:w  保存文档。  (常用)
:w!  强制保存文档。针对打开只读文档使用,至于能否保存成功,跟你对该文档的权限有关。
:q  退出vim编辑器。  (常用)
:q!  强制退出。若你修改文档,当不想保存退出,则可以使用强制退出。
:wq  保存文档并退出。  (常用)
:w [filename]  将文档另外为filename,filename是文档名。
:r [filename]  插入“文档filename的内容”插入到当前光标处。
:r! [cmd]  将“linux命令”(cmd是命令名)插入到当前光标出。例如“:! pwd”,表示将当前路径插入到当前光标处。  (常用)
:e [filename]  用vim打开文件filename,并进行编辑。  (常用)
:e!  重新载入文件。  (常用)

:set nu  显示行号  (常用)
:set nonu  不显示行号  (常用)
:set ignorecase  查找/替换文件内容时,忽略大小写  (常用)
:set noignorecase  查找/替换文件内容时,不忽略大小写  (常用)

:%!xxd  进入十六进制浏览状态,即以十六进制显示文件内容
:%!xxd -r  退出十六进制浏览状态


4. 替换模式

4.1 模式说明

替换模式的作用是让用户进行文本替换。

4.2 进入方式

在普通模式下,输入大写字母R进行替换模式。假如输入小写字母r,则智慧替换当个字符。

4.3 模式详解

在普通模式下,输入大写字母R进行替换模式。

by skywang
Previous     Next