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

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

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

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

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

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

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

1. 常用的插入命令

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

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

2. 常用的定位命令

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

//取消行号
:set nonu

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

  • 移动到第一行

    gg
  • 移动到最后一行
    G
  • 移动到n行

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

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

  • 移动到下一个单词的开头,比如 i love you,它会移动到i l y这几个字母上

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

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

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

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

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

  • 移动匹配括号

    //你先把光标移动到括号上
    %
    //然后按住%就可以匹配到对应的另一半

      

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

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

  • 复制一行代码

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

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

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

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

  • 复制多行还有一个也比较有趣的用法,比如我要将5到13行的代码复制到58行下方
    :, copy 58
    //或者也可以复制单行,这样的写法前提都是光标不移动的,更方便
    :5 copy
  • 复制多行(只复制) 其它命令可参考这种格式
    :, y //复制24到36行而不做其它事   同理删除剪切可以是:24,36 d
  • 删除命令
//删除一行,虽然看起来是删除,但其实说是剪切更准确,因为你输入p就会把它粘贴出来了
dd
//删除n行,同理也可以参考多行复制一样实现大范围删除
ndd
//删除第n行
:nd

4. 替换和查找

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

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

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

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

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

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

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

  • 查找命令 ,你可以用IDEA的查找,也可以用vim的查找,都随便的

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

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

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

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

    :,80s/love/hate/g

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

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

    甚至能根据需求寻找解决方案,比如我写markdown时需要给选择题的选项后面都加上两个空格以便换行

    //光标在A选项的行
    :.,+3s/$/空格空格
    //上面的$代表末尾,然后后一个/的内容代表插入的内容
    //由此可以得知,将$换成^就是在开头插入内容了

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

    其余替换标识
    i表示大小写不敏感查找,I表示大小写敏感
    c表示需要确认
    当你替换标志包含c时,每匹配一次单词,都会弹出
    replace with 所更改的单词 (y/n/a/q/l/^E/^Y)?
    按下y表示替换,n表示不替换,a表示替换所有,q表示退出查找模式, l表示替换当前位置并退出。^E^Y是光标移动快捷键
    
    所以你可以输入
    :4,80s/love/hate/gci
    这句命令的意思是,在4到80行内,不分大小写的查找love这个单词,并每次找到后,让你输入确认命令以便于替不替换成hate这个单词

5. 其它一些用到的命令

  • 撤销(undo)

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

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

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

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

//vim的列操作
.光标定位到你想要操作的地方。
.CTRL+v 进入Visual模式,选取操作范围
.SHIFT+i(I) 输入要插入的内容。
.ESC 按两次,会在你选中的操作范围内出现你插入的内容
  • 打开历史文件
    在idea里面的话,打开历史文件可以不用vim的功能。
    但是我用gvim有时编辑了文件,想重新编辑,还得重新去找,用这个历史文件的功能就好多了

    ctrl+o

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

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

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

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

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

