这四篇博客将一起学习 vim 的使用,下面进进入第一篇:快速入门
本篇博客将学习 vim 中的不同模式和一些基本操作
知识点
- Vim 中的六种基本模式
- Vim 中的基本操作
1 vim 模式介绍
从 vi 衍生出来的 Vim 具有多种模式。Vim 和 vi 一样,仅仅通过键盘在这些模式之中切换,并且最小化组合键的操作,可以大大提高效率。
Vim 具有 6 种基本模式和 5 种派生模式,我们这里只简单介绍下 6 种基本模式,别害怕,这里只是简单了解下:
(1)普通模式(Normal mode)
在普通模式中,用的编辑器命令,比如移动光标,删除文本等等。这是 Vim 启动后的默认模式。
Vim强大的编辑能力来自于普通模式命令。普通模式命令往往需要一个操作符结尾。例如普通模式命令 dd 删除当前行,但是第一个"d"的后面可以跟另外的移动命令来代替第二个 d ,比如用移动到下一行的 “j” 键就可以删除当前行和下一行。另外还可以指定命令重复次数, 2dd(重复 dd 两次),和 dj 的效果是一样的。学习了各种各样的文本间移动/跳转的命令和其他的普通模式的编辑命令,并且能够灵活组合使用的话,文本编辑更高效。
在普通模式中,有很多方法可以进入插入模式。比较普通的方式是按 a (append/追加)键或者 i(insert/插入)键。
(2)插入模式(Insert mode)
在这个模式中,大多数按键都会向文本缓冲中插入文本。大多数新用户希望文本编辑器编辑过程中一直保持这个模式。在插入模式中,可以按 ESC 键回到普通模式。
(3)可视模式(Visual mode)
这个模式与普通模式比较相似。但是移动命令会扩大高亮的文本区域。高亮区域可以是字符、行或者是一块文本。当执行一个非移动命令时,命令会被执行到这块高亮的区域上。Vim 的"文本对象"也能和移动命令一样用在这个模式中。
(4)选择模式(Select mode)
这个模式中,可以用鼠标或者光标键高亮选择文本,不过输入任何字符的话,Vim 会用这个字符替换选择的高亮文本块,并且自动进入插入模式。
(5)命令行模式(Command line mode)
在命令行模式中,输入的文本被解释成并执行。例如执行命令( : 键),搜索( / 和?键)或者过滤命令( ! 键)。在命令执行之后,Vim 返回到命令行模式之前的模式,通常是普通模式。
(6)Ex 模式(Ex mode)
这和命令行模式比较相似,在使用 :visual 命令离开 Ex 模式前,可以一次执行多条命令。
常用到就是普通模式、插入模式和命令行模式,这里也只涉及这三个常用模式的内容,其他了解即可。
2 三种模式切换
vim 启动进入普通模式,处于插入模式或命令行模式时只需要按 Esc 或者 Ctrl+[ 即可进入普通模式。普通模式中按 i(插入)或 a (附加)键都可以进入插入模式,普通模式中按 : 进入命令行模式。命令行模式中输入 wq 回车后保存并退出 vim。
3 进入 vim
3.1 使用 vim 命令进入 vim 界面
vim 后面加上要打开的已存在的文件名或者不存在(则作为新建文件)的文件名。 打开 Xfce 终端,例如:
$ vim test.c
直接使用 vim 也可以打开 vim 编辑器,但是不会打开任何文件。
$ vim
进入命令行模式后输入 :e 文件路径 同样可以打开相应文件。
3.2 游标移动
在进入 vim 后,按下 i 键进入插入模式。在该模式下您可以输入文本信息,下面请输入如下信息:
#include<iostream>
using namespace std;
int main(){
cout << "hello world!" << endl;
return 0;
}
按 Esc 进入普通模式,在该模式下使用方向键或者 h,j,k,l 键可以移动游标。
按键 | 说明 |
---|---|
h | 左 |
l | 右(小写L) |
j | 下 |
k | 上 |
w | 移动到下一个单词 |
b | 移动到上一个单词 |
4 进入插入模式
在普通模式下使用下面的键将进入插入模式,并可以从相应的位置开始输入
命令 | 说明 |
---|---|
i | 在当前光标处进行编辑 |
I(大写的 i) | 在行首插入 |
A | 在行末插入 |
a | 在光标后插入编辑 |
o | 在当前行后插入一个新行 |
O | 在当前行前插入一个新行 |
cw | 替换从光标所在位置后到一个单词结尾的字符 |
注意:每次要先回到普通模式才能切换成以不同的方式进入插入模式
5 保存文档
命令行模式下保存文档
从普通模式输入 : 进入命令行模式,输入 w 回车,保存文档。输入 :w 文件名 可以将文档另存为其他文件名或存到其它路径下
6 退出vim
6.1 命令行模式下退出 vim
从普通模式输入 : 进入命令行模式,输入 wq 回车,保存并退出编辑
以下为其它几种退出方式:
命令 | 说明 |
---|---|
:q! | 强制退出,不保存 |
:q | 退出 |
:wq! | 强制保存并退出 |
:w <文件路径> | 另存为 |
:saveas 文件路径 | 另存为 |
:x | 保存并退出 |
:wq | 保存并退出 |
6.2 普通模式下退出 vim
普通模式下输入 Shift+zz 即可保存退出 vim
7 删除文本
普通模式下删除 vim 文本信息
进入普通模式,使用下列命令可以进行文本快速删除:
命令 | 说明 |
---|---|
x | 删除游标所在的字符 |
X | 删除游标所在前一个字符 |
Delete | 同 x |
dd | 删除整行 |
dw | 删除一个单词(不适用中文) |
d$或D | 删除至行尾 |
d^ | 删除至行首 |
dG | 删除到文档结尾处 |
d1G | 删至文档首部 |
除此之外,你还可以在命令之前加上数字,表示一次删除多行,如:
2dd表示一次删除2行
vim 的精髓就在于命令键的组合,全键盘的操作,可以使你手不离开键盘输入区域即可完成所有的操作,非常高效!