当前行向左缩进:<
, 向右缩进:>
多行缩进:选中多行V + {h,j,k,l}
, 然后执行上面操作
也可以用命令:
:2,$-1>
,第二行到倒数第二行之间右移一个tab:4,6<
,第四行到第6行左移一个tab:$-3,$-1>
,倒数第四行到倒数第二行右移一个tab
o
, 在光标的下一行插入i
, 在光标所在字符的前面插入a
, 在光标所在字符的后面插入O
, 在光标的前一行插入I
, 在光标所在行的行首插入A
, 在光标所在行的末尾插入
diw
或者daw
,删除当前光标所在单词diW
或者daW
,删除当前光标所在字符串,直到遇到空格de
, 功能同diw
di(
, 删除该括号内的内容,保留括号。di{
,di[
,di<
,di"
功能相同da(
, 删除该括号内的内容,包括括号一同删除。其他括号引号功能相同。dab
, 等同于da(
。操作起来更方便。daB
, 等同于da{
。.
, 在执行完一个命令后,按句号符,可以重复上一步命令操作
使用方式同删除技巧,只不过将 d
改为 c
命令:zz
光标放在一个括号上,然后执行命令 %
,可以找到另一个相匹配的括号,并将光标移至此处。
命令::%TOhtml
命令: ddp
命令:g;
ggyG
或者 :%y
f{character}
如,查找当前行内光标所在位置的下一个字母 d
fd
大写的 F
可以实现反向查找,即,查找当前行内光标所在位置的前一个字母。
搜索当前词
按 *
即可搜索当前光标所在的词(word),再次按 *
搜索下一个。 按 #
搜索上一个。
如果希望全局查找替换当前光标所在的单词,我们可能需要手动地在命令模式下敲出:
:%s/foo/bar/g
但如果当前光标就在那个单词上的话,可以在敲完 :%s/
之后将它粘贴到命令里:
ctrl + r
ctrl + w
:!<command>
:.!<command>
,比如插入时间::.!date
插入的内容会覆盖当前行的内容,所以要在空白行进行
在 ~/.vimrc 中新增如下配置:
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8