Vim
Vim介绍
VIM 是 Linux 系统上一款文本编辑器,它是操作 Linux 的一款利器。
Vim 常用的四个模式:
正常模式 (Normal-mode)
一般用于浏览文件,也包括一些复制、粘贴、删除等操作。这时击键时,一些组合键就是
vim的功能键,而不会在文本中键入对应的字符。插入模式 (Insert-mode)
简单的来说,就是编辑文本的模式。
命令模式 (Command-mode)
在正常模式中,按下
:(冒号)键或者/(斜杠),会进入命令模式。在命令模式中可以执行一些输入并执行一些 VIM 或插件提供的指令,就像在shell里一样。这些指令包括设置环境、文件操作、调用某个功能等等。可视模式 (Visual-mode)
在正常模式按下
v, V, <Ctrl>+v,可以进入可视模式。可视模式中的操作有点像拿鼠标进行操作,选择文本的时候有一种鼠标选择的即视感,有时候会很方便。
Vim使用
文件打开、切换、保存
| 文件外命令 | 文件内命令 | 说明 | 备注 |
|---|---|---|---|
| vim file1 | 打开file1文件 | 打开单个文件 | |
| vim file1 file2 … | 打开file1,file2文件 | 打开多个文件 | |
| :ls | 列出Vim打开的所有文件 | 在上述打开多个文件的基础上使用 | |
| :b2 | 在显示屏上显示第2个文件 | 切换到第2个文件显示 | |
| vim -On file1 file2 … | 左右分屏显示多个文件 | ||
| vim -on file1 file2 … | 上下分屏显示多个文件 | ||
| Ctrl+w s | 上下分割当前打开的所有文件 | 在打开多个文件的基础上使用 | |
| :sp file | 上下分割当前文件和新打开的文件 | ||
| Ctrl+w v | 左右分割当前打开的所有文件 | 在打开多个文件的基础上使用 | |
| :vsp file | 左右分割当前文件和新打开的文件 | ||
| Ctrl+w h | 将当前光标移动到左边的分屏 | ||
| Ctrl+w l | 将当前光标移动到右边的分屏 | ||
| Ctrl+w H | 将当前光标所在分屏移动到左边 | ||
| Ctrl+w L | 将当前光标所在分屏移动到右边 | ||
| Ctrl+w j | 将当前光标移动到下边的分屏 | ||
| Ctrl+w k | 将当前光标移动到上边的分屏 | ||
| Ctrl+w J | 将当前光标所在分屏移动到上边 | ||
| Ctrl+w K | 将当前光标所在分屏移动到下边 | ||
| :w | 保存当前对文件的修改,但是不退出文件 | ||
| :w! | 强制保存但是不退出文件 | ||
| :w file | 保存当前的文件修改到 file 文件当中 | ||
| :q! | 退出文件,对文件的修改不做保存 | ||
| :qa! | 退出所有的文件并不做保存 | ||
| :wq | 退出文件并保存对文件的修改 | ||
| :x | 退出文件并保存对文件的修改 | ||
| :e file | 打开另一个文件 | ||
| :e! | 放弃对文件的所有修改,恢复文件到上次保存的位置 | ||
| :saveas file | 另存为 file | ||
:bn和:bp |
:bn 和 :bp 进行上一个文件或者下一个文件的切换 |
文件编辑
| 命令 | 说明 |
|---|---|
i |
在光标所在的字符之前插入需要录入的文本 |
I |
在光标所在行的行首插入需要录入的文本 |
a |
在光标所在的字符之后插入需要录入的文本 |
A |
在光标所在行的行尾插入需要录入的文本 |
o |
光标所在行的下一行行首插入需要录入的文本 |
O |
光标所在行的上一行行首插入需要录入的文本 |
s |
删除光标所在处的字符然后插入需要录入的文本 |
S |
删除光标所在行,在当前行的行首开始插入需要录入的文本 |
光标移动
| 命令 | 说明 |
|---|---|
| h | 向左移动 |
| j | 向下移动 |
| k | 向上移动 |
| l | 向右移动 |
0 |
移动到行头 |
^ |
移动到本行的第一个不是 blank 字符 |
$ |
移动到行尾 |
g_ |
移动到本行最后一个不是 blank 字符的位置 |
w |
光标移动到下一个单词的开头 |
e |
光标移动到下一个单词的结尾 |
b |
光标移动到上一个单词的开头 |
fa |
移动到本行下一个为 a 的字符处 |
nG |
光标定位到第 n 行的行首 |
gg |
光标定位到第一行的行首 |
G |
光标定位到最后一行的行首 |
H |
光标定位到当前屏幕的第一行行首 |
M |
光标移动到当前屏幕的中间 |
L |
光标移动到当前屏幕的尾部 |
zt |
把当前行移动到当前屏幕的最上方,也就是第一行 |
zz |
把当前行移动到当前屏幕的中间 |
zb |
把当前行移动到当前屏幕的尾部 |
% |
匹配括号移动,包括 ( , { , [ 需要把光标先移动到括号上 |
* |
匹配光标当前所在的单词,移动光标到下一个匹配的单词 |
# |
匹配光标当前所在的单词,移动光标到上一个匹配的单词 |
翻页操作
| 命令 | 说明 |
|---|---|
ctrl+f |
查看下一页内容 |
ctrl+b |
查看上一页内容 |
撤销和恢复
| 命令 | 说明 |
|---|---|
u |
撤销刚才的操作 |
ctrl + r |
恢复撤销操作 |