整体介绍

Vim修改器创造者是Bram Moolenaar。Vim是一个类似于Vi的高度可定制的文本修改器,在Vi的基础上改善和增强了许多新特性。Vim是自在软件(赋予用户运行、仿制、分发、学习、修正并改善软件的这些自在的软件)。

Vim的优点:1. 高功率移动;2. 高效的输入。

Vim的形式分能够分为:基本形式派生形式两大类。

六种基本形式

  1. 一般形式(Normal mode)
  2. 刺进形式(Insert mode)
  3. 可视形式(Visual mode)
  4. 挑选形式(Select mode)
  5. 指令行形式(Command line mode)
  6. Ex形式(Ex mode)

五种派生形式

  1. 操作符等候形式
  2. 刺进一般形式
  3. 刺进可视形式
  4. 刺进挑选形式
  5. 替换形式

Vim的基本常用用法将从以下内容翻开:

  1. 光标移动
  2. 刺进形式
  3. 一般形式
  4. 退出修改器
  5. motion操作规模的指令
  6. 删去指令
  7. 数字的运用
  8. 吊销和康复指令
  9. 张贴指令
  10. 复制指令
  11. 替换指令
  12. 修正指令
  13. 文件信息
  14. 行号跳转
  15. 定位括号
  16. 内容缩进
  17. 内容查找
  18. 执行shell指令
  19. 文件另存为
  20. 文件内容合并
  21. 翻开多个文件

1. 光标移动

运用hjkl来移动光标,为了坚持和Vi的通用性。

在早期计算机键盘没有方向键。

削减箭头键和字母键之间的来回切换

hjkl所对应的移动方向:

按键 意义
h 光标向左移动
j 光标向下移动
k 光标向上移动
l 光标向右移动

2. 刺进形式

进入刺进形式的各种方法及其意义:

按键 意义
i 在光标前边进入刺进形式
I 在光标所内行的行首进入刺进形式
a 在光标所的后边进入刺进形式
A 在光标的所内行的行尾进入刺进形式
o 在光标所内行的下方刺进空行并进入刺进形式
O 在光标所内行的上方刺进空行并进入刺进形式
s 删去光标指定的字符并进入刺进形式
S 将光标所内行铲除并进入刺进形式

留意

  • S 是铲除而非删去,是将本行字符删去,但保留该行所占有的方位。

3. 一般形式

文本修改器的初始化是进入指令形式。

在刺进形式下,可经过按ESC键,退出刺进形式,进入一般形式。

4. 退出修改器

方法一在指令行形式下

输入:进入指令行形式

指令 意义
q! 退出但不保存
wq 退出并保存

方法二在一般形式下

按住shift之后,按下z键两次,即可保存并退出。

5. motion操作规模的指令

按键 意义
0 将光标定位到行首的方位
将光标定位到行首的方位,与0功用相同
$ 将光标定位到行尾的方位
b 将光标定位到光标地点单词的开端处
e 将光标定位到光标地点单词的结尾处
w 将光标定位到下一个单词的起先处,从当时方位地点的单词跳至下一个单词
gg 将光标定位到文件的开头
G 将光标定位到文件的结尾

留意

  • 单词:在英文中,特殊符号、空格和特殊符号来区别为一个单词;而在中文中,标签符号和空格来区别一个单词

6. 删去指令

方法一在刺进形式下

能够运用方向键,移动至要删去的方位,然后按下Backspace或许Delete键进行删去。

方法二在一般形式下

删去单一字符能够运用 x 指令,先经过hjkl进行定位到对应方位,按下x进行删去当时光标选中的字符。

删去更多字符能够运用 d 指令,格局: d<motion>

按键 意义
d0 删去从光标当时方位(不包括)到该行行首的一切字符
d^ 删去从光标当时方位(不包括)到该行行首的一切字符,与d0功用相同
d$ 删去从光标当时方位(包括)到该行行尾的一切字符
db 删去从光标当时方位(不包括)到单词的开端处的一切字符
de 删去从光标当时方位(包括)到单词的结尾处的一切字符
dw 删去从光标当时方位(包括)到下个单词开端处的一切字符
dh 删去光标前边的一个字符
dl 删去光标指定的字符,与x指令相同
dj 删去光标所内行以及下一行的一切字符
dk 删去光标所内行以及上一行的一切字符
dd 删去光标所内行的字符
dgg 删去光标所内行到文件开头的一切字符
dG 删去光标所内行到文件结尾的一切字符

留意

  • 一切删去操作,并非真实的删去,它会将该内容放在一个Vim的缓冲区中,相当于Windows的剪贴板的功用。

7. 数字的运用

数字 motion = 重复多个motion操作

例如: d 数字 motion = 删去多个motion规模

8. 吊销和康复指令

吊销指令:在一般形式下

按键 意义
u 表明吊销最终一次修正
U 表明吊销对整行的修正

康复指令:在一般形式下

  • Ctrl r 快捷键能够康复吊销的内容

9. 张贴指令

因为Vim下运用的删去指令,是会将删去的东西放到Vim寄存器中。所以能够将最终一次改内容张贴到新的光标方位。

张贴指令:在一般形式下

按键 意义
p 表明将最终一次删去的内容张贴到光标方位之后
P 表明将最终一次删去的内容张贴到光标方位之前

