vim: 模式化的编辑器
模式:
编辑模式:命令模式
编辑操作被理解成编辑命令
末行模式:vim内置的命令行接口,执行vim的内置命令
输入模式:
打开文件:vim [option]… [FILE]…
ESC键:
编辑模式——输入模式:
i:在光标所在处的前方转换为输入模式
a: 在光标所在的后方装换为输入模式
o:在光标所在行的下方新建一个空行并转换为输入模式
I: 行首
A: 行尾
O:光标所在行的上方新建一个空白行
输入模式——编辑模式
ESC
编辑模式——末行模式
:
末行模式——编辑模式
ESC
输入——编辑——末行
退出文件:
:q!不保存退出
:wq 保存退出
:x 保存退出
:wq!强制保存退出
:w! 强制保存
ZZ 编辑模式保存退出
编辑文本:
光标移动:
字符间移动:h,j,k,l 左下上右
#(h j k l)可以结合数字跳转
单词间跳转: w 下一个单词词首
e 当前单词或下一个单词词尾
b 当前单词或前一个单词词首
#(w e b)
行内移动:^ 行首第一个非空白字符
0 绝对行首
$ 绝对行尾
行间移动:数字加G不跟任何数字跳到最后一行
句子间移动: )(
段落间移动; } {
编辑命令:
x:删除光标所在处的字符
#x
d:删除
结合光标跳转字符使用,删除跳转范围内的字符(w b e $ 0 ^)
dd: 删除光标所在行
D: 等于d$ 删除当行
注意:最后一次删除的内容会保存至缓冲区
p:粘贴
行级别的操作:P 粘贴于当前行上方
p 粘贴于当前行下方
小于行级别:p 粘贴于光标所在处的后方
P 前方
y:复制
结合光标跳转字符使用,删除跳转范围内的字符
w b e $ 0 ^ #y 复制#行
Y:yy
c: change 修改
先删除,再转换为输入模式
cc:删除光标所在处的整行而后转为输入
#c 可结合光标跳转字符使用
撤销操作:u
#u:撤销最近的#次操作
撤销此前的撤销:ctrl+r
重复前一条命令:.
末行模式:
大写 X:给文件加密码 ?
取消密码:set key= 将密码设为空 必须输空格
行间跳转:# 回车
$ 最后一行
内容定界:# 第#行
#,# 行范围
. 当前行
% 全文相当于1,$
$ 最后一行
c d y 等命令可以直接附加在地址范围后使用
w /paht/to/somefile :将选定范围内的内容保存至某文件中
r /paht/from/someile:经指定的文件中的内容读取到指定位置
s/查找模式/要替换成的内容/gi
查找模式:可以使用正则表达式,转义分隔符可以自定义@
要替换成的内容:不能使用模式,仅能使用引用
注意:查找前要内容定界
g:全行替换
i:不区分大小写
&:可以引用匹配到的所有内容
vim可视化模式:
v:光标走过的字符
V: 光标走过的行
文本查找:
用法同less命令
/pattern
?pattern
n N
翻屏:
ctrl+f:向文件尾部翻一屏
ctrl+b:向文件首一屏
ctrl+d:下半屏
ctrl+u:首半屏
多文件切换:
vim FILE FILE …
:next 下一个
:prev 上一个
:first 第一个
:last 最后一个
多窗口:
-o:水平分割
-O: 垂直分割
在窗口间切换:ctrl+w 跟方向键
单个文件也可以分割为多个窗口查看:
ctrl+w s 水平分割
ctrl+w r 垂直分割
退出所有文件:
:wqall 保存所有并退出
:wall 保存所有
:qall 退出所有
定制vim的工作特性:
在末行模式下的设定,仅对当前vim进程有效。
永久修改:~/.vimrc 用户
/etc/vimrc 全局
1.行号
显示:set number,简写 set nu
取消:set nomber set nonu
2.自动缩进
启用:set ai
禁用:set no ai
3.高亮搜索
启用:set hlsearch
禁用:set nohlsearch
4.语法高亮
启用:syntax on
禁用:syntax off
5.忽略字符大小写
启用:set ic
禁用:set noic
末行模式功能强大,使用help获取帮助
:help
浙公网安备 33010602011771号