Vim 编辑器的使用

简介:

Vim是Unix及类Unix系统文本编辑器。

Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。它使用控制台图形模式来模拟文本编辑窗口,允许查看文件中的行、在文件中移动、插入、编辑和替换文本。

在GNU项目将vi编辑器移植到开源世界时,他们决定对其作一些改进。由于它不再是以前Unix中的那个原始的vi编辑器了,开发人员也就将他重命名为vi improved, 或vim。

 

一、vi和vim的区别:

1.多级撤销

在vi编辑器中按u只能撤销上一次操作,vim可以无限制的多次撤销

2.易用性

vi编辑器只能运行于unix中,而vim不仅可以运行于unix,还可用于mac、windows等多操作平台。

3.语法高亮

使用vim编辑文本时,会用不通的颜色加亮你的代码,还能够给你提示部分的语法错误。

4.可视化操作

就是说vim不仅可以在终端运行,也可以运行于x window、 mac os、 windows。

5.完全兼容vi

vim在使用过程中基本可以替代vi来使用。

 

二、vim的四种模式

1.命令模式

在命令模式下,可以通过上下左右移动光标的位置,可以对文章的行进行进行删除、复制、粘贴或者删除某个字符、字符串等。

2.编辑模式

在编辑模式下,可以对文章内容进行修改和删除等操作,比如使用i、a、o等。

3.末行模式

可以在末行输入命令来对文件进行操作(搜索、替换、保存、退出、撤销、高亮等等)。

4.视图模式(扩展)

批量操作,可视行,可视块的操作。比如给多行内容加上注释或者选中多行。

三、各模式下的命令

1.命令模式

h			#向左移动一个字符
l			#向右边移动一个字符
j			#向下移动一个字符
k		        #将光标向上移动一个字符
^                       #把光标移至行首
$                       #把光标移至行尾
w                       #把光标向右移动一组字符,光标位于字符串的左边,以空白和特殊字符为分割
e                       #把光标向右移动一组字符,光标位于字符串的左边,以空白和特殊字符为分割
W                       #把光标向右移动一组字符,光标位于字符串的左边,以空白字符为分割 
E                       #把光标向右移动一组字符,光标位于字符串的左边,以空白字符为分割
gg                      #把光标移到第一行
G                       #把光标移到最后一行
ngg/nG                  #跳转到指定的行,n为数字
dd                      #删除或剪切当前的行
ndd                     #删除或剪切从当前行到下面的n行
p                       #在当前行的下方粘贴剪切板上的内容
P                       #在当前行的上方粘贴剪切板上的内容
yy                      #复制当前光标所在的一行
nyy                     #复制当前光标所在行至下面的n行
de                      #删除一组字符,以空白字符或特殊字符为分隔符
dw                      #删除一组字符,以空白字符或特殊字符为分隔符,会把分隔符当做一组字符
r                       #替换光标所在的单个字符
R                       #替换从光标开始向后的多个字符
delete/x                #删除光标后的字符
X                       #删除光标前的字符
~                       #把光标所在的小写字母改成大写
Shift键 + 方向键         #向左或者向右移动一组字符,以特殊字符或空白符为分隔符
Ctrl键 + 方向键          #向左或者向右移动一组字符,以空白字符为分隔符

2.编辑模式

Esc键	        #退出编辑模式,进入到命令模式
i		#在当前光标前插入内容
a		#在当前光标后插入内容
I		#光标快速的移动到行首,并进入编辑模式,在当前光标前插入内容
A		#光标快速的移动到行尾,并进入编辑模式,在当前光标后插入内容
ce              #删除一组字符并进入编辑模式,以空白字符或特殊字符为分隔符
cw              #删除一组字符并进入编辑模式,以空白字符或特殊字符为分隔符,会把分隔符当做一组字符删除
C               #删除光标后的所有内容(针对行操作),并进入编辑模式
cc              #删除光标所在的一整行,并进入编辑模式
S               #删除光标所在的一整行,并进入编辑模式
s               #删除光标所在一个字符,并进入编辑模式
o               #在光标所在行的下一行添加空白行,并进入编辑模式
O               #在光标所在行的上一行添加空白行,并进入编辑模式

3. 末行模式

退出保存

:q		#退出不保存
:wq		#保存退出
:q!		#强制退出
:wq!	        #强制保存退出
:w		#保存不退出
:x		#保存退出

光标操作

:n             #跳转到n行
:nd            #删除第n行
:n,md          #删除n-m行

搜索内容

/root           #向下搜索root这个字符串
n               #向下查找
N               #向上查找
?root           #向上搜索root这个字符串
/root\c         #不区分大小写,搜索root

替换

:%S#root#admin#g  
:1s#root#oldboy#g	        #替换指定行的匹配的字符串
:1,10s#root#oldboy#g       	#替换第一行到第十行所有匹配的字符串
:%s#root#oldboy#gi		#替换的时候忽略大小写
:s#root#oldboy#                 #替换第一个匹配的字符串
:%s#root#oldboy#                #替换每一行第一个匹配的字符串

读取其他文件和保存内容到新文件

:w /path            #写入到新的文件
:r /path            #读取文件写入到光标所在行的下面
:1r /path           #读取文件写入到第一行的下面 
:$r /path           #读取文件写入到最后一行的下面 
:0r /path           #读取文件写入到第一行上面
:1 copy 10          #将第一行复制到第十行下面
:1,5 copy 10        #将第一行到第五行复制到第十行下面
:1 move 10          #将第一行移动到第十行下面
:sh                 #进入命令行进行操作,返回使用exit或Ctrl + d

4.视图模式

可视行

将光标移到要操作的行
V                #进入可视行模式
通过控制光标选中你要选中的行,进行操作
x/d              #删除选中的行
y                  #复制选中的行

可以结合命令模式用法使用
比如你想选中当前行到80行,80G/80gg即可直接跳转到80行。

可视块

#批量添加
将光标移动到要操作的行,并且是要操作的字符上面
Ctrl+v    #进入可视块模式
使用方向键进行选中要操作的行
I         #进入编辑模式  
编辑内容   按esc退出

#批量删除
将光标移动到要操作的行,并且是要操作的字符上面
Ctrl+v    #进入可视块模式
使用方向键进行选中要操作的行
d/x        #进入编辑模式  

 

点赞

发表回复