工作以后才开始使用linux系统,vi编辑器也是从此时开始接触的,一直认为凡是碰到的、用到的、学到的知识都应该总结一下,温故而知新。。。本博文总结一下vi的使用命令。
linux环境下vi有三种状态:命令模式、插入模式、底行模式
1. 三种模式简介
命令模式:控制屏幕光标的移动,字符、字和行的删除,移动复制某区段及进入insert mode和last line mode。
插入模式:插入文字,[ESC]回到命令模式。
底行模式:将文件保存或退出vi,也可设置编辑环境,如寻找字符串、列出行号等等。
2. 三种模式的转换关系
3. 三种模式下的各种命令
(1)命令模式:
0(数字)---- 光标移至首行
d+方向移 ---- 删除文字
Pageup ---- 上移一页
PageOn ---- 下移一页
dd ---- 删除整行
#dd ---- 删除#行
h ---- 光标左移一格
l ---- 光标右移一格
j ----- 光标下移一行
k ---- 光标上移一行
pp ---- 复制整行
r ---- 修改光标所在字符
G ---- 移到文章最后
S ---- 删除光标所在列,并进入插入模式
$+A ---- 将光标移到该行最后
[#l] ---- 光标移至该行的第#个位置,如5l、56l
ctrl+b ---- 屏幕往后移动一页
ctrl+f ---- 屏幕往前移动一页
ctrl+u ---- 屏幕往后移动半页
ctrl+d ---- 屏幕往前移动半页
[$] ---- 移至光标所在行行尾
[^] ---- 移至光标所在行行首
x ---- 每按一次,删除光标所在位置的后面一个字
w ---- 光标跳至下个字的开头
#x ---- 删除光标所在位置后面#个字符
e ---- 光标跳至下个字的字尾
X ---- 每按一次,删除光标所在位置的前面一个字
b ---- 光标回到上个字的开头
#X ---- 删除光标所在位置前面#个字符
yw ---- 将光标所在之处到字尾的字符复制到缓冲区
#yw ---- 复制#个字到缓冲区
yy ---- 复制光标所在行到缓冲区
#yy ---- 从光标开始往下数#行
p ---- 将缓冲区字符贴到光标所在位置
R ---- 替换光标所到之处字符,直到ESC止
u ---- 回复上一次操作,可执行多次
cw ---- 更改光标所在处字到字尾处结束
ctrl+g ---- 列出光标的所在行行号
#G ---- 移到光标到文章的第#行行首
(2)输入模式
在命令模式下,按a/A、i/I、o/O进入文本模式
a ---- 在光标后开始插入
A ---- 从行尾开始插入
i ---- 从光标所在位置前开始插入
I ---- 从光标所在列的第一个非空白字元前开始插入
o ---- 在光标所在列下方新增一列并进入输入模式
O ---- 在光标所在列上方新增一列并进入输入模式
ESC ---- 返回命令行模式
(3)底行模式
:q ---- 结束vi程序,如有修改先保存
:q! ---- 强制退出vi程序
:wq ---- 修改保存并退出
:set nu ---- 设置行号
:w filename ---- 将文章以指定的文件名,filename保存。
#: 跳至第#行
/ 关键字 ---- 查找关键字,可一直按n往后找(往后找)
? 关键字 ---- 查找关键字,可一直按n往前找(往后找)