留意

  • 假如张贴的是整行单位,那么p指令是在光标的下一行开端张贴。
  • 假如复制的对错整行的部分字符串,那么p指令将在光标后开端张贴。

10. 复制指令

Vim 用 y 指令完成复制,格局:y [数字] motion。

11. 替换指令

Vim 用 r 指令用于替换光标地点的字符。

用法:先将光标移动到需求替换的字符处,按下 r 键,然后输入新的字符。

留意

  • 在键入 r 指令之前输入数字,表明从光标处开端,将多个字符统一替换为新字符。

经过 R 能够进入替换形式,在替换形式中能够覆盖当时已经光标停留方位的内容。但不会进入刺进形式。

12. 修正指令

修正指令跟替换指令是不一样的,修正会进入刺进形式,替换不会进入刺进形式。

Vim 用 c 指令完成修正:c [数字] motion。

按键 意义
c0 删去从光标当时方位(不包括)到该行行首的一切字符,并进入刺进形式
c^ 删去从光标当时方位(不包括)到该行行首的一切字符,并进入刺进形式,与d0功用相同
c$ 删去从光标当时方位(包括)到该行行尾的一切字符,并进入刺进形式
cb 删去从光标当时方位(不包括)到单词的开端处的一切字符,并进入刺进形式
ce 删去从光标当时方位(包括)到单词的结尾处的一切字符,并进入刺进形式
cw 删去从光标当时方位(包括)到下个单词开端处的一切字符,并进入刺进形式
ch 删去光标前边的一个字,并进入刺进形式符
cl 删去光标指定的字符,并进入刺进形式
cj 删去光标所内行以及下一行的一切字符,并进入刺进形式
ck 删去光标所内行以及上一行的一切字符,并进入刺进形式
cc 删去光标所内行的字符,并进入刺进形式

留意:修正 != 删去 刺进,有纤细改变。

# 源字符串:
test 1234
# 光标在1上执行d$,test后没有空格:
test
# 光标在1上执行c$,test有空格:
test 

13. 文件信息

Vim 经过 Ctrl g 快捷键,检查文件信息。

14. 行号跳转

方法一: 在一般形式下

行号 G

方法二在指令行形式下

:行号

15. 定位括号

按下 % 键,快速定位另一个括号,主要定位的()、[]、{}三种。

16. 内容缩进

方法一在修改形式下

运用 Tab 键

方法二在一般形式下

按键 意义
>> 表明缩进
<< 表明反缩进

运用 数字 缩进符,表明当时光标之后的数字行进行对应的缩进/反缩进。

方法三在可视形式下

经过 v 键进入可视形式下。

经过hjkl选中对应的行,再输入缩进符,即可对选中内容进行缩进/反缩进操作。

17. 内容查找

在一般形式下

按键 意义
/[字符串] 从当时光标开端,向后进行查找
?[字符串] 从当时光标开端,向前进行查找

经过 n 指令进行跳转到查找成果的下一个。
经过 N 指令进行跳转到查找成果的上一个。

留意

  • 查找的成果假如一向向后跳转,当从最终一个跳转到开端方位时,会提示:search hit BOTTOM, continuing at TOP。
  • 查找的成果假如一向向前跳转,当从第一个跳转到最终一个时,会提示:search hit TOP, continuing at BOTTOM。

取消查找成果的高亮显示:在指令行形式下,输入 nohl 回车,即可。

留意

  • .、*、[、]、^、%、/、?、~和$,这10个符号,在查找时需求加上进行转义处理。

经过指令行,进行查找并替换:在指令行形式下

  • 经过 s/查找的字符/被替换的字符。光标的所内行的一个查找的字符内容改为被替换的字符
  • 经过 s/查找的字符/被替换的字符/g。光标的所内行的一切查找的字符内容改为被替换的字符
  • 经过 %s/查找的字符/被替换的字符/g。文件内的一切查找的字符内容改为被替换的字符
  • 经过 %s/查找的字符/被替换的字符/gc。文件内的一切查找的字符内容经过逐个问询的方法判断是否被替换的字符替换
  • 经过 开端方位,结束方位s/查找的字符/被替换的字符/gc。文件内从开端行到结束行查找的字符内容悉数改为被替换的字符

18. 执行shell指令

:!shell指令,经过Enter键进行回来当时正在修改的文件。

19. 文件另存为

整个文件进行另存为,在指令行形式下,经过 :w 新的文件名 指令保存

部分内容另存为,在可视形式下,先经过hjkl进行选中另存为的内容,再经过 :w 新的文件名 保存。

文件另存为的新文件已经存在,则在w后参加!即可。

20. 文件内容合并

在指令行形式下,经过 :r 文件名,将文件名的内容添加至光标下方内容。

21. 翻开多个文件

Vim 经过 -o 或许 -O 参数,能够翻开多个文件,并进行水平或许笔直排列。

留意

  • 能够经过 Ctrl w w 将光标切换到下一个文件。
  • 对于笔直并排的文件:运用 Ctrl w 上、下方向,表明上、下切换文件。
  • 对于水平并排的文件:运用 Ctrl w 左、右方向,表明左、右切换文件。

针对多个翻开的文件,一起关闭。经过在指令行形式输入 :wqa 或 :qa!

指令 意义
qa! 悉数退出但不保存
wqa 悉数退出并保存