经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 软件/图像 » Vim » 查看文章
vi/vim常用按键
来源:cnblogs  作者:yellowgg  时间:2019/5/20 8:41:45  对本文有异议

最近这段时间坚持了vim的使用,我在我的IDEA里面加了一个插件,可以支持vim。

然后不管是IDEA还是Vim都有自己的按键,而且都很好用,所以我就总结下在IDEA下的vim使用命令

当然,都是原生命令,我总结的是我自己经常用到的,我也是刚开始使用,还不太熟练。

记载在博客以后就不用去搜索去查了。

所以本文不是vim命令教学,而是介绍IDEA和VIM的混用。

本文关于Vim的几个模式就不介绍了,如果有读者想借鉴我的习惯,肯定是有vim基础的。

我所介绍的都是根据我实际情况所需要用的,不会介绍完全部。

1. 常用的插入命令

其实这几个都不是必须的,但也是要会用的,因为你大可以在正常情况下移动到想要编辑的地方,然后再打开VIM编辑器。

像在光标下插入新行,你用IDEA的shift+Enter也可以,所以我想说的是IDEA和VIM的东西你可以混着用,对自己效率有提升就可以了

2. 常用的定位命令

  • 设置行号开启,不过在IDEA里面肯定是开有行号的,所以也不必用vim来控制
  1. :set nu

    //取消行号
    :set nonu

行的移动,关于行的移动还是会用到,一般像移动到第n行,或者视图选择时想做全选操作

  • 移动到第一行
    1. gg
  • 移动到最后一行
    1. G
  • 移动到n行
    1. nG
  • 移动到行首
    1. 0

      //其实你也可以用Home键 所以说我买的键盘至少是87键的,不用什么都用vim的命令,只要能达到目的都ok
  • 移动到行尾
    1. $

单词的移动,单词的移动也用的比较多

  • 移动到下一个单词的开头,比如 i love you,它会移动到i l y这几个字母上
    1. w
  • 移动到上一个单词的开头,比如 i love you,它会移动到y l i这几个字母上
    1. b
  • 移动到下一个单词的结尾,比如 i love you,它会移动到i e u这几个字母上
    1. e

在一行代码里,可以定位到某个字母,比如

上面的代码里,光标在行首,我想定位到node那个单词,我可以按两下w,也可以输入2w,这两者的意思都是一样的

但是,还有一种方法,就是直接定位到某个字母上,那就是

  1. f字母
  2. //比如在上面的例子中,我想移动到n,所以就输入
  3. fn

3.常用的剪切粘贴复制命令

在这里你也是可以混着用,比如删除一行代码,你可以用IDEA的快捷键也可以用vim的dd,都可以,看你用哪个爽罢了

  • 复制一行代码
    1. yy
  • 复制n行代码,在vim里有个比较有趣的设定是你想一个操作执行多少遍,可以在操作命令前加上数字,比如3yy,就是复制3行代码
    1. nyy

    同理,你也可以粘贴5次,命令就是5p
    有时复制多行时,由于行数相差大,不容易算出来要复制多少行,这时就用视图来帮忙,比如下边的示例
    先输入命令 v ,代表开启可以视模式选择

    然后再输入 272G 代表定位到272行

    然后再输入y,就可以快速的复制多行了。这可比你算出272-251+1快多了吧。

  • 删除命令
  1. //删除一行,虽然看起来是删除,但其实说是剪切更准确,因为你输入p就会把它粘贴出来了
  2. dd
  3. //删除n行,同理也可以参考多行复制一样实现大范围删除
  4. ndd

4. 替换和查找

这里介绍一个命令:c命令,c的作用可以理解为:删除->剪切->进入插入模式

所以我经常用到c命令的组合是 cw 或者 ce,顾名思义,就是删除了一个单词然后准备写一个新的单词,比如

这里我想把node换成别的,输入cw

这样就进入插入模式,就可以输入新的单词了

还有一种情况是,当一串字符串,你想修改中间部分时,cw行不通,这时可以利用前面学的f命令来组合,比如

我已经移动到l字母,如果我输入cw,它会直接把loveyou都删掉,而我只是想改掉love这个单词,可以输入cfe

这时就会把love删除并进入插入模式了。从这里可以看出vim的命令组合真的很强大,想要熟练就要多使用。

  •  查找命令 ,你可以用IDEA的查找,也可以用vim的查找,都随便的
    1. /查找内容
    2. //然后输入n就代表跳转到下一个匹配的内容,输入N跳转到上一个匹配的内容
  • 替换
    1. :{作用范围}s/{目标}/{替换}/{替换标志}
    2. //例如:%s/love/hate/g会在全局范围(%)查找love并替换为hate,所有出现都会被替换(g)。

    作用范围分为  当前行 ,  全文  , 选区 三个范围

    1. 当前行
    2. :s/love/hate/g
    3. 全文
    4. :%s/ove/hate/g
    5. 选区
    6. Visual模式下选择好区域后,输入 : vim就会自动补全为 :'<,'>
    7. :'<,>'s/love/hate/g

    也可以指定行范围,比如4到80行

    1. :4,80s/love/hate/g

    或者在当前行以及接下来的5行

    1. :.,+5s/love/hate/g

    不过说实话,一般用得多的是 当前行 全文 指定行范围 这三种,因为这三种已经可以满足其余几种方式了
    至于命令最后面的/g的意思是替换标志,g代表全局(global)

    1. 其余替换标识
    2. i表示大小写不敏感查找,I表示大小写敏感
    3. c表示需要确认
      当你替换标志包含c时,每匹配一次单词,都会弹出
    1. replace with 所更改的单词 (y/n/a/q/l/^E/^Y)?

    1. 按下y表示替换,n表示不替换,a表示替换所有,q表示退出查找模式, l表示替换当前位置并退出。^E^Y是光标移动快捷键

      所以你可以输入
    1. :4,80s/love/hate/gci
    1. 这句命令的意思是,在480行内,不分大小写的查找love这个单词,并每次找到后,让你输入确认命令以便于替不替换成hate这个单词

5. 其它一些用到的命令

  • 撤销(undo)
    1. u
  • 防撤销,总之就是把撤销的东西再放回去(redo)
    1. ctrl+r
  • 列操作,列操作在IDEA中也有,不过区别是IDEA的列操作主要是操作相同单词的列,而vim的列操作是操作范围内的所有列,比如

  IDEA的列操作,操作的是同一个部分

  vim的列操作,是你选中的区域内都会被更改

所以两者用哪一个取决于你的需求了

  1. //vim的列操作
  2. 1.光标定位到你想要操作的地方。
  3. 2.CTRL+v 进入Visual模式,选取操作范围
  4. 3.SHIFT+i(I) 输入要插入的内容。
  5. 4.ESC 按两次,会在你选中的操作范围内出现你插入的内容

目前我常用的vim命令就是以上的命令,这只是vim的冰山一角,然而却能让我脱离鼠标好多了,

所以可见vim的强大,当然,vim很强大,IDEA也很强大,所以两者结合就更强大了。

我也正在坚持使用vim,掌握百分百的vim命令是不可能的,vim的使用方式实在是太多了,

但是仅仅是我上面写的那几点命令就已经够用好多了,我也将会不断的学习更高级的vim操作,

总之就是要变成一个vim党,冲鸭!鼠标什么的扔掉好吧哈哈哈哈

原文链接:http://www.cnblogs.com/yellowgg/p/10886084.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号