目标:每天学习使用一个vim插件,每天学一点用一点,一次学太多了也记不住!
day1 – 基本语法
vim 语法:动词+名词
d
for delete, w for word,dw
delete word.
动词
d
=> delete,删除c
=> change ,修改 (删除后插入)>
=> 缩进v
=> visually select,选择y
=> Yank,复制
名词 – Motions
w
=> word,光标前进一个单词b
=> back,光标后移一个单词2j
=> 下移2行
此部分名词可直接使用,也可配合数字使用,或者前面的动词使用。
如2w
表示前进两单词,任意数字均可。
配合动词使用如:d2w
表示删除两个单词。但这个删除会是从光标所在位置开始删,如果光标所在位置为末尾,使用此命令只会删除最后一个字母。下面介绍 Text Objects用于处理这种情况。
名词 – Text Objects
此部分命令只是用于选定对象,只能配合动词才有意义。
iw
=> inner word,不管光标在这个单词中的那个位置,选中的都是这个单词全体。it
=> inner tag,选择所在的tag(HTML文件中的标签)i"
=> inner quotes,选定" **** "
引号中的内容i)
=> 选定括号中的内容,使用(
,)
均可,同理{
,'
,<
等等ip
=> inner paragraph,选定段落as
=> a sentence,选定句子,以.
结尾
如 dip
删除当前段落。
名词 – Parameterized Text Objects
f, F
=> find, 查找一个字母,如fa
,到此行第一个字母a的位置。dfa
时也会删除字母a
t, T
=> find, 同f, F
,但不包含字母本身。dta
删除到字母a
为止,不包括a
/
=> Search
t, f
表示前向查找,F, T
表示反向查找。
配合动词 使用很有效。
.
重复上个动作,u
撤销上个动作
为了更有效的使用 .
重复命令,建议使用跟一般性的语法,如删除单词用 diw
。
用 Text Objects 而不是 Motions。
使用相对行号
如d6j
, c8j
便于观察要删除的行数等。
day2 – 插件安装 Vundle.vim 与 Surround.vim
参见上面链接中的说明,
"在此增加其他插件,安装的插件需要放在vundle#begin和vundle#end之间"
"安装github上的插件格式为 Plugin '用户名/插件仓库名'"
surround.vim 使用说明
这个插件主要是用来插入一些成对出现的符号,如(), “”, {} 等等。
- 通过可视模式选中字符串,再用
S+符号
,如S"
,S(
等。 - 添加符号,
ysw"
,此处w也可用Text Objects,iw, ip
等等 - 删除字符串包裹的符号,
ds"
- 替换符号,
cs"[