几乎所有的编辑器都有插入和执行命令两种模式。
- 大多数编辑器:命令目录(鼠标或者键盘驱动),组合键(ctrl\alt),鼠标输入
- vi和Vim 仅通过键盘在这些模式间切换,不使用菜单和鼠标,最小化组合键的操作,
提高速度和效率。
vim6种基本模式
1. 普通模式(默认模式)
使用编辑器命令,比如光标移动,文本删除等
Vim强大的编辑来自于其普通模式命令
普通模式命令往往需要一个操作符结尾
-
dd
删除当前行
第一个"d"的后面可以跟另外的移动命令来代替第二个d -
j
移动到下一行
组合后:dj
删除当前行和下一行
也可以指定重复次数: -
2dd
也删除当前行和下一行
用户学习了各种文本间移动、跳转的命令,比没有模式的编辑器更加高效。
按a(append/追加)键或者i(insert/插入)键,进入插入模式
2.插入模式
这个模式中,大多数按键都会向文本缓冲中插入文本,esc
可以退出到普通模式
3.可视模式
与普通模式比较类似。
- 移动命令可以扩大(选择)高亮的文本区域。
高亮文本区域包括:字符、行、一块文本等。 - 使用非移动命令,在高亮文本区域类执行
- vim的“文本对象”可以像移动命令一样执行在高亮内容
4.选择模式
选择模式和windows上无模式编辑器类似
可以使用鼠标和光标键选择文本,键盘输入任何字符,会使用该字符替换高亮文本,
并自动进入选择模式。
5.命令行模式
命令行模式输入: 被解释并执行的文本。
执行完毕,vim返回到命令行之前的模式,一般是普通模式
执行命令 (:
键)
搜索命令 (?
或/
键)
过滤命令 (!
键)
6. Ex模式
与命令行模式类似,可以一次执行多条命令
使用:visual
退出Ex模式
普通、插入、命令行模式的切换
vim默认进入普通模式,
- 按a(append)或i(insert)进入插入模式
- 按
:
进入命令行模式(也就是shift+:
那个键), 输入wq
保存并退出命令行模式
在插入和命令行模式中:
按esc
或者ctrl+[
进入普通模式
进入Vim
- 使用vim命令进入vim界面,命令行输入:
- vim+文件名(没有就新建该文件)
$ vim practice_1.txt
$ vim
直接输入vim进入vim界面,但不会打开文件 - 进入命令行模式,输入:
:e 文件路径
也可以打开相应文件
游标移动
在普通模式下:
h
左
l
右
j
下
k
上
w
移动到下一个单词
b
移动到上一个单词普通模式进入插入模式,不同按键光标位置
i
当前光标位置进行编辑
a
光标位置后进行编辑
I
行首编辑
A
行末编辑
o
当前行行前插入一个新行
O
当前行行后插入一个新行
cw
光标位置移动到只有一个字符的位置
保存文档(命令行模式下)
: w
保存文档
: wq
保存文档并退出
: w 文件名
另存为其他文件名或保存到其他路径
退出Vim
- 命令行模式下退出
: q!
强制退出,不保存
: q
退出
: wq
保存并退出
: wq!
强制退出,并保存
: x
保存并退出
: w <文件路径>
另存为
: saveas 文件路径
另存为 - 普通模式下退出
shift+z+z
删除文本(普通模式下进行)
-
普通模式下删除文本信息
普通模式下使用如下命令进行文本删除:
x
删除光标位置字符
X
删除光标前一个字符(Vim 基本上都是 大前)
delete
同x,删除光标位置字符
dd
删除当前行
dw
删除一个单词(不适用中文)
dj
删除当前行与下一行(普通模式下j移动到下一行),同2dd
d$或D
删除至行尾
d^
删除至行首
dG
删除至文档尾
d1G
删除至文档首
命令前加上数字表示删除多行:2dd 3dd
结论
vim的精髓就在于命令键的组合,全键盘的操作,可以使你收不离开键盘输入区域即可完成所有的操作,那可真实即高效又炫酷的体验啊,当你掌握这项技能绝对可以秒掉其它不会用vim的程序员几条街(起码在气势上吧,当然还要除掉哪些只会Emacs的程序员,因为Emacs与Vim之间有场战争,感兴趣的可以看这里Emacs和Vim:神的编辑器和编辑器之神)