Vim 常用命令

  1. 跳转到光标上一次位置:ctrl + O

  2. :%s/vivian/sky/g(等同于 :g/vivian/s//sky/g) 替换每一行中所有 vivian 为 sky
    ○ % 指全局替换
    ○ g 不询问,整行替换

  3. 在normal模式下按下*即可查找光标所在单词(word)

  4. Vim的精确搜索命令
    /\<word\>
    ○ 提示:表示只搜索以"main"开头和结尾的单词。
    "\>":只搜索以main作为结尾的单词。
    "\<":只搜索以main作为开头的单词。
    \^main :表示只搜索以"main"开头的行。

  5. 跨文件复制粘贴
    ○ 可视化模式下(v),选中后
    i. "+y
    ii. "+p

  6. 反撤销
    ○ ctrl + r

  7. 当前行和下一行互换位置
    ○ ddp

  8. 注释:
    a. 多行注释
    i. 命令行模式,按ctrl + v进入,选中多行,把需要注释的行标记起来
    ii. 按大写字母 i,插入注释符,例如 //
    iii. 按 esc 键就会全部注释了
    b. 取消注释
    i. 命令行模式,按 ctrl + v ,
    ii. 选中行列,例如 // 需要选中2列,选中注释符号
    iii. 按 d 键就可全部取消注释

  9. 复制-剪切-粘贴
    a. 剪切
    i. 命令模式下输入 v 进入自由选取模式,选择需要剪切的文字后,按下d就可以进行剪切了。
    ii. 其他命令模式下剪切命令:
    dd:剪切当前行
    ndd:n表示大于1的数字,剪切n行
    dw:从光标处剪切至一个单子/单词的末尾,包括空格
    de:从光标处剪切至一个单子/单词的末尾,不包括空格
    d$:从当前光标剪切到行末
    d0:从当前光标位置(不包括光标位置)剪切之行首
    d3l:从光标位置(包括光标位置)向右剪切3个字符
    d5G:将当前行(包括当前行)至第5行(不包括它)剪切
    d3B:从当前光标位置(不包括光标位置)反向剪切3个单词
    dH:剪切从当前行至所显示屏幕顶行的全部行
    dM:剪切从当前行至命令M所指定行的全部行
    dL:剪切从当前行至所显示屏幕底的全部行
    b. 复制
    i. 命令模式下输入v进入自由选取模式,选择需要剪切的文字后,按下d就可以进行剪切了
    ii. 其他命令模式下剪切命令:
    yy:复制当前行
    nyy:n表示大于1的数字,复制n行
    yw:从光标处复制至一个单子/单词的末尾,包括空格
    ye:从光标处复制至一个单子/单词的末尾,不包括空格
    y$:从当前光标复制到行末
    y0:从当前光标位置(不包括光标位置)复制之行首
    y3l:从光标位置(包括光标位置)向右复制3个字符
    y5G:将当前行(包括当前行)至第5行(不包括它)复制
    y3B:从当前光标位置(不包括光标位置)反向复制3个单词
    c. 粘贴
    i. 在需要粘贴的光标处按下p即可

  10. 宏操作(相同操作重复执行), recording

    1. 第一步:在正常模式下(非insert模式、非visual模式)按下q键盘

    2. 第二步:选择a-z或0-9中任意一个作为缓冲器的名字,准备开始录制宏

    3. 第三步:正常的操作,此次所有的操作都会被记录在上一步中定义的缓冲器中

    4. 第四步:在非insert模式下输入q停止宏的录制

    5. 第五步:使用@ + 第二步中定义的缓冲器的名字即可。
      例如想把下面的文字

      line1
      line-2
      line3-1
      l4
      变成如下的文字

      System.out.println(line1);
      System.out.println(line1);
      System.out.println(line-2);
      System.out.println(line3-1);
      System.out.println(L4);
      观察可以发现他们的规律,在每行文字的开头添加“System.out.println(”,结尾添加“);”就变成下面的信息了。下面简单介绍一下如何使用recording来完成这样的操作。
      首先把光标移动line1上,输入qt,准备开始录制,缓冲器的名字为t,录制的动作为:shift + ^ 回到行首、按下i键进入insert模式、输入“System.out.println(”、按下esc键回到正常模式、shift + $ 回到行尾部、按下i键进入insert模式、输入“);”按下esc键回到正常模式,按下q停止录制。然后把光标移动到下面一行的任意位置输入 @ + t 即可。
      recording还可以和查询结合起来使用,例如想把一个文件中含有特定字符串的行注释,可以通过这样的宏来实现。在正常模式下输入/search string + enter、shift + ^、i、#、esc、shift + ​$。

      让定制的宏自动执行多次的方法是先输入一个数字,然后在输入@ + 缓冲器的名字。 例如 100@t,表示执行100次。

  11. 将tab自动转换成空格

    1. 将第一行到文件尾的tab转换成space,每个tab用4个space替代
      :set expandtab
      :%ret! 4
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值