[Linux]VI相关操作
About vi
vi编辑器学习
vi编辑器有三种模式:命令模式、输入模式和末行模式。无论在任何模式下按【Esc】都可以返回到命令模式。
命令模式:vi启动后默认进入的是命令模式,从这个模式使用命令可以切换到另外两种模式,同时无论在
任何模式下只要按一下[Esc]键都可以返回命令模式。在命令模式中输入字幕“i”就可以进入vi的输入模式编
辑文件。
输入模式:在这个模式中我们可以编辑、修改、输入等编辑工作,在编辑器最后一行显示一个“--INSERT
--”标志着vi进入了输入模式。当我们完成修改输入等操作的时候我们需要保存文件,这时我们需要先返回命
令模式,在进入末行模式保存。
末行模式:在命令模式输入“:”即可进入该模式,在末行模式中有好多好用的命令。
1、vi
直接输入vi可以查看vi的版本信息
2、vi [文件名]
若存在该文件,则打开存在文件;若不存在,将新建文件名为[文件名]的文件。
3、保存与退出
在“末行命令”中输入以下内容并按【Enter】可以执行不同的操作:
:q! 强制退出
:w 保存
:w [文件名] 另存为
:wq 保存并退出
:wq! 保存并强制退出
4、光标移动(命令模式)
在“命令模式”中除了光标可以移动光标之外,还可以使用以下命令
k 上
j 下
h 左
l 右
^ 移动到行首
$ 移动到行尾
[第n行]G 跳转到第n行
G 跳转到首行
5、翻页(命令模式)
Ctrl+F 向前翻一页
Ctrl+B 向后翻一页
Ctrl+U 向前翻半页
Ctrl+D 向后翻半页
6、显示行号(末行模式)
set nu 显示行号
set nonu 取消行号
7、编辑模式(命令模式)
a 附加命令
i 插入命令
o 打开命令
c 修改命令
r 取代命令
s 替换命令
Esc 退出命令
8、光标移动(输入模式)
Home 行首
End 行尾
Page Up 向前翻页
Page Down 向后翻页
Delete 删除光标位置的字符
9、删除操作(命令模式)
x 删除光标位置的字符
dd 删除光标所在行
dw 删除当前字符到单词尾包括空格的所有字符
10、撤消操作(命令模式)
u 取消最近一次操作
U 取消所有操作
Ctrl+R 恢复对u命令的操作
11、复制操作(命令模式)
[n,m]y 复制第n行到第m行
[n]yy 复制n行,若无行数,只复制当前行
[n]yw 复制n个单词,若无行数,只复制光标到单词尾
y$ 复制光标到行尾
y^ 复制光标到行首
12、查找和替换(末行)
/[key] 从光标位置开始查找key
:s/old/new 用new替换首次出现的old
:s/old/new/g 用new替换行中出现的所有old
:[n,m] s/old/new/g 用new替换第n行到第m行中出现的old
: % s/old/new/g 用new替换所有的old
:s/old/new/c 用new替换首次出现的old,用户需要确认。[/c]适用上面所有命令
13、恢复文件
文件在编辑中会产生一个临时文件,文件以.开头并以.swp结尾。在异常退出的时候,系统在下一次编辑的时候会提示命令处理。
O 只读打开
E 继续编辑,不恢复.swp文件
R 恢复文件,继续编辑
Q 退出vi
D 删除.swp文件
vi -i [文件名] 恢复.swp文件
声明:I have already customized something base on the blog which is from http://www.cnblogs.com/rond/archive/2013/04/30/3051529.html