vi/vim编辑器相关命令
vi/vim的四种模式
- 正常模式
- 插入模式
- 末行模式
- 可视模式
vi命令:
#打开文件,并置光标于第一个匹配h1处
vi +/h1 filename
#上次使用vi时发生崩溃,恢复filename
vi -r filename
a.正常模式
正常模式主要用来浏览和修改文本内容
光标移动
操作 | 功能 |
---|---|
h 或 [←] | 光标左移一个字符 |
l 或 [→] | 光标右移一个字符 |
k 或 [↓] | 光标上移一个字符 |
j 或 [↑] | 光标下移一个字符 |
G | 光标移至末行行首 |
0 | 数字 0, 光标移至本行行首 (常用) |
$ | 光标移至本行行尾 |
nG | 光标移至第 n 行行首 (常用) |
n$ | 光标移至第 n 行行尾 |
^f | 屏幕上翻一屏(常用) |
^b | 屏幕下翻一屏(常用) |
复制、粘贴和删除
操作 | 功能 |
---|---|
u | 恢复前一个动作(常用) |
Ctrl + r | 恢复u操作之前 |
X | 向前删除一个字符(常用) |
x 或 [del] | 向后删除一个字符 |
do | 删至行首 |
d$ | 删至行尾 |
dd | 删除本行(常用) |
ndd | 删除本行及下 n-1 行(常用) |
yy | 复制本行(常用) |
nyy | 复制本行及下 n-1 行(常用) |
y1G | 复制光标前字符 |
yG | 复制光标后字符 |
p | 在下一行粘贴 |
P | 在上一行粘贴(常用) |
查找
操作 | 功能 |
---|---|
/hello | 在光标后查找串 hello(常用) |
?word | 在光标前查找串 word (常用) |
n | 在同一方向重复上次查找 |
N | 在反方向重复上次查找 |
字符大小写转换
操作 | 功能 |
---|---|
gu | 把选择范围全部小写 [开始位置] gu [结束位置] |
gU | 把选择范围全部大写 [开始位置] gU [结束位置] |
guu | 光标当前行统统变小写 |
gUU | 光标当前行统统变大写 |
1GguG | 整篇文章统统变小写(Vim和gVim中可以使用ggguG); 1G——光标定位到文件首,gu ——选定范围统统变小写,G——一直操作到文件结束部分 |
1GgUG | 整篇文章统统变大写(Vim和gVim中可以使用gggUG) |
b.插入模式
插入模式用来向文本中添加内容
操作 | 功能 |
---|---|
i | 光标前 |
I | 本行行首 |
a | 光标后 |
A | 本行行尾(常用) |
o | 当前行下插入一行 |
O | 当前行上插入一行(常用) |
c.末行模式
命令模式多用于操作文本文件
操作 | 功能 |
---|---|
:n1,n2 d | 删除 n1 行到 n2 行内容 |
:w | 保存当前文件(常用) |
:w! | 强制保存当前文件 |
:q | 退出 vi (常用) |
:q! | 不保存退出 vi |
:wq | 保存后退出 |
:wq! | 强制保存后离开(常用) |
:e! | 将档案还原到最原始的状态 |
:w filename | 将文件另存为 filename 文件 |
:n1,n2 w [filename] | 将 n1 与 n2 间内容另存为 filename 文件 |
:r filename | 在当前行下一行读入 filename 文件内容 |
: s/z1/zf2/g | 将本行中的所有 z1 用 z2 替换 |
:n1,n2s/z1/z2/g | 在第 n1 与 n2 行间的 z1 用 z2 替换(常用) |
:1,$s/z1/z2/g | 在首行与末行间的 z1 用 z2 替换 (常用) |
:1,$s/z1/z2/gc | 同上,并且提示是否取代(常用) |
:set nu | 显示行号 |
:set nonu | 取消行号 |
:set hls | 打开高亮 |
:set nohls | 关闭高亮 |
:set ignorecase | 忽略大小 |
:set noignorecase | 不忽略大小 |
d.可视模式
可视模式相当于高亮选取文本后的普通模式
操作 | 功能 |
---|---|
v | 字符可视模式,光标以字符为单位移动 |
V | 行可视模式,光标以行为单位移动 |
ctrl+v | 块可视模式,选中文件块进行操作 |
操作步骤:
1.Ctrl + v进行选中要操作的可视块;
2.切换插入模式进行插入字符操作;
3.esc 退出即可完成对可视块内容的操作;