BOOK
Intro(Vim实用技巧_高清_中文版.pdf) #
练习文件「practical-vim」repo:https://github.com/rxedu/practical-vim
当前clone文件路径~/Desktop/_scratch/practical-vim
。第一章 vim解决问题的方式 #
1).
重复命令:.
2).
复合命令:(C:c$, s:cl, S:^c, I:^i, A:$a, o:A<CR>, O:ko)
3).
将 + 号前后追加空格,采用删1加3的方式:使用s
命令删除当前光标下的+,然后输入空格+空格。4).
重复,回退命令,edit:{.
,u
},f/t:{;
,,
},F/T:{;
,,
},/pattern:{n
,N
},?pattern:{n
,N
},:s:{&
,u
},macro:{@x
,u
}5).
使用*
查找光标下的单词,{n
,N
}上下。第二章 普通模式 #
7).
停顿时请移开画笔,想象在作画,经常<C-[>
。8).
需要换行尽量使用<Esc>o
,把修改切成最小粒度。使用<up>,<down>,<left>,<right>
会产生新的撤销块。9).
构造可重复的修改,比如删除【The end is nigh】中的 nigh 。可以使用如下,也可以在 vimgolf中进行判决
反向删除dbx
,. == x
正向删除bdw
,. == dw
删除整的单词daw
,. == daw
✅10).
使用<C-a>,[count]<C-x>
对光标下|后的数字进行加减,默认八进制,通过配置文件设置set nrformats=
修改成十进制11).
能重复就别用次数12).
操作符待决策模式g
:g~
,gu
,gU
,gUgU | gUU
,>
,>>
,<
,=
,第三章 插入模式 #
13).
插入模式即使更正错误:即使在bash shell中,也可以使用。【<C-h>
:删除前一个字符(同退格),<C-w>
:删除前一个单词,<C-u>
:删除至行首】15).
不离开插入模式,粘贴寄存器中的文本。将第一行的书名粘到第二行末,光标在第一个字符。yt,jA␣<C-r>0.<Esc>
16).
随时随地做运算:在插入模式中,使用<C-r>=
调用表达式寄存器,输入表达式6*35<CR>
做运算,将结果插入到当前光标下。17).
用字符编码插入非常用字符:<C-v>u{四位十六进制 unicode}
:例<C-v>u00bf
-¿
。查看贯标下的字符使用:ga
。18).
插入以二合字母{char1}{char2}表示的字符<C-k>{char}{char}
,例如<C-k>12
-½
,<C-k>?I
-¿
,使用命令查看二合字母:digraphs
,:h digraph-table
。:h digraphs-default
第四章 可视模式 #
20).
深入理解可视模式: 使用:<C-g>
在 visual 模式和 select 模式切换,选择模式相当于普通编辑器中选择后直接输入替换那种效果。21).
选择高亮选区: 【v
:面向字符,V
:面向行,<C-v>
:面相列块,gv
:重选上次高亮区域】,重复会取消选择,比如连着按两次v
。22).
重复执行面向行的可视命令:Vj>.
,Vj2>
23).
只要可能,最好用操作符命令,而不是可视命令:vitU
可是模式中会影响部分(等长),gUit
普通模式在的操作符刚好。24).
用面向列块的可视模式编辑表格数据: 减少列之间的间距并以竖线分割,<C-v>3jx...gvr|
,添加横线yypVr-
。25).
修改列文本: 删除影响所有行,但是修改的话只影响顶行,使用<CR>
后会变得正常。修改sprite -> components。<C-v>jjec
,components
,<Esc>
。26).
在长短不一的高亮块后添加文本: (可视模式中的i,a
被视为文本对象的组成部分)。在每行末尾添加;
:<C-v>jj$A;<Esc>
第五章 命令行模式 #
在按下
:
键时,Vim 会切换到命令行模式。出于历史原因,在命令行模式中执行的命令又被称做 Ex 命令。在我们按/
调出查找提示符或用<C-r>=
访问表达式寄存器(参见技巧 16)时,命令行模式也会被激活。27).
结识 Vim 的命令行模式:
有些命令和插入模式通用。例如,可以用<C-w>
和<C-u>
分别删除至上个单词的开头及行首,
也可以用<C-v>
或<C-k>
来插入键盘上找不到的字符(技巧49),
还可以用<C-r>{register}
命令使用寄存器,如技巧15。30).
在指定范围上执行普通模式命令:使用可视模式选择后 摁:
冒号 输入normal A;
执行每行追加;
命令。第七章 打开及保存文件 #
45).
以超级用户权限保存文件::w !sudo tee % > /dev/null
第十一章 宏 #
70).
录制宏插入可变数值: 比如在每一行前面追加 1)2)… 等。:let i = 1
,qa
,I<C-r>=i<CR>)<Esc>
,:let i += 1
,q
。
Reference #