目录
[1. 文件打开方式](#1. 文件打开方式)
[2. 模式切换](#2. 模式切换)
[1. 移动与跳转](#1. 移动与跳转)
[2. 复制与粘贴](#2. 复制与粘贴)
[3. 剪切与撤销](#3. 剪切与撤销)
[1. 插入](#1. 插入)
[2. 替换](#2. 替换)
[1. 保存与退出](#1. 保存与退出)
[2. 查找与替换](#2. 查找与替换)
[3. 分屏显示](#3. 分屏显示)
[4. 命令执行](#4. 命令执行)
一、Vim概述
1. 文件打开方式
-
vim 文件路径:尽量用Tab补全文件名,若文件不存在则新建
-
vim +行数 文件路径:打开文件时,光标移动到指定行
-
vim +/关键字 文件路径:打开文件时,关键字高亮显示
2. 模式切换
-
命令模式 -> 编辑模式:a/A、i/I、o/O、r/R
-
命令模式 -> 末行模式:英文的冒号(Shift ;)
-
编辑模式 -> 命令模式:Esc
-
末行模式 -> 命令模式:Esc
-
编辑模式和末行模式相互转换:通过命令模式中转
二、命令模式
1. 移动与跳转
指令 | 作用 |
---|---|
h、← | 左移 |
l、→ | 右移 |
k、↑ | 上移 |
j、↓ | 下移 |
^ | 行首 |
$ | 行尾 |
gg | 文件首行 |
G | 文件末行 |
nG | 文件第n行 |
w、W | 下一单词 |
2. 复制与粘贴
指令 | 作用 |
---|---|
yy | 复制一行 |
nyy | 复制n行 |
y^ | 复制光标处到行首 |
y$ | 复制光标处到行尾 |
yw | 复制一个单词 |
ynw | 复制n个单词 |
yG | 复制到文件尾 |
y1G | 复制到文件首 |
p | 粘贴到下一行 |
P | 粘贴到上一行 |
3. 剪切与撤销
指令 | 作用 |
---|---|
x | 剪切一个字符 |
nx | 剪切n个字符 |
X | 剪切光标前一个字符 |
dd | 剪切一行 |
ndd | 剪切n行 |
d^ | 剪切到行首 |
d$ | 剪切到行尾 |
dG | 剪切到文件尾 |
d1G | 剪切到文件首 |
dw | 剪切一个单词 |
u | 撤销上一次操作 |
U | 撤销一行内的操作 |
三、编辑模式
1. 插入
指令 | 作用 |
---|---|
a | 光标后插入 |
A | 行末插入 |
i | 光标前插入 |
I | 行首插入 |
o | 下一行插入 |
O | 上一行插入 |
2. 替换
指令 | 作用 |
---|---|
r | 替换一个字符 |
R | 进入替换模式 |
Ctrl r | 撤销的恢复 |
在编辑模式下,底行会提示当期是"Insert模式"还是"Replace模式"。
四、末行模式
1. 保存与退出
指令 | 作用 |
---|---|
:w | 保存 |
:q | 退出 |
:! | 强制执行 |
:wq | 保存并退出 |
:q! | 强行退出,不保存新修改 |
:e 文件名 | 在原始窗口中打开新文件,旧文件保存 |
:e! | 放弃所有更改,重新编辑 |
:r 文件名 | 在光标下一行插入文件内容 |
2. 查找与替换
指令 | 作用 |
---|---|
:set nu | 显示行号 |
:数字n | 将光标移动到第n行 |
:/关键字 | 从文件头开始查找关键字,按n找下一个 |
:?关键字 | 从文件末开始查找关键字,按n找下一个 |
:s/str1/str2/p | 当前行str1替换成str2 |
:%s/str1/str2/p | 所有行str1替换成str2 |
3. 分屏显示
指令 | 作用 |
---|---|
:vs 文件名 | 分屏显示 |
:qall | 退出所有文件,不保存 |
:wqall | 保存并退出所有文件 |
:ctrl ww | 切换分屏 |
4. 命令执行
指令 | 作用 |
---|---|
:!命令 | 执行一条命令 |
:↑ | 查看上条命令 |
:↓ | 查看下条命令 |
在不同的Linux系统中,末行模式执行命令的格式不一致,比如 :!cmd 命令1 和 :!command 命令2