相关概念
vim简介:vi(Visual Interface),文本编辑器,vim->viimproved
文本编辑器种类:
行编辑器:sed
全屏编辑器:vi,nano
图形编辑器:gedit(简单图形编辑器),gvim(vim编辑器图形版本)
*vim既可以编辑文本也可以编辑二进制文件(-b选项)
主要模式
编辑模式:insert,修改文本
命令模式:normal,默认模式,移动光标,复制粘贴文本
扩展命令模式:extended_command,保存退出等
*替换模式:replace,命令模式下使用R进入,不经常使用
模式切换
normal-->insert:i、a、o、I、A、O等
insert-->normal:Esc
normal-->extended_command:使用冒号:
extended_command-->normal:Esc
编辑模式
方向键移动光标,手动输入字符
命令模式
退出:ZZ(保存),ZQ(不保存)
查找:/pattern(光标处向文件尾部查找)、?pattern(光标处向文件首部查找)
光标跳转:
字符跳转:方向键;h(左)、j(下)、k(上)、l(右)
单词跳转:w(下个单词词首)、e(当前或下个单词词尾)、b(当前或前个单词词首);num w(e、b)->一次跳转num个单词
页面跳转:H(页首)、M(页中)、L(页尾)、zt(光标所在行移至屏幕顶端)、zz(移至屏幕中间)、zb(移至屏幕底端)
行跳转:num G(跳转至num行)、G(最后一行)、1G(第一行)、gg(第一行)
行间跳转:0(移至行首)、^(移至行首第一个非空白字符)、$(移至行尾)
句间跳转:) 后一句、( 前一句
段间跳转:} 后一段、{ 前一段
翻屏:PgUp、PgDn
字符编辑:
删除字符:x(删除光标处字符)、num x(删除光标处起num个字符)、J(删除换行符)
替换字符:r(替换光标处字符)、~(转换大小写)
删除操作:
复制操作:
粘贴操作:
p(缓存区复制的命令为整行时粘贴至光标所在行下方,否则粘贴至光标后)
P(缓存区复制的命令为整行时粘贴至光标所在行上方,否则粘贴至光标前)
改变操作:
c命令:操作类似于d命令,命令作用为先执行复制命令再切换至编辑模式
特殊命令:
numi content [Esc]:在光标处粘贴content内容num次
vi[:选中[ ]之间的内容(光标需在[ ]之间)
di”:删除” ”之间的内容(光标需在“ ”之间)
yi(:删除( )之间的内容(光标需在( )之间)
*上述三个操作标识符可自行定义,但冒号:在使用时失效
组合命令:
y、d、gU(变大写)、gu(变小写)
[eg]:0y$->0(光标移至行首)+y(开始复制)+$(复制到所在行行尾)
撤销更改:u(撤销最近更改)、U(撤销之前多次更改)
重复操作:Ctrl+r(重做最后撤销的更改)、.(重复前个操作)、num.(重复前个操作num次)
扩展命令模式
退出::q、:q!(强制退出,丢弃所做的修改)、:wq(保存退出)、:x(保存退出)
地址定界:
查找替换:
:地址定界 s /待替换内容/替换内容/修饰符(标识符不一定用/,可自行选择)
待替换内容:可使用模式匹配
替换内容:不能使用模式,但可使用\1,\2等后向引用符号或&
标识符:i(忽略大小写)、g(全局替换)、gc(全局替换,每次替换前询问)
[eg]:%s #etc#root#g(表示将全文所有的etc替换为root)