Vim
MyVim
1. 基础导航命令(光标移动)
| 命令 | 含义 |
|---|---|
h |
左移一个字符 |
l |
右移一个字符 |
j |
下移一行 |
k |
上移一行 |
w |
移动到下一个单词的开头 |
e |
移动到当前/下一个单词的结尾 |
0(零) |
移动到行首 |
^ |
移动到本行第一个非空白字符 |
$ |
移动到行尾 |
| G | 移动到文件最后面 |
| gg | 移动到文件最前面 |
2. 插入模式
| 命令 | 含义 |
|---|---|
i |
在光标前插入 |
I |
在当前行的第一个非空字符前插入 |
a |
在光标后插入 append |
A |
在当前行行尾插入 |
o |
在当前行下方新起一行并插入 |
O |
在当前行上方新起一行并插入 |
<Esc> |
退出插入模式,回到普通模式 |
3. 删除命令
| 命令 | 含义 |
|---|---|
x |
删除当前光标所在字符 |
X |
删除光标前的字符 |
dw |
删除从光标到下一个单词开头(不含空格) |
de |
删除从光标到当前/下一个单词结尾 |
d$ |
删除从光标到行尾 |
dd |
删除整行 |
d0 |
删除至行首(不包括光标) |
4.修改命令(删除 + 插入)
| 命令 | 含义 |
|---|---|
cw |
修改当前单词(删掉当前词,进入插入) |
ce |
修改至单词结尾 |
c$ |
修改至行尾 |
cc |
修改整行(等价于 S) |
| :s/old/new ( 文本替换 substitute) | 基本替换:只替换该行第一次出现的 old |
| :s/old/new/g ( g=global→ 全部都替换,不加只替换第一个) |
全部替换:将该行所有出现的 old 替换为 new |
| :10,20s/thee/the/g | 第几行替换 |
| :%s/thee/the/g | 全文件替换 |
| :%s/old/new/gc —>confirmation | 每次替换前请求我的确认 |
| O ————–>大写 | 此行上方插入行 |
| o ————–>小写 | 此行下方插入行 |
| r—————> | 替换单个字母 |
| R | 不退出一直从光标开始替换 |
5.撤销与重做
| 命令 | 含义 |
|---|---|
u |
撤销上一步操作 |
U |
撤销当前整行的所有更改 |
CTRL-R |
重做被撤销的操作(undo 的 undo) |
6.保存与退出
| 命令 | 含义 |
|---|---|
:w |
保存文件 |
:q |
退出 Vim |
:q! |
不保存退出(强制退出) |
:wq |
保存并退出 |
ZZ |
同 :wq(不需输入冒号) |
7. 其他命令
| 命令 | 含义 |
|---|---|
:help |
打开 Vim 的帮助系统 |
:!cmd |
执行外部命令(如 :!ls) |
~ |
切换字符大小写 |
. |
重复上一次普通模式下的操作 |
r<char> |
替换光标下的字符为 <char> |
J |
合并当前行和下一行 |
8. 查找命令
| / word |
跳转到word前面 |
|---|---|
| n | 继续向下找下一个匹配项(next) |
| N | 向上找上一个匹配项(Next,反方向) |
| ? word |
表示从当前位置向上搜索 |
| CTRL-O | 返回“之前”的光标位置(像网页的“后退”) |
| CTRL-I | 回到“之后”的光标位置(像网页的“前进”) |
| %+[]/()/{} | 自动跳转到另一边的括号 |
| :set ic | 忽略大小写 |
| :set hls is | 开启高亮和增量搜索 |
| :set noic | 关闭忽略大小写 |

9. 执行外部命令
1 | :!外部命令 |
::进入命令模式
!:告诉 Vim“我要执行一个 shell 命令”
ls、dir 等:正常的终端命令(比如列出目录)
10. 选择并保存文本

11.复制和粘贴
v进入选中 , y表示赋值yank , p 表示粘贴paste
| y————>yank | 表示复制 |
|---|---|
| yw | yank one word |
| yy | yank whole line |
| p | paste粘贴 |
12 . 帮助文档
:help w(窗口相关)
:help c_CTRL-D(命令行补全)
:help insert-index(插入模式索引)
:help user-manual(用户手册)
1 | :help user-manual —— Vim 官方用户手册,从基础到高级都有 |
vimtutor




| 命令 | 作用 |
|---|---|
:s/旧/新/ |
当前行替换第一个 |
:s/旧/新/g |
当前行替换全部 |
:#,#s/旧/新/g |
替换指定行范围中全部 |
:%s/旧/新/g |
替换整个文件中全部 |
:%s/旧/新/gc |
替换整个文件,并逐个确认 |