收看世界杯并快记常用Vim命令:进阶(一)

本人在之前的文章收看世界杯并快记常用Vim命令里已经介绍了一些基本的Vim命令。本篇将采用问答的方式对其中部分命令进行进阶学习,内容主要参考自《Vim实用技巧》

问与答

.命令会重复上一次修改,那么修改指的是什么?

.命令用科克来代表,圆圆的眼睛也像极了点号的形状。

科克

注:图片来自网络

这里的修改指的是:<切入Insert模式的按键操作> + <Insert模式内的修改操作> + <esc>

也就是说,.是Normal模式下的命令。

s命令和x命令的区别是什么?

按照世界杯的表现来说,很像克洛泽和戈麦斯的关系,克洛泽除了戈麦斯的弄能,还拥有切入Insert模式的能力,也就是s = x + <切入Insert模式的操作>。

f的重复操作是什么?

下一个威廉是;,上一个威廉是,。需要注意的是,这两个命令都是行内有效。

cwdw的区别是什么?

类似s命令和x命令的区别,cwdw多一个切入Insert模式的操作,除此之外,dw会删除单个字词后面的空格。阿尔巴防守尚可,进攻时切入对方禁区能力亦佳。

这里如果w换成e,两者删除的效果相同,前者仍然会进入Insert模式,后者停留在Normal模式。单词的反向删除是将w换成b,此时删除的部分将不包含光标所在的位置。

cwdw如果要删除完整的单词该怎么做?

在这两个命令中间添加a,两者都会删除单词后面的空格。和上一条不一样的是,这里w不能换成e。如果要删除整个段落,可以将w换成p

如何简单的给数字进行加操作或者减操作?

<数字><C-a>用来进行加操作,<数字><C-x>用来进行减操作,光标并非一定要在数字上,当光标不在数字上,它会正向对最近的一个数字进行操作。

盛世美颜谨慎出场?

《Vim实用技巧》提到:能用重复就别用次数。

d3w和3dw效果一样(这里的次数3用来泛指),迭戈科斯塔只在必须时使用。

如何一次将某单词全部字母大写或者小写?

操作符g动作命令组合可以形成一个操作,这里g~aw可以在大小写转换中切换,gUaw用来将单词转换成大写,guaw将单词转换成小写。它们都是一个操作,可以用.来进行重复操作。

金咕咕(gugU)用来切换大小写。

如何将对单词的操作用于行?

操作符通常连续调用两次会把对单词的操作作用于行,但是这里gUgU可以简化为gUU

除了<esc>,还有什么方式可以将Insert模式切换回Normal模式?

可以使用Vim默认提供的<C-[>,也可以在.vimrc中进行修改。

Insert-Normal模式是什么鬼?

在该模式下,用户可以执行一次Normal模式的命令,然后界面又切换回Insert模式。例如在该模式下,键下u不会是在文本中输入u字符。进入该模式的方法是:在Insert模式下按<C-o>

如何在Insert模式进行单词自动补全?

在该模式下键入<C-p>即可。

Insert模式如何粘贴寄存器文本?

首先是复制一块内容,采用y + t + “截止位置(不包含该位置)”,例如有一行文字:“Cgrw, hello!”,光标停留在“C”位,如果要复制Cgrw,可以采用yt,的组合。

然后进入Insert模式,按下<C-r>0,此时文字粘贴到了期望处,这里0是寄存器名字。

Insert模式如何简单的进行算数?

可以借助寄存器来实现,进入Insert模式按下<C-r>=,然后回车。

如何在Insert模式输入特殊符号?

首先查询符号的字符编码,如果是三位以内,例如A是065,那么直接输入<C-v>065;如果字符编码超过三位,例如倒立的?,则输入<C-v>u00bf

Replace模式是什么模式?

通过在Normal模式键入R切换到Replace模式。Replace模式相比Insert模式可以直接在文本上替换,而非插入新的内容,除此之外和Insert模式基本相同,比如在该模式下,前述的Insert模式粘贴寄存器文本、进行算数以及输入特殊符号等方法都适用该模式。

如何通过Visual模式将某个单词修改成另一个单词?

这里提供两种方法:

  • 首先将光标停留在待修改的单词上,键入viw(vaw会选中单词正方向后的空格),然后键入c,之前的字符就全部删除,于是可以输入新的字符;
  • 同样先键入viw,然后再键入<C-g>,将Visual模式切换成Select模式,接下来无需键入c,直接输入新的字符进行替换;

gvo的作用是什么?

gv用来重选上次Visual模式选定的文本范围,o用来切换活动端,比如跳跃光标从最右跳到最左。

Visual模式下,怎么画一行分割线?

可以采用以下策略:

  • 复制一行内容(什么内容都可以),通常为要画的分割线的上一行,采用的命令是yyp
  • 键入大写V表示欲对行操作,然后键入r表示替换,最后接上要替换的内容,整个命令为:Vr-(-为要替换的内容);

如何在长短不一的高亮块后添加文本?

相比收看世界杯并快记常用Vim命令一文中内马尔的操作,这里只需注意在进入Visual模式后,还需先添加一个$,它可以到达每行文本的末尾。

小结

本文主要用于熟悉一些Vim常用的操作。

参考

《Vim实用技巧》