*vim有三种模式:
-
编辑模式
-
插入模式
-
底行模式
*模式转换:
-
编辑模式-->插入模式:
-
i:insert,在当前光标前面插入
-
a:append,在当前光标的后一位插入
-
o:在当前光标的下方打开一个新行
-
I:在当前所在行的行首插入
-
A:在所在行的行尾插入
-
O:在光标的上一行打开一个新行
-
-
插入模式-->编辑模式:
-
ESC键
-
-
编辑模式-->底行模式:
-
敲:键
-
-
底行模式-->编辑模式:
-
ESC键
-
*关闭文件:
-
:q:退出
-
:q!:强制退出
-
:wq:保存并退出
-
:x:保存退出
-
:w 路径:将文件保存到路径
*光标的跳转:
-
一个字符一个字符的跳:
-
h:向左
-
l:向右
-
j:向下
-
k:向上
-
数字+命令:可以先输入一个数字,再输入上面四个命令,表示跳多少次
-
-
一个单词一个单词的跳:
-
w:下一个单词的词首
-
e:当前或下个单词的词尾,即如果当前正处于单词的词尾则跳到下个单词的词尾,否则调到当前单词的词尾
-
b:当前或上个单词的词首
-
数字+命令:可以先输入一个数字,再输入上面三个命令,表示跳多少次
-
-
行首行尾跳转:
-
^:跳转至行首的第一个非空白字符
-
0:跳转至行首
-
$:跳转至行尾
-
-
行间移动
-
数字+G:跳转至指定行
-
G:跳转至行尾
-
1G/gg:跳转至行首
-
-
除上面写的还有句子间移动(),段落间移动{}
*vim的翻屏操作:
-
ctrl + f:向文件尾部翻一屏
-
ctrl + b:向文件首部翻一屏
-
ctrl + d:向文件尾部翻半屏
-
ctrl + u:向文件首部翻半屏
*编辑命令:
这是编辑模式下,对文本进行操作的命令
-
删除命令:
-
x:删除光标处的字符
-
数字+x:删除光标起始处的n个字符
-
d:它能与光标跳转命令结合实现范围删除
-
例,d$:即删除光标到行尾的内容
-
还可以在命令前面加数字,表示执行几次删除
-
例,3dw:删除光标往后三个单词
-
-
dd:删除光标所在行。
-
前面可加数字表示删除几行,向下删除。
-
-
-
复制和粘贴命令:
-
粘贴:我们在vim中删除的字符并不立即消失,而是会被vim存在缓冲区中。所以删除命令与粘贴命令结合可以做出剪切。
-
p:缓冲区如果为整行,则粘贴在当前光标所在行的下方。否则,粘贴至光标所在处的后面
-
P:缓冲区如果为整行,则粘贴在当前光标所在行的上方。否则,粘贴至光标所在处的前面
-
-
复制:
-
y:操作方法与d命令类似,也能与光标跳转命令和数字结合使用。
-
yy:复制一整行
-
-
-
替换命令:
-
r:替换光标所在处的字符为输入字符,可与数字连用
-
-
操作撤销:
-
u:撤销操作
-
-
恢复撤销(撤销之前的撤销操作):
-
ctrl + r
-
-
重复前一个操作:
-
句号键
-
-
可视化操作:类似于鼠标光标选择文本的操作
-
v:按字符选定
-
V:按行选定
-
*底行模式:
-
地址定界:
-
特殊字符:
-
.:表示当前行
-
$:表示最后一行
-
%:表示全文,相当于 1,$
-
/正则表达式:也可以使用正则表达式,它们之间都能混合使用。
-
-
格式::start,end
-
m,n。m和n都表示数字。表示从第m行到第n行
-
m,+n:表示从m所在的行起始,加上n行
-
/pattern1,/pattern2:表示从第一次被pattern1匹配到的行开始,到第一次被pattern2匹配到的行结束
-
-
使用方式:
-
可以后跟编辑命令,如d,y,w,r
-
w 路径:表示保存选中的行到指定路径
-
-
-
查找:
-
/pattern:从当前光标所在地到文件尾部查找
-
?pattern:从当前光标所在地到文件首部查找
-
n:将光标移动到下一个匹配到的地方
-
N:将光标移动到上一个匹配到的地方
-
-
查找并替换:
-
格式:s/要查找的内容/要替换的内容/修饰符,一般还需要在s前边加上要匹配的范围
-
要查找的内容可以使用模式
-
替换的内容不能使用,但是可以使用/1,/2等向后引用,还可以使用"&"符号引用前面查找到的所有内容。
-
例,给所有开头为空白字符的行首加#号::%s/^[[:space:]]/#&/
-
-
修饰符:
-
i:忽略大小写
-
g:全局替换,默认情况下,只替换一行中第一次出现的。
-
-
还可以将s中的/分隔符换为其他特殊字符,如,#,@
-
*多文件模式:
-
格式:vim 文件1 文件2 文件3 ……
-
使用多文件模式可以同时打开多个文件,但是vim并不会把他们连在一起显示,而是一次只显示一个文件,我们可以通过底行输入命令来切换文件显示:
-
:next:显示下一个文件
-
:prev:上一个
-
:last:最后一个
-
:first:第一个
-
-
退出命令:
-
wall:保存所有
-
qall:退出所有
-
*窗口分割模式:
vim支持分屏操作,可以单文件分屏,也可以多文件分屏
-
多文件窗口分割:
-
格式:vim -o|O 文件1 文件2 ……
-
o:水平分割
-
O:垂直分割
-
-
-
单文件窗口分割:
-
ctrl +w + s:split,水平分割
-
ctrl +w + v:vertical,垂直分割
-
-
窗口的切换:
-
命令:ctrl + w +方向键
-
例,如果是水平分割则有上下两个屏幕,要想切换屏幕则按ctrl + w + ↓ | ↑
-
*vim配置:
可以通过配置vim特性来定制vim
-
vim的配置修改:
-
通过文件配置:
-
全局配置文件:/etc/vimrc,对所有用户生效。
-
个人配置文件:~/.vimrc,默认是不存在的,需要自己创建。仅对当前用户有效。
-
-
通过底行配置:仅在当前vim进程中有效
-
-
vim修改命令:
-
行号:
-
显示行号:set number ,简写set nu
-
取消显示:set nonu
-
-
括号匹配:
-
匹配括号:set sm
-
取消匹配:set nosm
-
-
自动缩进:
-
设置缩进:set ai
-
取消缩进:set noai
-
-
搜索高亮:
-
设置高亮:set hlsearch
-
取消高亮:set nohlsearch
-
-
语法高亮:
-
设置:syntax on
-
取消:syntax off
-
-
忽略字符大小写:
-
启用:set ic
-
禁用:set noic
-
-