概述
- 普通模式(
normal mode
) - 插入模式(
insert mode
) - 可视模式(
visual mode
) - 命令模式(
excute mode
)
下面整理了常用的快捷键和记忆方法(结合英文的记忆方法法)
目录
普通模式
光标移动
按键 | 效果 | 记忆方法 |
---|---|---|
h j k l |
向左/下/上/右移动 | ←↑↓→ |
w |
移动到下个单词开头 | word |
W |
移动到下个单词开头(包含标点) | Word |
e |
移动到下个单词结尾 | end |
E |
移动到下个单词结尾(单词含标点) | End |
b |
移动到上个单词开头 | back |
B |
移动到上个单词结尾(单词含标点) | Back |
0 |
移动到行首 | hard ⇤ |
^ |
移动到行首的非空白符 | soft ⇤ |
$ |
移动到行尾 | ⇥ |
H |
当前屏幕的第一行 | High |
M |
当前屏幕的中间 | Middle |
L |
当前页的的最后一行 | Low |
gg |
移动到文件第一行 | goto line1 |
G |
移动到文件最后一行 | Goto EOF |
5G |
移动到第五行 | -Goto line5 |
查找
按键 | 效果 | 记忆方法 |
---|---|---|
f{char} /F{char} |
在行内向下/向上查找字符{char} (光标在字符上) | find/Find |
t{char} /T{char} |
在行内向下/向上查找字符{char}(光标在字符前面) | till /Till |
; /, |
跟f /F /t /T 结合使用,,跟查找顺序相同/相反的下一个匹配项 |
- |
/pattern |
文档向下查找匹配项 | - |
?pattern |
文档内向上查匹配项 | - |
n /N |
跟/ 和? 结合使用,跟查找顺序相同/相反的下一个匹配项 |
next/Next |
剪切, 复制, 粘贴
按键 | 效果 | 记忆方法 |
---|---|---|
yy |
复制当前行 | yank |
5yy |
复制 5 行 | 5次yank |
yw |
当光标在单词首字母处,复制当前单词 | yank word |
yaw |
当光标在单词内部,复制当前单词(单词后面空格也复制) | yank around word |
yiw |
当光标在单词内部,复制当前单词(单词后面空格不复制) | yank inside word |
p |
在光标后粘贴 | paste |
P |
在光标前粘贴 | Paste |
dd |
剪切当前行 | delete |
2dd |
剪切 2 行 | 2次delete |
dw /dW |
光标在单词首字母处,剪切当前单词 | delete word |
daw /daW |
剪切当前单词(后面有空格也剪切) | delete around word |
diw /diW |
剪切当前单词(后面有空格也剪切) | delete inside word |
D |
剪切, 从光标位置到行末 | Delete ⇥ |
x |
向后剪切掉一个字符,不用进入插入模式 | 向后x掉 |
X |
向前剪切掉一个字符,不用进入插入模式 | 向前X掉 |
J |
去掉行尾的换行符,即连接两行 | Join lines |
u |
撤销 | undo |
<ctrl-r> |
重做 | redo |
滚屏
按键 | 效果 | 记忆方法 |
---|---|---|
<Ctrl + b> |
向后滚动一屏 | backwards |
<Ctrl + f> |
向前滚动一屏 | forwards |
<Ctrl + d> |
向后滚动半屏 | down |
<Ctrl + u> |
向前滚动半屏 | up |
插入模式
按键 | 效果 | 记忆方法 |
---|---|---|
i |
从光标前开始插入字符 | insert |
I |
从行首开始插入字符 | Insert |
a |
从光标后开始插入字符 | append |
A |
从行尾开始插入字符 | Append |
o |
在当前行之下另起一行, 开始插入字符 | open a new line |
O |
在当前行之上另起一行, 开始插入字符 | Open a new line |
s |
删除当前字符,然后进入插入模式(替换) | substitute |
S |
删除当前行,然后进入插入模式(替换) | substitute |
r |
替换当前字符(其实是属于replace模式) | replace |
R |
替换连续的几个字符(属于replace模式) | Replace |
cw /cW |
删掉一个单词/带标点的单词,然后进入插入模式 | change |
C |
删除光标所在行的光标后面的内容 | Change |
<Esc> |
退出插入模式 | - |
可视模式
按键 | 效果 | 记忆方法 |
---|---|---|
v |
选择字符 | visual |
V |
选择行 | Visual line |
<ctrl-v> |
选择块 | visual block |
gv |
重复上次的高亮区域 | - |
o |
结合可视模式用的o ,回到活动端点 |
- |
vw |
光标在单词首字母处,选择单词 | visual word |
vaw |
选择单词(包括单词后面的空格) | visual around world |
viw |
选择单词(不包括单词后面的空格) | visual inside world |
vit |
选择标签内的内容(html) | visual inside tags |
命令模式
按键 | 效果 | 记忆方法 |
---|---|---|
:w |
保存、写入 | write |
:x /:wq |
保存并退出 | write quit |
:q! |
直接退出 | quit |
r filename |
读文件内容到当前文件中 | read filename |
w filename |
将当前文件内容另存到另一个文件 | write filename |
!command |
执行命令 | !command |
r!command |
读入命令的输出 | read !command |
:set number |
设置行符 | - |
:syntax on /:syntax off |
开启/关闭代码高亮 | - |
替换命令
:s/target/replacement/
:替换当前行的第一个target
为replacement
:s/target/replacement/g
:替换当前行的所有的target
为replacement
:n,$s/target/replacement/
:替换第n到最后一行的第一个target
为replacement
:n,$s/target/replacement/g
:替换第n到最后一行的所有的target
为replacement
:%s/target/replacement
:替换所有行的第一个target
为replacement
:%s/target/replacement/g
:替换所有行的所有的target
为replacement
用
#
或+
作为分隔符,/
作为匹配项中的内容::s#target/#/replacement#g
:替换所有行的第一个target/
为/replacement
:%s+/oradata/apras/+/user01/apras1+g
:替换所有行的/oradata/apras/
为/user01/apras1/