三种基本模式:打开时默认处于编辑模式
编辑模式:又称命令模式
输入模式:insert
末行模式:内置的命令行接口
打开文件:
# vim [OPTION]... FILE...
+#:打开文件之后,光标直接处于第#行行首
若只使用"+",则光标直接到文件尾部
+/PATTERN:打开文件之后,光标处于第一个被PATTERN匹配行的行首
模式转换:
编辑模式 --> 输入模式
i:insert 光标之前插入
a:append 光标之后追加
o:open 光标行下打开新行,并进入输入模式
I:光标所在行行首进行输入
A:光标所在行行尾进行输入
O:光标行上打开新行,并进入输入模式
输入模式 --> 编辑模式
ESC
编辑模式 --> 末行模式
:
末行模式 --> 编辑模式
ESC
tips:末行模式 & 输入模式 之间不可直接转换
关闭文件:
:q 退出
:q! 强制退出,丢弃所有修改
:wq 保存退出
:x 保存退出
:w /PATH/TO/SOMEWHERE 当前文本保存至指定文件,文件可以不存在,但路径必须存在
光标跳转:
字符跳转:
h,j,k,l
k:上
h:左 l:右
j:下
#COMMAND:跳过指定个数的字符
#l,#k
单词跳转:
w:下个单词词首
b:上个或当前单词词首
e:上个或当前单词词尾
#COMMAND:跳过指定个数的单词
#w
行间跳转:
#G:第#行
G:最后一行
gg/1G:第一行
句间跳转:
):下句
(:上句
段落跳转:
{:上段
}:下段
编辑命令:
字符编辑:
x:删除光标处的单个字符
#x:删除光标之后的#个字符
xp:交换光标处与其之后字符的位置
替换命令:
r:与x相似
删除命令:
d:可结合光标跳转命令,实现范围删除
d$,d^,d0
de,dw,db
dd,#dd
粘贴命令:
p:缓冲区存储的如果为整行内容,则粘贴到当前所在行的下方,如果为非整行数,则追加 粘贴至光标之后
P:缓冲区存储的如果为整行内容,则粘贴到当前所在行的上方,如果为非整行数,则插入 粘贴至光标之前
复制命令:
y:与d相似
改变命令:
c:删除光标字符,并直接进入输入模式
使用方式与d相同
其他命令:
可视化模式:
v:按照字符选定
V:按行选定
结合编辑命令使用范围选定
撤销:
u:撤销未保存的编辑,默认为15次操作
#u:指定撤销次数
恢复此前的撤销:
ctrl+r
重复前一次编辑操作:
.
翻屏操作:
crtl+f:向尾部翻一屏
crtl+b:向首部翻一屏
crtl+d:向尾部翻半屏
crtl+u:向首部翻半屏
末行模式:
(1)地址定界
:start,end
#: #,#: #,{+/-}#:
.:当前行 $:最后一行 %:全文
/PAT1/,/PAT2/:
使用方式:后跟编辑命令
d,y,w /PATH/TO/SOMEFILE
(2)查找
/pattern 向尾部查找该pattern
?pattern 向首部查找该pattern
n:与命令相同方向查找匹配的对象
N:与命令相反方向查找匹配的对象
(3)查找并替换
s/查找/替换/修饰符
多文件模式:打开文件时使用{ }展开
末行模式中互相切换:
:next 下一个
:prev 上一个
:last 最后一个
:first第一个
:wall 保存所有
:qall 退出所有
窗口分割模式:
vim -o{O} file1 file2
-o:水平分割
-O:垂直分割
切换:
ctrl+w,arrow
单文件窗口分割
ctrl+w,s:水平分割
ctrl+w,v:垂直分割
vim的工作特性:
配置文件:
全局: /etc/vimrc
个人:~/.vimrc 默认不存在,需要创建
(1) 行号
显示:set number,末行模式简写为:set nu
取消:set nonumber,set nonu
(2) 括号匹配
匹配:set showmatch,set sm
取消:set nosm
(3) 自动缩进
缩进:set ai
禁用:set noai
(4) 高亮搜索
启用:set hlsearch
禁用:set nohlsearch
(5) 语法高亮
启用:syntax on
关闭:syntax off
(6) 忽略字符大小写
忽略:set ic
不忽:set noic