vi是linux的常用文本编辑器。vim是vi的增强版(增加命令和颜色标记等),涵盖了vi的所有功能。
vi用来编辑一个文件,如果文件存在,则打开文件,如果不存在,则会创建一个新文件。
一、vi有三种操作模式,分别对应三种状态,来完成不同的任务:
1、命令模式
a、刚打开文件时的缺省状态(不能添加文字,也不能用退格键删除文字);
b、可以控制光标移动,字符的删除、复制、黏贴;
c、进入插入模式(命令:i、a、o)、进入底线模式;
2、插入模式
a、在命令模式下进入插入模式有三种方式:
i(在当前字符前面插入)、a(在当前字符后面插入)、o(在当前行下方新增一行来插入);
b、按ESC键退回命令模式;
3、底线模式
a、在命令模式按":"进入底线模式
b、文件的保存、内容替换、显示格式的设置等工作
二、命令模式下的常用操作命令
1、光标移动
G : 移动到文件的最后
gg :移动到文件的开头;
文件格式化:1、“gg”跳转转至文件首部;2、输入“=”;3、输入“G”。
0或^ : 移动到所在行的行首
$ : 移动到所在行的行尾
ctrl + f : 往下翻页
ctrl + b : 往上翻页
2、文件编辑:数字 + 命令 = 执行多次命令
x : 删除当前字符(delete键也行);数字 + x 表示删除多少个字符,如 3 + x = 删除3个字符;
X : 删除前面一个字符;
dd : 删除当前行;数字 + dd 表示删除多少行,如 3 + dd = 删除3行;
dw : 删除当前单词;如果后面全是中文,会将后面的全部删除。
u : 撤销上次操作,可一直撤销 ; ctrl + r :反撤销
yw : 复制当前单词;
yy : 复制整行;
p : 粘贴;
r : 替换/覆盖 当前一个字符; 按了r之后输入一个字符,新的字符就会替换掉原来的字符
R : 多次替换/覆盖;
三、底线模式常用操作命令
:set nu : 显示行号;set number 也可以;
:set nonu : 取消行号;set nonumber 也可以;
:数字 : 光标快速定位到某行; 如 20,光标会切换到第20行;
/内容 :查找字符; 如输入"/我的" ,按回车,按n(向下查找),按N(向上查找)。这里可以不输入:
:set ic :忽略大小写;
:set noic :区分大小写;
1,$s/string/replace/g : 字符串替换操作;将第一行至最后一行($)的string字符串替换为replace;
例如 : 2,5s/am/are/g 表示将第2-5行内的"am"替换为"are";
s : 表示替换
g :表示全部替换;如果不加g,则只会替换每行的第一个匹配项。
:w : 保存; :w! 可以强制写(当前账户有文件的写权限,但这个文件的只读的);
:q : 退出;如果有未保存的内容,则提示。
:wq : 保存并退出;
:q! : 不保存退出; ! 表示强制的意思;
:3,5w test.log : 将3至5行保存到新文件test.log中;