h j k l
左 下 上 右
命令 | 解释 |
---|---|
i | 在光标前面进行插入 |
I | 在光标所在行的行首进行插入模式 |
a | 在光标的后面插入模式 |
A | 在光标所在行的行尾插入模式 |
o | 在光标所在行的下方插入空行并且进入插入模式 |
O | 在光标所在行的上方插入空行并且进入插入模式 |
s | 删除光标指定的字符串并且进入插入模式 |
S | 将光标所在行清除并且进入插入模式 |
q!忽略修改退出
wq保存退出
删除命令
删除单一字符用x
删除多个字符 d
motion-表示操作范围的指令
按键 | 含义 |
---|---|
0 | 将光标定位到行首位置 |
^ | 同上 |
$ | 将光标定位到行尾的位置 |
b | 将光标定位到光标所在的单词的起始处 |
e | 将光标定位到光标所在的单词结尾处 |
w | 将光标定位到一下个单词的起始处 |
gg | 将光标定位到文件的开头 |
G | 将光标定位到文件的末尾 |
按键 | 含义 |
---|---|
d0 | 删除光标从当前位置(不包含)到改行的行首的所有字符 |
d^ | 同上 |
d$ | 删除从光标当前位置(包含)到该行行尾的所有字符 |
db | 删除从光标当前位置(包含)到单词起始处的所有字符 |
de | 删除从光标当前位置(包含)到单词结尾处的所有字符 |
dw | 删除从光标当前位置(包含)到下个单词的起始处的所有字符 |
dh | 删除光标前面一个字符 |
dl | 删除光标指定的字符 |
dj | 删除光标所在行以及下一行的所有字符 |
dk | 删除光标所在行以及上一行的所有字符 |
dd | 删除光标所在行的字符 |
dgg | 删除光标所在行到文件开头的所有字符 |
dG | 删除光标所在行到文件末尾的所有字符 |
数字+motion=重复多个motion
例如 3 h
d+数字+motion=删除多个motion范围
后悔药
按钮 | 含义 |
---|---|
u | 撤销最后一次修改 |
U | 表示撤销对整行的修改 |
ctrl+r | 可以恢复撤销的内容 |
剪切操作
dd
//一整行
p
//下一行粘贴
P
//上一行粘贴
d$
p
//后面粘贴
P
//前面粘贴
拷贝命令
y [数字] motion
替换命令
r
替换光标所在的字符
[数字]+r
3 r a
重复替换三个字符
R 替换模式
修改命令
c [数字] motion
基本同d命令
文件信息
ctrl + g
行号 + G
//跳转到多少行
:行号
//跳转到多少行
定位括号
%
快速帮你找到另一半括号
缩进
>> 表示缩进
<< 表示反缩进
2 >> 两行缩进
v
可视模式
搜索命令
/向下搜索
n向下搜索
N向上搜索
?向上搜索
n向上搜索
N向下搜索
:nohl
取消高亮
. * [ ] ^ % / ? ~ $
前面要加反斜杠
替换命令
:s/oo/xx
将oo替换为xx,替换第一个
:s/oo/xx/g
替换整行
替换所有的
:%s/oo/xx/g
:%s/oo/xx/c
替换特定行号
:4,12s/oo/xx/g
4-12行oo替换为xx
执行shell命令
:!ls /
文件另存为
:w 新的文件名.txt
局部内容另存为
(1)进入可视模式
(2):w 文件名
覆盖文件
w! 文件名
合并文件
:r 想合并的文件名
打开多个文件
-o 或者 -O
vi -o 文件1 文件2
垂直并排
vi -O 文件1 文件2
水平并排
ctrl+w+w将光标切换到下一个文件
ctrl+w+l将光标切换到下一个文件
对于垂直(-o)文件,ctrl+w+上下方向表示上下切换文件
对于水平(-O)文件,ctrl+w+左右方向,表示左右切换文件
全部退出
:wqa
保存修改全部退出