1. vi模式
建议升级到vim
vi [文件名]
1.1 命令模式(Command Mode)
- 控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入其他模式。
h j k l 左 下 上 右
$ 至行尾 0(零) 至行首
- vi的缺省模式
- 键盘输入当作命令,命令有大小写之区分
复制和移动
yy 复制当前行到内存缓冲区
nyy:复制从当前行开始的n行内容到内存缓冲区。
p:将缓冲区的内容粘贴到光标的后面
P:将缓冲区的内容粘贴到光标的前面
搜索字符串
/pattern:移至下一个包含pattern的行
?pattern:移至上一个包含pattern的行
n:在同一方向重复查找
N:在相反方向重复查找
其他
u:撤销前一条命令的结果
ctrl+r:恢复撤销的更改,可以一直按该组合键达到最新的改变。
ctrl+g:列出光标所在行的行号。
1.2 插入模式(Input Mode)
- 只有在Insert mode下,才可以做文字输入,按[ESC]键可回到命令行模式。
- 在命令模式使用 a、i、o、c、r、s 进入插入模式
新增 (append)
a 从光标所在位置后面开始新增内容
A 从光标所在行最后面的地方开始新增内容。
插入 (insert)
i 从光标所在位置前面开始插入内容
I 从光标所在行的第一个非空白字符前面开始插入资料。
开始 (open)
o 在光标所在行下新增一行并进入输入模式。
O 在光标所在行上新增一行并进入输入模式。
修改
r:修改光标所在字符,r 后接着要修改的字符。如,rc 可以用字符“ c ”替换光标所指向的当前字符。
R:进入替换状态,替换当前字符及其后的字符,直到按 [ESC] 回到命令模式下为止。
删除
nx:删除光标所在位置后n个字符。省略n表示1。如2x (n:连续点击x的次数)
nX:删除光标所在位置前n个字符。省略n表示1。
- 用户输入的任何字符都被vi当做文件内容保存起来,并将其显示在屏幕上
1.3 末行模式(Last Mode)
- 将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。
- 在 Command Mode 按下 : (英文冒号)即可进入该模式
- 命令有大小写之分
文件的保存和退出
w 文件名: 保存
q:退出
w!:强制保存
q!:不存盘强制退出
wq:保存退出
wq!:强制保存退出
x:保存当前文件并退出
字符串的替换
s/str1/str2/,用字符串str2替换当前行中首次出现的字符串 str1
s/str1/str2/g,用字符串str2替换当前行中所有出现的字符串 str1
.,$ s/str1/str2/g,用字符串str2替换正文****当前行到末尾所有出现的字符串 str1
n1,n2 s/str1/str2/g:将第n1至n2行中所有str1均用str2替代
其他:
: n 将光标移到第 n 行
:set nu:显示行号
:set nonu:关闭行号
:e filename 编辑指定文件
:!command:执行shell命令command