一、Vim的三种模式
Vim中有三种模式:编辑模式、输入模式、末行模式
使用vim命令打开文件之后默认处于编辑模式下。
1.编辑模式-->输入模式
i:在当前光标所在字符的前面,转换成为输入模式
a:在当前光标所在字符的后面,转换为输入模式
o:在当前光标所在行的下方新建一行,并转换为输入模式
I:在当前光标所在行的行首,转换为输入模式
A:在当前光标所在行的行尾,转换为输入模式
O:在当前光标所在行的上方新建一行,并转换成为输入模式
2.输入模式-->编辑模式
ESC
3.编辑模式-->末行模式
:
4.末行模式-->编辑模式
ESC,ESC
输入模式不能直接转换到末行模式,必须先转换成为编辑模式再转换到末行模式
二、打开文件
1.vim +# FILENAME:打开文件,并定位到文件的第N行
2.vim + FILENAME:打开文件,并定位到最后一行
3.vim +/PATTERN :打开文件,并定位到第一次被PATTERN匹配到的行的行首
打开文件之后默认处于编辑模式
三、关闭文件
1.末行模式下关闭文件
:q
退出
:q!
不保存并退出
:wq或者:x
保存并退出
:w
保存
:w!
强行保存
2.编辑模式下退出
ZZ:保存并退出
3.强行退出
Ctrl+C,使用这种方式的结果就是会产生.swp文件,这种文件会保存未保存的内容以便于下一次编辑文件的时候进行恢复,所以比较麻烦,强烈不建议直接Ctrl+C退出,按照正常流程退出的话就不会产生这种文件了。
四、光标移动(编辑模式)
1.逐字符移动光标
h
向左移动一个字符
j
向下移动一个字符
k
向上移动一个字符
l
向右移动一个字符
#h | j | k | l
向 左|下|上|右 移动一个字符
2.逐单词移动光标
w
跳转到下一个单词的首部
b
跳转到上一个单词的首部
e
跳转到下一个单词的尾部
#w
跳转到下#个单词的首部
#b
跳转到上#个单词的首部
#e
跳转到下#个单词的尾部
3.行内跳转
0
跳转到绝对行首
$
跳转到绝对行尾
^
跳转到行首第一个非空白字符处
4.行间跳转
gg
跳转到第一行
G | :$
跳转到最后一行
#G | :#
跳转到第#行
五、翻屏
Ctrl+f
向下翻一屏
Ctrl+b
向上翻一屏
Ctrl+d
向下翻半屏
Ctrl+u
向上翻半屏
六、删除
1.删除字符
x
删除光标所在处的字符
#x
删除光标所在处及向后的共#个字符
2.删除单词
[#]dw
删除光标所在处的单词
[#]db
删除光标所在处之前的一个单词
[#]de
删除光标所在处之后的一个单词,注意和dw之间的区别
3.删除行
dd
删除光标所在处的行
#dd
删除当前光标所在行以及向下共#行
七、复制和粘贴
1.复制,使用y命令,和d命令的使用方法完全相同。
2.粘贴
使用d命令删除的内容和使用y命令复制的内容都保存到了系统粘贴板上,使用p或者P命令能够粘贴到指定的位置上。
(1). p命令:如果复制或删除的是非整行则粘贴至当前光标所在字符的后面,如果复制或删除的是整行,则会粘贴到当前光标所在行的下方。
(2). P命令:如果复制或删除的是非整行则粘贴至当前光标所在字符的前面,如果复制或删除的是整行,则会粘贴到当前光标所在行的上方。
八、修改内容
使用c命令能够在编辑模式下删除指定内容并切换到输入模式,使用方法和d命令完全相同。
九、替换
r
替换光标所在处的字符
R
开启替换模式,适用于大量的替换操作
十、撤销和反撤销
u
撤销上一次操作
#u
撤销最近#次操作
Ctrl+r
反撤销最近一次操作
十一、可视化
v
按照字符选取
V
按照行选取
十二、查找
/
向下查找
?
向上查找
十三、替换
替换的命令语法和sed命令语法完全相同
ADDR1,ADDR2 s/PATTERN/string/gi
可以使用1,$指定全文范围,但是可以使用%代替之。
十四、使用vim编辑多个文件
1.单屏显示一个文件
vim FILE1 FILE2 FILE3...
:next
切换到下一个文件
:prev
切换到上一个文件
:last
切换到最后一个文件
:first
切换到第一个文件
:qa
全部
2.分窗口编辑多个文件
vim -o
水平分割显示
vim -O
垂直分割显示
Ctrl+w,j
光标移动到下面的窗口
Ctrl+w,k
光标移动到上面的窗口
qa
关闭所有窗口
十五、拆分窗口
Ctrl+w,s
水平分割窗口
Ctrl+w,v
垂直拆分窗口
Ctrl+w,j
光标移动到下面的窗口
Ctrl+w,k
光标移动到上面的窗口
qa
关闭所有窗口
十六、将文件中部分内容保存到另外一个文件
:ADDR1,ADDR2 w FILEPATH
十七、将另外一个文件的内容填充到当前文件中
:r FILENAME
十八、和Shell交互
!COMMAND
十九、高级话题
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
个人配置文件