vi/vim常用按键的更多相关文章

  1. Linux(Ubuntu)常用命令(五)—— vi/vim常用操作

    vi/vim常用命令 vim其实就是vi的升级版,vi里的所有命令vim里都可以用,一般使用来说几乎没什么差别. 注:本篇文章区分大小写! vi / vim三级模式的关系: 命令行模式 任何时候,不管 ...

  2. 想法子记忆Vi/Vim常用操作及指令

    本笔记有特殊目录,点击开启: 专有目录 在Linux系统中编辑文本总是离不开一位老帮手--Vi.而因为其诞生的年代有些久远,有些操作在现在看来可能有点"反直觉". 于是我决定写这样 ...

  3. VI/VIM 常用命令

    VI/VIM 常用命令=========== 整理自鸟哥的私房菜 ---------- - 移动光标 命令                    | 描述----------------------- ...

  4. -Git Linux vi/vim 命令 按键 MD

    目录 目录 Linux vi/vim 简介 vi/vim 的使用 命令模式 输入模式 底线命令模式 vi/vim 使用实例 使用 vi/vim 进入一般模式 按下 i 进入输入模式,开始编辑文字 按下 ...

  5. vi/vim 常用命令总结

    目录 Linux vi/vim编辑 vim键盘图 vim的三种模式 命令模式.输入模式.输出模式 vim使用实例 vi/vim按键说明 第一部分:一般模式可用的光标移动.复制粘贴.搜索替换等 第二部分 ...

  6. Vim常用按键大全

    Vim完全可以用键盘进行操作.本文将常用的按键归纳总结. 第一部分:一般模式可用的按钮,如光标移动.复制粘贴.查找替换等 移动光标的方法 h, j, k, l 光标向左,下,上,右移动 Ctrl + ...

  7. Vi/Vim常用命令(附快捷切换方法)

    vi/vim有两种模式,正常(命令行)模式 和编辑模式,在命令行模式下,任何键盘输入都是命令,在编辑模式下,键盘输入的才是字符. 启动/关闭Vi/Vim 启动:vi 打开 Vi/Vim编辑器vi 文件 ...

  8. vi/vim常用操作

    什么是vim? Vim是从 vi 发展出来的一个文本编辑器.代码补全.编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用,和Emacs并列成为类Unix系统用户最喜欢的文本编辑器. vim的 ...

  9. vi/vim常用命令总结

    vim是vi的升级模式,完全兼容vi 解决vim打开中文乱码问题 编辑/etc/vim/vimrc配置文件,添加下面的内容: ''' set fileencodings=utf-8,ucs-bom,g ...

随机推荐

  1. InfluxDB+Grafana大数据监控系列之基础环境部署(一)

    一.单节点环境部署 机器节点信息及 InfluxDB.Grafana 版本选择: 节点 Linux版本 部署服务 10.223.1.198 Centos 6.8 InfluxDB 1.7.7 10.2 ...

  2. Docker 跨主机网络 overlay(十六)

    目录 一.跨主机网络概述 二.准备 overlay 环境 1.环境描述 2.创建 consul 3.修改 docker 配置文件 4.准备就绪 三.创建 overlay 网络 1.在 host1 中创 ...

  3. (转)华为 安卓手机在MAC系统下 ADB 识别

    使用MACOS发现在Android开发环境完整的情况下,接入小米,SAMSUNG,HTC,ZTE等手机都可以自动识别,如果暂时不能识别,只需要在 adb_usb.ini 中设置之后也可以识别,并可以在 ...

  4. 《CNCF × Alibaba云原生技术公开课》知识点自测(一):第一堂“云原生”课

    (单选)1.容器启动后,我会时常 SSH 进入到容器里然后写很多文件.请问这破坏了云原生理念了吗? A. 否   B. 是 (单选)2.云原生架构必须选型 Kubernetes 方案. A. 否  B ...

  5. vue-cli2.0项目的搭建

    1.第一步:安装vue-cli 命令行输入cmd或按住shift鼠标右键打开powershell 输入命令 npm install --global vue-cli 按enter键 2.第二步:创建项 ...

  6. php csv 简单的导入

    if($act == 'user_upload_do'){ global $db; $filename = $_FILES['file']['tmp_name']; if (empty ($filen ...

  7. 最新 草花互动java校招面经(含整理过的面试题大全)

    从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.草花互动等10家互联网公司的校招Offer,因为某些自身原因最终选择了草花互动.6.7月主要是做系统复习.项目复盘.Leet ...

  8. Redis 常用命令学四:有序集合类型命令

    1.增加元素,修改存在元素的分数 127.0.0.1:6379> zadd score 99 a 88 b 66 c (integer) 3 127.0.0.1:6379> ZADD sc ...

  9. Linux下的静态库与动态库的生成与调用

    静态库与动态库 静态函数库 这类库的名字一般是libxxx.a,xxx为库的名字.利用静态函数库编译成的文件比较大,因为整个函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后的执行 ...

  10. WUSOJ 1293: Fibonacci数列(Java)

    题目: