一、vim命令的三种模式
Vim中有三种模式:编辑模式、输入模式、末行模式。使用vim命令打开文件之后默认处于编辑模式下。
编辑模式-->输入模式:
i:在当前光标所在字符的前面,转换成为输入模式
a:在当前光标所在字符的后面,转换为输入模式
o:在当前光标所在行的下方新建一行,并转换为输入模式
I:在当前光标所在行的行首,转换为输入模式
A:在当前光标所在行的行尾,转换为输入模式
O:在当前光标所在行的上方新建一行,并转换成为输入模式
输入模式-->编辑模式:
ESC
编辑模式-->末行模式:
:
末行模式-->编辑模式:
ESC,ESC
输入模式不能直接转换到末行模式,必须先转换成为编辑模式再转换到末行模式。
二、文件的打开和关闭
1、打开文件
vim +# FILENAME:打开文件,并定位到文件的第#行
vim + FILENAME:打开文件,并定位到最后一行
vim +/PATTERN :打开文件,并定位到第一次被PATTERN匹配到的行的行首
打开文件之后默认处于编辑模式
2、关闭文件
末行模式下关闭文件:
输入 | 功能 |
---|---|
:q | 退出 |
:q! | 不保存并退出 |
:wq或者:x | 保存并退出 |
:w | 保存 |
:w! | 强行保存 |
编辑模式下退出:
ZZ:保存并退出
强行退出:
Ctrl+C,使用这种方式的结果就是会产生.swp文件,这种文件会保存未保存的内容以便于下一次编辑文件的时候进行恢复,所以比较麻烦,强烈不建议直接Ctrl+C退出,按照正常流程退出的话就不会产生这种文件了。
三、编辑模式下的操作
使用vim大多数情况下都是在编辑模式下操作,编辑模式是vim中使用率最高的模式。
1、光标移动
逐字符移动光标:
快捷键 | 功能 |
---|---|
h | 向左移动一个字符 |
j | 向下移动一个字符 |
k | 向上移动一个字符 |
l | 向右移动一个字符 |
#h | j | k | l | 向 左|下|上|右 移动一个字符 |
逐单词移动光标:
快捷键 | 功能 |
---|---|
w | 跳转到下一个单词的首部 |
b | 跳转到上一个单词的首部 |
e | 跳转到下一个单词的尾部 |
#w | 跳转到下#个单词的首部 |
#b | 跳转到上#个单词的首部 |
#e | 跳转到下#个单词的尾部 |
行内跳转:
快捷键 | 功能 |
---|---|
0 | 跳转到绝对行首 |
$ | 跳转到绝对行尾 |
^ | 跳转到行首第一个非空白字符处 |
行间跳转:
快捷键 | 功能 |
---|---|
gg | 跳转到第一行 |
G | :$ | 跳转到最后一行 |
#G | :# | 跳转到第#行 |
翻屏跳转:
快捷键 | 功能 |
---|---|
Ctrl+f | 向下翻一屏 |
Ctrl+b | 向上翻一屏 |
Ctrl+d | 向下翻半屏 |
Ctrl+u | 向上翻半屏 |
2、删除操作
删除字符:
快捷键 | 功能 |
---|---|
x | 删除光标所在处的字符 |
#x | 删除光标所在处及向后的共#个字符 |
删除单词:
快捷键 | 功能 |
---|---|
[#]dw | 删除光标所在处的#个单词 |
[#]db | 删除光标所在处之前的#个单词 |
[#]de | 删除光标所在处之后的#个单词,注意和dw之间的区别 |
删除行:
快捷键 | 功能 |
---|---|
dd | 删除光标所在处的行 |
#dd | 删除当前光标所在行以及向下共#行 |
3、复制粘贴
复制: 使用y命令,使用方法和d命令完全相同,比如yw
表示复制光标所在处的单词,yy
复制当前行。
粘贴: 使用d命令删除的内容和使用y命令复制的内容都保存到了系统粘贴板上,使用p或者P命令能够粘贴到指定的位置上。
- p命令:如果复制或删除的是非整行则粘贴至当前光标所在字符的后面,如果复制或删除的是整行,则会粘贴到当前光标所在行的下方。
- P命令:如果复制或删除的是非整行则粘贴至当前光标所在字符的前面,如果复制或删除的是整行,则会粘贴到当前光标所在行的上方。
4、撤销和反撤销
快捷键 | 功能 |
---|---|
u | 撤销上一次操作 |
#u | 撤销最近#次操作 |
Ctrl+r | 反撤销最近一次操作 |
5、可视化
快捷键 | 功能 |
---|---|
v | 按照字符选取 |
V | 按照行选取 |
6、查找
快捷键 | 功能 |
---|---|
/ | 向下查找 |
? | 向上查找 |
7、替换
替换的命令语法和sed命令语法完全相同
ADDR1,ADDR2 s/PATTERN/string/gi
可以使用1,$指定全文范围,但是可以使用%代替之。
四、末行模式下的操作
1.显示或者取消显示行号
命令 | 功能 |
---|---|
:set number | set nu | 显示行号 |
:set nonumber | set nonu | 不显示行号 |
2.显示忽略或者区分字符大小写
命令 | 功能 |
---|---|
:set ignorecase | set ic | 忽略大小写 |
:set noignorecase | set noic | 区分大小写 |
3.设定自动缩进
命令 | 功能 |
---|---|
:set autoindent | set ai | 设置自动缩进 |
:set noautoindent | set noai | 取消自动缩进 |
4.查找到的文本高亮显示或者取消
命令 | 功能 |
---|---|
:set hlsearch | 查找到的文本高亮显示 |
:set nohlsearch | 取消查找到的文本高亮显示 |
5.语法高亮
命令 | 功能 |
---|---|
:syntax on | 语法高亮 |
:syntax off | 取消语法高亮 |
五、配置文件
命令 | 功能 |
---|---|
/etc/vimrc | 全局配置文件 |
~/.vimrc | 个人配置文件 |
注意:本文归作者所有,未经作者允许,不得转载