前言
少年, 我看你骨骼精奇, 是万中无一的武学奇才, 维护世界和平就靠你了, 我这有本秘籍 Vim 修炼秘籍, 见与你有缘, 就十块卖给你了!
如果你是一名 Vimer, 那么恭喜你, 你的 Vim 技能马上要升级了 !
如果你之前不了解过 Vim , 那么也没关系, 本文就当成学英语语法了!
好, 废话不多说, 秘籍送上
ps: 建议先熟悉一遍 Vim 修炼秘籍之命令篇, 本秘籍食用更佳
正文
核心秘诀
Vim 功法之究极总结:
(操作次数)+ 操作行为 + 操作范围
下面, 我会将此秘诀 亲自传授于你
秘诀解析
先列一些常用的 Vim 招式给你瞧瞧, 看你是否是传说的练武奇才:
c2w 删除当前光标后紧邻的两个单词, 并转换为普通模式
dip 删除当前光标所处的一段内容
y3f{char} 从当前字符, 一直复制到第三个 {char} 字符 > G 当前行到结尾, 整体缩进一个 <Tab>
v`{mark} 从当前字符, 选择到 {mark} 标记位置
cit 删除当前光标所处标签中的内容
如果把招式看成语言, 解析其语法, 不难发现一个共同点:
每个招式必须包括 ** 谓语(操作行为) 与 宾语(操作对象)**
好, 既然有了线索, 我这就带你各个击破!
谓语(操作行为)
众所周知, 谓语是 动词词性的
在 Vim 功法中, 常用的动词如下:
c
删除内容, 进入普通模式
d
删除
y
复制
v
选择>,<缩进
=
智能缩进
gu,gU,g~
改变内容大小写
宾语(操作对象)
宾语代表的是操作对象, 而在 Vim 中, 所需操作的对象即是 操作的范围
而常用的操作范围命令如下:
w
从当前位置, 到下一个单词首字母, 单词由特殊字符 (". 等) 作为间隔
内容: .main {xxx} , 光标处在字符 m
招式: caw
结果:. {xxx}
W
从当前位置, 到下一个单词首字母, 单词由空格作为间隔
内容: .main {xxx} , 光标处在字符 m
招式: caW
结果: {xxx}
e
从当前位置, 到本单词尾字母
ge
从当前位置到上一个单词尾字母
b
通常代替括号中的内容
上一个单词首字母
p
段落 paragraph
s
句子 sentence
t
标签中的内容
内容: <tag>content</tag> , 光标处在字符 a
招式: cit
结果: <tag></tag>
B
通常代替花括号中的内容
符号 {) "'<代表的就是 该符号中的内容
G,gg
结尾, 开头
j,k,h,l
上下左右
/{word}<Enter>
从当前字符 到下一个 word 之间的内容
f{char}
从当前字符到下一个 char 字符之间的内容
`mark
从当前字符到 mark 标记 之间的内容
双写动词, 操作范围默认是当前行
dd 删除当前行
cc 删除当前行 并转换为普通模式>> 缩进当前行
v 动词例外, 使用 V 选中当前行
gU 命令是一种特殊情况, 可用 gUU 来使它作用于当前行
数词(操作次数)
假如现在有个任务, 让你删除两个单词, 你会怎么做?
d2w
删除两个单词
2dw
执行两次删除单词的命令
虽然这两式结果相同, 但意义却有所差别,
数词灵活多变, 可放在 谓语 (操作行为) 前, 又可放在 宾语 (操作对象) 前,
放在 谓语前, 代表操作次数,
放在 宾语前, 代表操作范围的扩张次数
介词(修饰范围)
常用的介词就两个: i(inside) , a(around)
举例说明: 光标处在字符 c
<main><div class="vim-test">I am Vimer!</div></main>
分别操作:
dat
结果:<main></main>
dit
结果:
<main><div class="vim-test"></div></main>
顾名思义, i 就是内部的内容, a 就是连同包裹的内容 一起干掉
招式实战
我已经教授了你 Vim 秘籍的基本功 :(操作次数)+ 操作行为 + 操作范围
现在, 利用你所学, 来实战巩固吧
将下面标签中的内容修改了: I am Vimer! (光标所处 字符 c )
<div class="vim-test">you are Bimer!</div>
修改下面字符串为 https://tomotoes.com !(光标所处 第一个 w 字符)
https://www.tomotoes.com
将文件 所有内容格式化, 写出 你认为的命令
将下面字符串改为 I am Vimer (光标所处 I 字符)
I am VIMER
将下面字符串的每个字符替换为 '!'
I love github and juejin
等待你的评论答案
结束语
好的功夫是练出来的, 请你以后务必勤加练习
好了, Vim 语法先告一段落, 希望本文能给你带来帮助
如果你想了解 Vim 其他方面 如: Ex 命令, 寄存器等
来源: https://www.cnblogs.com/jinma/p/8602257.html