vi/vim
是Linux命令行界面下的文字编辑器,几乎所有的Linux系统都安装了vi,只要学会了vi这个编辑工具,就可以在任何Linux系统上使用它。而vim是vi命令的增强版(Vi IMproved),与vi编辑器完全兼容,此外还有很多增强功能,例如用不同颜色高亮显示代码。因此,如果系统有vim命令,那么建议大家就使用vim编辑文本。
vim的三种模式
一般来说,vim可分为三种模式:普通模式、编辑模式、命令模式。这三种模式的作用分别如下。
(1)普通模式
用vim命令打开一个文件,默认的状态就是普通模式。在这个模式中,不能进行编辑输入操作,但可以按“上下左右”键来移动光标,也可以执行一些操作命令进行如删除、复制、粘贴等之类的工作。
(2)编辑模式
在普通模式下不能进行编辑输入操作,只有按下“i,I,o,O,a,A,r,R,s,S”(其中“I”最常用)等字母进入编辑模式之后才可以执行录人文字等编辑操作。看文件是否处于编辑模式状态有一个重要的特征,那就是在窗口的左下角要有插入的标记“--INSERT--”或“--插入--”
(3)命令模式
在普通模式下,输入“:”或“/”或“?”时,光标会自动定位在那一行,在这个模式中,可以执行保存、退出、搜索、替换、显示行号等相关操作。
![](https://i-blog.csdnimg.cn/blog_migrate/7052cf5610a1ba6ab2ee6f1e57b2e91e.png)
vim命令的参数选项及说明
普通模式:移动光标的操作
G或(shift+g) 将光标移动到文件的最后一行
gg 将光标移动到文件的第一行,等价于1gg或1G
0 数字0,将光标从所在位置移动到当前行的开头
$ 从光标所在位置将光标移动到当前行的结尾
n<Enter> n为数字,<Enter>为回车键,将光标从当前位置向下移动n行
ngg n为数字,移动到文件的第n行,如11gg可移动到第11行,可配合“:setnu”查看,同nG
H 光标移动到当前窗口最上方的那一行
M 光标移动到当前窗口中间的那一行
L 光标移动到当前窗口最下方的那一行
h或() 光标向左移动一个字符
j或() 光标向下移动一个字符
k或() 光标向上移动一个字符
l或(→) 光标向右移动一个字符
普通模式:搜索与替换操作
/lewen 从光标位置开始,向下寻找名为lewen的字符串
?lewen 从光标位置开始,向上寻找名为lewen的字符串
n 从光标位置开始,向下重复前一个搜索的动作
N 从光标位置开始,向上重复前一个搜索的动作
:%s/A/B/g 把符合A的内容全部替换为B,斜线为分隔符,可以用@、#等替代
:n1,n2s/A/B/g n1、n2为数字,在第n1行和n2行之间寻找A,用B替换
普通模式:复制、粘贴、删除等操作
yy 复制光标所在的当前行
nyy n为数字,复制光标开始向下共n行
p/P p将已复制的数据粘贴到光标的下一行,P则为粘贴到光标的上一行
dd 删除光标所在的当前行
ndd n为数字,删除从光标开始向下共n行
u 恢复(回滚)前一个执行过的操作
. 点号。重复前一个执行过的动作
x 向后删除字符
X 向前翻除字符
d1G 删除当前行至第一行
dG 删除当前行至最后一行
d0 删除当前光标文本至行首
d$ 删除当前光标文本至行尾
进入编辑模式命令
i 在当前光标所在处插入文字
a 在当前光标所在的下一个字符处插入文字
I 在当前所在行行首的第一个非空格符处开始插入文字,和A相反
A 在当前所在行行尾的最后一个字符处开始插入文字,和l相反
O 在当前所在行的上一行处插入新的一行
o 在当前所在行的下一行处插入新的一行
Esc 退出编辑模式,回到命令模式中
命令行模式
:wq 退出并保存
:wq! 退出并强制保存,“!”为强制的意思
:q! 强制退出,不保存
:n1,n2 w filename n1、n2为数字,将n1行到n2行的内容保存成filename这个文件
:nl,n2 co n3 nl、n2为数字,将nl行到n2行的内容复制到n3位置下
:n1,n2 m n3 nl、n2为数字,将n1行到n2行的内容剪切至n3位置下
:!command 暂时离开vi到命令行模式下执行command的显示结果!例如:!ls /etc
:set nu 显示行号
:set nonu 与setnu相反,取消行号
:vs filename 垂直分屏显示,同时显示当前文件和filename对应文件的内容
:sp filename 水平分屏显示,同时显示当前文件和filename对应文件的内容
I + # + Esc 在可视块模式下(Ctrl+V),一次性注释所选的多行,取消注释可用“:nl,n2s/#//g”,这里的操作是一个通用的方法,#号可以换成别的操作,例如Tab键,这样就是批量缩进
Del 在可视块模式下(Ctrl+V),一次性删除所选内容
r 在可视块模式下(Ctrl+V),一次性替换所选内容.输入r,再输入替换成的字符
vim打开文件的方法小结
以下为vim打开文件的几种方法。
vim file:打开/新建文件,光标置于第1行行首,file为任意文件名。
vim file +n:打开文件,光标置于第n行行首,n为自然数。 #eg: vim test.txt +4
vim file +:打开文件,光标置于最后1行行首。
vim file +/pattern:将光标置于第一个与pattern匹配的字符串处,pattern为任意字符串。