一、打开文件
1. vi [file]:打开文件
2. vi +# [file]:打开文件并定位于第#行
输入“:set nu”可查看行号,发现打开文件号光标定位到第20行
3. vi + [file]:打开文件并定位到最后一行
4. vi +/PATTERN [file]:打开文件并定位至第一次被PATTERN匹配到的行的行首
二、模式
1.模式名称
编辑模式: 按键具有编辑文本功能,默认打开进入编辑模式
输入模式: 按键本身意义
末行模式: 接受用户命令输入,编辑模式下输入“:”进入
2.模式之间的切换
(1)编辑–>输入
- i:在当前光标所在字符的前面,转为输入模式
- a:在当前光标所在字符的后面,转为输入模式
- o:在当前光标所在行的下方,新建一行,并转为输入模式
- O:在当前光标所在行的上方,新建一行,并转为输入模式
- I:在当前光标所在行的行首,转为输入模式
- A:在当前光标所在行的行尾,转为输入模式
(2)输入–>编辑
- ESC
(3)编辑–>末行
- :
(4)末行–>编辑
- ESC,ESC(按两下ESC )
3. 编辑模式
(1)移动光标
字符:
h:左,j:下,k:上,l:右
单词:
w:移至下一个单词的词首
e:跳至当前或下一个单词的词尾
b:跳至当前或前一个单词的词首
行内:
0:绝对行首
^:行首的第一个非空白字符
$:绝对行尾
行间:
G:文章末尾
5G:第5行
gg:文章开头
翻屏:
ctrl:f,b
(2)删除&替换单个字符
x:删除光标位置字符
5x:删除光标开始5个字符
r:替换光标位置字符
(3)删除&剪切命令(删除命令也是剪切,输入p就可以粘贴)
dw:删除一个单词
5dw:删除5个单词
dd:删除一行
5dd:删除5行
dG:从光标所在行到文章结束行全部删除
(4)复制粘贴
yw:复制一个单词
yy:复制一行
p:向下粘贴
P:向上粘贴
(5)撤销&重做
u:撤销
Ctrl+r 重做撤销的操作
英文句号“.”:重复上一步操作
4. 末行模式(shift+:)
(1)set:设置
- set nu :显示行号
- set nonu:不显示行号
- set readonly:设置只读
(2)/:查找
编辑模式下输入/after会定位到单词词首
末行模式下输入/after会定位到该单词所在行的行首
n:向下查找,N:向上查找
(3)!:执行命令
按回车继续
(4)查找并替换
s/str1/str2/gi
- 临近s命令的第一个字符为边界字符:/,@,#(当str包含“/”时,可用@或#切割)
- g:一行内全部替换
- i:忽略大小写
- 范围
n:行号
英文句号“.”:当前光标行
+n:偏移n行
$:末尾行,$-3:倒数第三行
%:全文
例如:
从当前光标行到末尾行,把after替换成before,但是当一行有多个after时,只能替换第一个
全文将before替换成after,一行内全部替换
(5)删除,复制和粘贴
从光标所在行到文章结束行全部删除,等价于编辑模式下输入dG
复制第3至9行,输入p进行粘贴
三、关闭文件
末行模式:
- :q 退出
- :wq/:x 保存并退出
- :q! 不保存退出
- :w 保存
- :w! 强行保存
编辑模式:
- ZZ 保存并退出