vi使用笔记

如题

VI使用笔记

文本查找

1
2
3
4
5
6
7
8
9
10
11
12
13
/ 向下查找,输入n可以按相同的方向继续查找,N向相反的方向继续查找(notepad用F3)
? 向上查找,同上,搜索字符串中如果包含由特殊含义的字符需要在前面加上\
f 向下搜索某行中的单个字符
F 向上搜索某行中的单个字符
t 向下搜索,并把光标定位到匹配字符的前面
T 向上搜索,并把光标定位到匹配字符的后面
部分特殊字符列表:
^ 匹配一行的开头
. 匹配一个字符
* 匹配0个或多个字符
$ 匹配一行的结尾
[] 匹配一组字符

移动光标:

1
2
h 向左 j 向下 k 向上 l 向右
例:普通模式下输入3j,会向下移动3行

复制粘贴:

1
2
3
4
5
yy 复制当前行
nyy 复制n行
yw 复制一个字(单词)
p 将复制的文本粘贴到光标后面
P 将复制的文本粘贴到光标前面

文本替换:

1
2
3
:s/search/replace/g 将当前行的所有search替换为replace
:n,$s/old/new/g 将从第n行开始到最后一行的所有old替换为new(n若是".",表示从当前行开始到最后一行)
:n,$s/old/new 将从第n行开始到最后一行的每一行的第一个old替换为new

模式切换:

1
2
两次ESC回到普通模式
ZZ 保存并退出,方便快捷

插入字符:

1
2
3
4
5
6
i 光标的前面插入
I 当前行的开头插入文本
a 光标的后面插入
A 当前行的末尾插入文本
o 在当前行的下一行插入空行
O 在当前行的上一行插入空行

删除字符:

1
2
3
4
5
6
7
x 删除当前光标下的字符
X 删除光标前面的字符
dw 删除从当前光标到单次解围的字符
d^ 删除从当前光标到行首的字符
d$ 删除从当前光标到行尾的字符
D 删除从当前光标到行尾的字符
dd 删除当前光标所在的行,3dd删除3行

修改字符:

1
2
3
4
5
6
7
cc 删除当前行并进入编辑模式
C 当前行的光标所在位置清空并进行编辑
cw 删除当前字(单词),并进入编辑模式
r 替换当前光标下的字符(替换单个字母用)
R 从当前光标开始替换字符,按ESC退出
s 用输入的字符替换当前字符,并进入编辑模式
S 用输入的文本替换当前行,并进入编辑模式

屏幕移动:

1
2
3
H移动到屏幕顶部,nH移动到屏幕第n行的位置
M移动到屏幕中间
L移动到屏幕底部

文章移动命令:

1
2
3
4
5
6
7
8
9
10
gg跳到文档开头
G跳到文档结尾,1G 或 :1 移动到文件第一行
0或|回车,跳到当前行开头
$跳到当前行结尾
w定位到上一个单词
b定位到下一个单词
(定位到一句话的开头,句子是以!.?三种符号来界定
)定位到一句话的结尾
{移动到段落开头
}移动到段落结尾

控制命令:

1
2
3
4
5
6
7
ctrl+d 向后滚动半屏
ctrl+f 向后滚动全屏
ctrl+u 向前滚动半屏
ctrl+b 向前滚动整屏
ctrl+e 向下滚动一行
ctrl+y 向上滚动一行
ctrl+I(大写的i)刷新屏幕

高级命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
J 将当前行和下一行链接为一行
<< 将当前行左移一个单位(一个缩进宽度)
>> 将当前行右移一个单位
~ 改变当前字符的大小写
ctrl+G 可以显示当前文件名和状态
U 撤销对当前行所做的修改
u 撤销上次操作
:f 以百分比的形式显示当前光标在文中的位置、文件名和文件的总行数
:f filename 将文件重命名为filename
:w filename 保存修改到filename
:e filename 打开另一个名为filename的文件
:cd dirname 改变当前工作目录到dirname
:e # 在的两个打开的文件之间进行切换
:n 如果用vi打开了多个文件,切换到下一个文件
:p 如果用vi打开了多个文件,切换到上一个文件
:r file 读取文件并在当前行的后面插入
:nr 读取文件并在第n行后面插入

本文标题:vi使用笔记

文章作者:暮沉沉

发布时间:2017年09月04日 - 08:09

最后更新:2017年09月04日 - 08:09

原始链接:http://maplege.github.io/2017/09/04/vi-sum-up/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

-------------本文结束感谢您的阅读-------------