在Vi中“迷路”时,不知道当前处于哪种模式,连按两次ESC键就可以返回到命令模式
在命令模式下的命令
>>移动的
l或右方向键 向右移动一个字符
h或者左方向键 向左移动一个字符
j或下方向键 向下移动一个字符
k或上方向键 向下移动一个字符
数字0 移动到当前行行首
^ 移动到当前行中第一个非空白字符处
$ 移动到当前行行尾
w 移动到下一个单词开头或标点符号
W 移动到下一个单词开头,忽略标点符号
b 移动到
上一个单词开头或标点符号
B 移动到上一个单词开头,忽略标点符号
Ctrl+F或下翻页 移动到下一页
Ctrl+B或上翻页 移动到上一页
数字键G 移动到指定行。 1G可以使光标移动到文件第一行
G 移动到文件最后一行
如果要在文末添加一些文本,将光标移至行尾并输入a,光标会移动过行尾,同时Vi进入插入模式。按ESc可以退出插入模式。
使用数字0移动到行首,然后输入A,就可以追加文本了。按ESc可以退出插入模式。
>>新建
o 在当前行之下新建一行
O 在当前行之上新建一行
按u键可以撤销刚才的更改
>>删除
x 当前字符
3x 当前字符和接下来的两个字符
dd 删除当前行
5dd 当前行和接下来的4行
dW 从光标所在处一直到下一个单词的开头
d$ 从光标所在处一直到行尾
d0 从光标所在处一直到行首
d^ 从光标所在处一直到行中第一个非空白字符
dG 从当前行一直到文件末尾
d20G 从当前行一直到第20行
>>剪切、复制、粘贴
d命令会将删除的内容复制到粘贴缓存区。
y命令用于“复制”文本
yy 当前行
5yy 当前行和接下来的4行
yW 从光标所在处一直到下一个单词的开头
y$ 从光标所在处一直到行尾
y0 从光标所在处一直到行首
y^ 从光标所在处一直到行中第一个非空白字符
yG 从当前行一直到文件末尾
y20G 从当前行一直到第20行
小写p在当前行之下粘贴
大写P在当前行之上粘贴
>>合并
J 会将当前行与下一行合并
>>搜索
/word 回车
光标会跳转到第一个搜索结果,按下n键,会向下继续搜索。按下N键,会向上搜索
:%s/Word/word/g
: 表示接下来是ex命令
% 表示从第一行到最后一行,也可以换成1,5(1到5行),1,$(当前行到最后一行),不指定则仅对当前行执行操作
s 指定替换操作
/Word/word 指定搜索文本和替换文本
g 表示对行中所有搜索字符串执行替换操作,不指定则替换到每行搜索到的第一个字符串
:%s/Word/word/gc 加上c后,每次替换需要用户确认。
y 执行替换
n 跳过此次替换
a 执行所有替换
q或Esc 退出替换
l 执行此次替换,然后退出。这是last的缩写
Ctrl+E/Ctrl+Y 分别表示向下滚动和向上滚动。可用于被替换处的上下文