命令模式:vim filename 后进入的就是命令模式;常用于查看内容;
输入模式:输入模式下在末行有“ -- INSERT --”字样;常用于输入和修改文本内容;
末行模式:末行模式下在末行有“:”字样;可以执行一些命令,可保存退出;
2、vim打开文件语法
vim filename
vim +n filename # 打开文件自动跳转到n行,+不能省略
vim + filename #打开文件自动跳转到末行,+不能省略
3、命令模式界面操作
从命令模式到输入模式
i:光标原位置不动进入输入模式
I:将光标移到到行首,然后进入输入模式
a:将光标向后移到一位,然后进行输入模式
A:在当前行尾插入
o:在光标所在行的下面新开一行,然后进入输入模式
O:在光标所在行的上面新开一行,然后进入输入模式
命令模式下的常用操作
①:复制、移动删除文件内容
yy:复制光标所在的行
nyy:复制光标所在的行开始向下的N行
dd:剪切光标所在的行
ndd:剪切光标所在的行开始向下的N行
p(小):粘贴到光标所在行的下面
P(大):粘贴到光标所在行的上面
D:删除光标所在位置到行尾的内容
dG:删除光标所在的行到末尾全部的行
②撤销和重复执行的相关操作
u:撤销上次所指向的操作(相当于windows中ctrl+z)
nu:撤销n次操作(n的值最大是50)
ctrl+r:撤销刚刚所撤销的那个操作(相当于windows中ctrl+y)
. :重复执行上一次所做的操作
③跳转相关的操作
nG:跳转到第n行
G:直接跳转到最后一行
0:跳转到行首(“home键”会认为行首的空格也是内容,此时会跳转到空格的最前面)
^:跳转到行首(不认为行首的空格是内容,此时会跳转到第一个非空字符)
$:跳转到行尾(等同"End"键)
ctrl+f:向下翻一屏
ctrl+b:向上翻一屏
h:向左(nh:移动n个字符)
l:向右(nl:移动n个字符)
j:向下等同Enter键(nj:移动n行)
k:向上(nk:移动n行)
w:移到下一个单词的词首
e:跳至当前或下一个单词的词尾
b:跳至当前或上一个单词的词首
nw:表示移动n个单词
/string:在文件中搜索指定的字符串(string为字符串)
n:正向查找
N:反向查找
⑤替换相关操作(基本不怎么用)
r:替换一个字符(替换完成之后,自动返回到编辑模式)
R:进入替换模式(要想退出替换模式,按esc)
命令行多行注释
块选择模式
(1)首先按键盘上的ESC进入命令行模式
(2)再按Ctrl+V进入VISUAL BLOCK模式
(3)利用上下左右键调整需要注释多少行以及行的宽度
(4)再按Shift+i或s进入插入模式
(5)输入代表注释的符号,比如#
(6)再次按ESC键,这时就可完成多行注释(可能需要等上一会,不要着急)
(1)首先按键盘上的ESC进入命令行模式
(2)再按Ctrl+V进入VISUAL BLOCK模式
(3)利用上下左右键调整需要去注释多少行以及行的宽度
(4)再按d即可完成去注释
4、末行模式命令操作
set nu:显示行号
set nonu:关闭行号
②跳转(一般不用)
num:直接跳转到第num行
$:直接跳转到最后一行
③取消匹配到的内容的高亮
start,end s/原始内容/替换内容/g
(分隔符不一定是/,只要是三个相同的符号即可)
如果不用g,那么仅仅会替换每行的第一个找到的对象
如果使用g,那么会将范围内所有找到的对象全部做替换
start,end 之间为“,”(逗号)
^:表示行首
$:表示行位
:23,56 s/cjk/fda/g #将23行到56行中所有的cjk替换成fda
:1,$ s/cjk/fda/g #第一行行到末尾行所有的cjk替换成fda
:% s/cjk/fda/g #第一行行到末尾行所有的cjk替换成fda
:% s#^#/#g #第一行到末尾行行首添加/
:1,5 s/^/ /g #1-5行首添加空格
:1,$ s/^ //g #将全部行首的空格删除
:1,$ s/^#//g #将全部行首的#删除
:1,5 s/a//g #将1-5行中的a删除
:1,5 s/$/#/g #在1-5行的末尾添加一个#
:1,5s/#$//g #将1-5行末尾#删除
⑤保存和退出
w:执行保存操作(保存到原始文件中)
w /path/to/file:实现文件另存为
!:强制执行操作
⑥第六类命令:高级操作
! 命令 #在vi中直接执行命令
r /path/to/file #将file中的内容导入到当前文件中
set tabstop=4 #将tab缩进的字符数设置为4个
set ai #设置自动缩进(一般不用)
set noai #取消自动缩进
⑦复制、移动、删除多行的操作
start,end d #删除多行,删除start到end行的内容
start,end m dest #将多行移动到指定行(dest行)的下面
start,end co dest #将多个复制到指定行(dest行)的下面
59,198 co 233 #例子:将59到198之间的内容复制到233行的下面
5、分屏操作
vim -o file1 file2 #实现水平分屏
vim -O file1 file2 #实现垂直分屏
ctrl+w #切换到另一个分屏
6、打开文件的小技巧
vim num file #打开文件的时候,自动跳转到第num行(加号不可省略)
vim file #打开文件的时候,自动跳转到最后一行
7、vim的配置文件
/etc/vimrc:全局配置文件,在这个文件中做的配置,会对所有用户生效
~/.vimrc:(默认不存在,需要自己手动创建)用户配置文件,仅仅对当前用户生效
编辑vi的配置文件,实现可以自动显示行号、缩进4个字符、自动对齐
# vi ~/.vimrc
:set nu
:set ai
:set tabstop=4
vi崩溃缓存机制
用vim编辑文件时,如果文件没有正常的关闭(wq、q、q!),那么就会生成一个崩溃缓存文件
崩溃缓存文件的和作用
①. 缓存文件是隐藏文件
②. 缓存文件基本格式是 .file.swp (默认在原目录中)
③. 缓存文件的作用是用于在系统意外关机的情况下,恢复文件中的内容(修改了文件内容,意外关掉终端或者系统)
④. 缓存文件的使用方式
第一步:# vim -r .file.swp
第二步:保存退出
第三步:删除缓存文件