简介
vi是"Visual interface"的简称, 它在Linux上的地位就仿佛在Edit程序在DOS上一样。它可以执行输出,删除,查找,替换,块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制。Vi不是一个排版程序,他不像Word或者WPS那样对文字的字体、格式、段落等其他属性进行排版,他只是一个文本编辑器,而且vi没有菜单,只有命令,而且命令繁多。
而vim编辑器是Linux/Unix系统下的标准编辑器,是Linux系统中不可或缺的编辑工具,同时也是vi编辑器的升级版。在使用Mac系统终端功能时也会涉及vim编辑器的运用。
大部分的Linux系统都是自带vi或者vim编辑器的,如果没有安装,可以运行如下命令进行安装:
sudo apt install vim # Ubuntu 系统
yum -y install vim # centos 系统
vim的三种模式
vim通常由三种模式: 一般模式, 插入模式,末行模式。
一般模式
一般模式也称普通模式或命令行模式。不管叫什么,进入vim文件后默认看到的就是该模式。在这里可以使用上下左右键移动光标,进行删除、复制等操作处理文件数据,但无法自由插入数据。
复制粘贴
- 1、按字符:
一般模式下输入字符【v】(小写)进入VISUAL按字符选择模式,通过【h、j、k、l】或方向键(上下左右箭头)移动光标选择要进行复制的字符串,选定后按y复制,移动到目标处按p粘贴,h,j,k,l 分别用于光标左移,下移,上移,右移;
- 2、按行:
一般模式下输入字符【V】(大写)进入VISUAL LINE按行选择模式,选择要进行复制的行,按y复制,按p粘贴;
- 3、按块:
一般模式下输入字符【ctrl+v】(大写)进入VISUAL BLOCK按块选择模式,选择要进行复制的块范围,按y复制,按p粘贴;
移动光标
G :将光标移至最后一行行首
G: 移动到指定行,行号G (扩展:打开文件时跳转指定行,vi 文件名 +行数)
nG :将光标移至第n行行首
gg:移动到文件开头,相当于1G
0:光标移到所在行行首
$:光标移到所在行行尾
w或e:下个字开头或结尾
ctrl+b:前一页
ctrl+f:后一页
h: 左移
j: 下移
k: 上移
l: 右移
M: 光标移动到当前屏幕的中间行
L: 光标移动到当前屏幕最后一行行首
w: 向后一次移动一个字
b: 向前一次移动一个字
{: 按段移动,上移
}: 按段移动,下移
Ctr-d: 向下翻半屏
Ctr-u: 向上翻半屏
Ctr-f: 向下翻一屏
Ctr-b: 向上翻一屏
查找
/:从上往下查找
?:从下往上查找
n:查找下一处
shift*:快速查找当前光标所在的词
修改
r或R:替换当前光标字符(R则进入REPLACE模式)
J:合并上下两行
\>>或<<:缩进或反缩进
删除
x:删除光标处字符
X:删除光标前的字符
nx:删除光标处开始的n个字符
dd: 删除光标所在行,n dd 删除指定的行数
D:从光标开始删至行末
dw: 删除光标开始位置的字,包含光标所在字符
d0: 删除光标前本行所有内容,不包含光标所在字符
.:重复前一个操作
撤销
u: 一步一步撤销
ctrl + r : 反撤销
插入模式
i: 插入光标前一个字符
I: 插入行首
a: 插入光标后一个字符
A: 插入行未
o: 向下新开一行,插入行首
O: 向上新开一行,插入行首
末行模式
在命令模式下, 按Shift + ;
进行末行模式
退出
:q 退出
:q! 退出并不保存
:w 保存不退出
:wq 保存并退出
:x 保存并退出
:wq! 保存并强制退出
替换
把abc全部替换成xxxx
末行模式下,将当前文件中的所有abc替换成xxx。如果不使用 g,则只会替换每一行的第一个 abc
:%s/abc/xxx/g
末行模式下,将第一行至第10行之间的abc替换成xxx
:1, 10s/abc/xxx/g