@[toc]
1、vim的模式介绍
1、普通模式:默认模式,其它模式下按Esc键进入普通模式,只能通过普通模式进入其它模式,
其他模式间不能进行相应的切换。
2、插入模式:在普通模式下按a/o/i/A/I进入插入模式模式(不同输入,插入位置不同),
插入模式下可以进行文本内容的编辑。
a:在当前光标位置的下一个字符进行插入。
i:在当前光标位置进行插入。
o:在当前光标的下一列进行插入。
I:在光标当前行的行首插入。
A:在光标当前行的行尾插入。
3、命令行模式:在普通模式下输入:进入该模式。
4、可视化模式:普通模式下按v/V/Ctrl+v进入可视化模式,在该模式下可以对选择的整体
进行操作。
v:文本的选择以字符为基本单位。
V:文本的选择以行为基本单位。
Ctrl+v:文本的选择以矩形进行选择。
5、替换模式:普通模式下,按R键,进入全局替换模式,可以一直进行字符的替换直到退出
为止。
普通模式下,按r键,模式下只能进行单字符的替换,只能进行一个字符的替换,
替换完就退出返回普通模式。
2、vim常用命令
2.1、光标的移动
2.1.1、单字符移动
h:光标向左移动一个字符。
j:光标向下移动一个字符。
k:光标向上移动一个字符。
l:光标向右移动一个字符。
[n]:光标向后移动n个字符。
2.1.2、单词移动
b:移动到现时光标所处位置上一个单词的开头。
w:移动到现时光标所处位置下一个单词的开头。
ge:移动到现时光标所处位置上一个单词的词尾。
e:移动到现时光标所处位置下一个单词的词尾。
E:移动到现时光标所处位置下一个单词的词尾。(与e的区别是E移动时忽略标点符号)
[n]w:移动到现时光标所处位置后第n个单词的开头。
2.1.3、当前行移动
0:光标移动到当前行的行首。
$:光标移动到当前行的行尾。
^:光标移动到当前行的第一个非空字符处。
[n]|:光标移动到当前行的第n列。
f[?]:光标移动到当前行光标之后的第一个字符?上。
[n]f[?]:光标移动到当前行光标之后的第n个字符?上。
注:[n]、[?]为自己所需要的输入参数。
2.1.4、多行移动
+:光标移动到下一行的第一个非空字符处。
-:光标移动到上一行的第一个非空字符处。
G:光标移动到该文件的最后一行的第一个字符处。
[n]G:光标跳到第n行。
[n]:光标向后移动n行
gg:光标跳到文件的开头行。
GG:光标跳到文件的结尾行。
H:当前视图界面的首行的第一个字符处。
M:当前视图界面的中间行的第一个字符处。
L:当前视图界面的末尾行的第一个字符处。
Ctrl+g:查看位置信息。
Ctrl+u:光标向前以半页为单位跳动。
Ctrl+d:光标向后以半页为单位跳动。
Ctrl+b:光标向前以一页为单位跳动。
Ctrl+f:光标向后以一页为单位跳动。
2.1.5、特殊移动
%:在{}、()、[]之间跳跃。
2.2、替换及查找
/[?]:正向查找字符串?。
?[?]:反向查找字符串?。
(查找之后,按n:重复上一次查找操作;N:反向重复上一次查找操作。
注:反向则向上一次操作的反方向再次查找)
:s/[old]/[new]:将当前行的第一个字符串old替换成new。
:s/[old]/[new]/g:将当前行的所有字符串old替换成new。
:s/^[old]/[new]/g:将当前行的所有old开头的字符串替换成new。
:[n1],[n2]s/[old]/[new]/g:将n1行到n2行的所有字符串old替换成new。
:%s/[old]/[new]/g:将文本中的所有字符串old替换成new。
2.3、文本操作
x:删除当前光标所处字符。
[n]x:向后连续删除n个字符。
X:删除当前光标前一字符。(大写)。
dw:删除当前光标所处位置之后的一个单词。
dd:剪切当前行(也可以当删除键使用)。
[n]dd:剪切n行。
[n]dd:删除从当前行开始的n行。
d0:删除该行光标前的所有数据。
d$:删除该行光标后的所有数据。
d1G:删除当前行到第一行所有数据。
dG:删除当前行到最后一行所有数据。
yw:复制一个单词。
yy:复制当前行。
[n]yy:复制光标所在行及之后的n行。
y1G:复制当前行到第一行所有数据。
yG:复制当前行到最后一行所有数据。
y0:复制前的所有数据。
y$:复制该行光标后的所有数据。
p:粘贴。(行复制时粘贴在下一行)
J:当前行和下一行合并。
u:撤销上一个操作。
Ctrl+r:重复上一操作。
2.4、文件操作
:q:若文件无修改,则直接退出。
:q!:若文件已修改,则放弃本次修改退出。(不保存本次修改)
:w:保存数据。
:w!:强制保存。
:wq:保存修改退出。(无修改时也会更新修改时间)
:wq!:强制保存退出。
:x:保存退出。(无修改时也不会更新修改时间)
:e!:重新打开当前文档,不保存修改。
:w [filename]:将数据另存到filename中。
:r [filename]:读取filename中的数据于光标后。
2.5、环境设置
:set nu:显示行号。
:set number:显示行号。
:set nonu:取消行号。
:set nonumber:取消行号。
:set background=[?]:设置背景颜色为?。
:set encoding=[?]:设置显示文本的编码格式为?。
:set fileencoding=[?]:设置编辑文件编码格式为?。
总结
上面是一些vim的基础操作,包括模式的切换和一些常用的命令。
了解只是学习的第一步,之后还需要大家不断去亲自实践,去不断操作使用这些命令,
亲身去体会不同命令的功能的差异以及联系。
(如果出现了错误,希望能积极提出,作者在这万分感谢)
最后祝大家都能成为各自领域的大佬。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.e1idc.net