IdeaVim插件使用记录

记录一些IdeaVim的使用命令。
如无特殊声明,均是在命令模式Command mode)下。

1、移动光标

移动光标可以使用方向箭头,但更“正宗”的做法是:

  • h:控制光标向左移动
  • j:控制光标向下移动
  • k:控制光标向上移动
  • l:控制光标向右移动
  • G:移动至文件的最后一行
  • gg:移动至文件的第一行
  • b:移动至当前单词的开始字符
  • e:移动至当前单词的结束字符

2、删除成对标点间的内容

di{char}:删除一对对称标点中间的所有内容。例如,di"表示删除""中的全部内容,di{表示删除{}中的全部内容,类似地,还可以有di<di(di<di'等。

ci{char}:如果希望删除之后进入编辑模式,则用ci{char}

注意:光标必须放在待删除的标点上或其内部的某个字符上。

3、进入插入模式的不同方式

  • i(insert):在光标所在位置之前,进入插入模式
  • I:在本行第一个字符之前,进入插入模式
  • a:在光标之后(append),进入插入模式
  • A:在本行最后一个字符之后,进入插入模式
  • o:在本行之后新增一行,并进入插入模式
  • O:在本行之前新增一行,并进入插入模式
  • s:删除当前字符,并进入插入模式
  • S:删除当前行的所有字符,并进入插入模式

4、行内查找字符

  • f{char}:从光标开始向右查找当前行内的某个字符char并将光标移动至第一个char
  • F{char}:从光标开始向左查找当前行内的某个字符char并将光标移动至第一个char
  • t{char}:从光标开始向右查找当前行内的某个字符char并将光标移动至第一个char的左边一个字符处
  • T{char}:从光标开始向左查找当前行内的某个字符char并将光标移动至第一个char的右边一个字符处
  • ;:重复上一个f/F/t/T命令
  • ,:重复上一个f/F/t/T命令的反命令(fF互为反命令,tT互为反命令)

5、复制粘贴

5.1基础操作

  • yy:复制当前行
  • p:从光标后粘贴复制的内容
  • P:从光标前粘贴复制的内容
  • {n}yy:复制从当前行开始直至向下n行内容
  • yw:复制光标所在处的单词
  • y$:从当前位置复制至行尾
  • y0:从当前位置复制至行头
  • v{方向键}:选择字符
  • V{方向键}:按行选择字符

5.2高阶操作

有时我会想复制一个很长的字符串并到别处粘贴,例如,从如下sql中复制表名:

insert into AVeryVeryVeryLongTableName (field1) values (123)

首先需要将目标字符串选中才行。

采用基础操作时,可以将光标移动至字符A处,然后按一下v,再控制方向键选中整个AVeryVeryVeryLongTableName——这样需要按许多次方向键,未免太低效了。

一种高效的做法是,利用vim中的word的概念。

简而言之,vim中的word指仅由字母数字下划线组成的连续字符串。因此,将光标移动至AVeryVeryVeryLongTableName的任一字符上,然后按vaw就可以选中整个字符串了。

aw的意思是“a word”,类似地还有iw(“inner word”),它们的区别就在于前者会包含word前面或后面的空格,而后者只包含word本身。

注意:

vim文档已经指出,“word”要么指仅由字母数字下划线组成的连续字符串,要么指代其他的非空字符(non-blank characters)组成的字符串,这取决于当前光标所指的字符是什么。

举个例子,对于字符串abc_23&^()[]78ed_而言:

  • 如果光标放在abc_23的任一位置上,那么viw将会选中abc_23;类似地,如果光标放在78ed_的任一位置上,那么viw则会选中78ed_
  • 如果光标放在&^()[]的任一位置上,那么viw将会选中&^()[]

这个例子说明,如果word指代由字母数字下划线组成的字符串,那么其他种类的字符都是word的边界符;如果word指代由非空字符(字母数字下划线除外)组成的字符串,那么空字符以及字母数字下划线都是word的边界符。

6、全文查找与替换

本部分内容全部来自:https://harttle.land/2016/08/08/vim-search-in-file.html

6.1 常用查找

输入/即可进入查找模式,输入想要查找的字符串,按下回车,即可跳转到(当前光标所在位置后的)第一个匹配的字符串处。再按n则查找下一个匹配;按N则查找上一个匹配。

如果想要从当前光标位置开始向上查询,则输入?,然后输入字符并按回车。

上述查找方式默认是大小写敏感的,如果想要进行大小写不敏感查询,则在查找的字符串末尾输入\c再按回车:

例如,/foo\c会匹配fooFooFOO等字符串。

6.2 快速查找当前单词

将光标移至想要查找的单词上,然后按*就可以快速查找下文中出现的单词。

这里说的「单词」,指的是5.2中说的第一种情况,即只由数字、字母及下划线组成的连续字符串。

这种方式只能匹配独立的单词,而不会匹配那些包含该单词的长字符串。例如,如果当前词为foo,则不会匹配foobar中的foo——要想实现这种效果,则按g*

6.3 查找替换

:s命令用于查找与替换,用法如下:

:{作用范围}s/{查找目标}/{替换后的内容}/{替换标志}

例如,:%s/foo/bar/g表示在全局范围(%)查找foo并替换成bar,要求所有的foo均要替换(g)。

6.3.1 作用范围

作用范围可以分为以下三类:

  • 当前行
  • 全文
  • 部分区域

不指定作用范围时即为当前行:

:s/foo/bar/g

%表示全文

:%s/foo/bar/g

可以通过行号来指定作用范围:

:5,12s/foo/bar/g

表示在5-12行进行查找替换。

:.,+5s/foo/bar/g

表示从当前行至后续的5行内进行查找替换。

6.3.2 替换标志

g表示作用范围内的所有出现均被替换。

如果不指定标志符,则默认替换第一次出现。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

芳樽里的歌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值