强大的VIM

个人感觉,vim用熟了,比任何编辑器都好用,VIM的许多特性节省了时间和击键次数,并可以完成一些其他编辑器无法完成的功能,这里在网上找了几个经典案例,记录一下。

与大部分其它编辑器不同,进入 Vim 后,缺省状态下键入的字符并不会插入到所编辑的文件之中。Vim 的模式(mode,可以简单地理解为“状态”)概念非常重要。需要知道,Vim 有以下几个模式:

  • 正常(normal)模式,缺省的编辑模式;下面如果不加特殊说明,提到的命令都直接在正常模式下输入;任何其它模式中都可以通过键盘上的 Esc 键回到正常模式。
  • 命令(command)模式,用于执行较长、较复杂的命令;在正常模式下输入“:”(一般命令)、“/”(正向搜索)或“?”(反向搜索)即可进入该模式;命令模式下的命令要输入回车键(Enter)才算完成。
  • 插入(insert)模式,输入文本时使用;在正常模式下键入“i”(insert)或“a”(append)即可进入插入模式(也有另外一些命令,如“c”,也可以进入插入模式,但这些命令有其它的作用)。
  • 可视(visual)模式,用于选定文本块;可以在正常模式下输入“v”(小写)来按字符选定,输入“V”(大写)来按行选定,或输入“Ctrl-V”来按方块选定。

一般的发布版中还常常带有一个简单的 30 分钟的 Vim 教程,新手在操作系统的命令行上输入vimtutor命令即可开始学习。除上面的简单说明外,本文并不介绍最基本的 Vim 命令,Vim 的新手应该先通过教程熟悉一下 Vim,再继续往下阅读。

常用的指令序列

  • 左右交换光标处两字符的位置:xp
    命令拆分:
    • x剪切当前字符
    • p粘贴剪切的字符到光标后面
  • 上下交换光标处两行的位置: ddp
    命令拆分:
    • dd 剪切当前行
    • p 粘贴剪切的内容到光标的下一行
  • 行转列:
    • 第一种, 多行合并成一行,即:
      AAAAA
      BBBBB
      CCCCC
      合并为:
      AAAAA BBBBB CCCCC
      方法1: normal状态下 3J 其中的3是范围,可以是书签或者搜索位置等方式实现,J为合并
      注: 如果改为3gJ的话,则合并时各行没有空白AAAAABBBBBCCCCC, 下面方法类似,不再重复这两种合并方式的区别.

    方法2: 命令状态下 :1,3 join   或 :1,3 j (注意j前面是空格)

    方法3: 传统一点的,替换换行符的方式,为避免最后一行也被换掉,范围缩小了,命令状态下  :1,2s/\n/ /

    • 第二种,隔行合并,即:

    AAAAA
    BBBBB
    CCCCC
    DDDDD

    合并为:

    AAAAA BBBBB
    CCCCC DDDDD

    方法1: 借用一下宏录制功能, normal状态下 qaJjq 实现录制, 然后在合适的区域重复执行n遍,这里2遍即可,normal状态下2@a

    方法2: 命令状态下 :1,4g/^/ join  增加了g过滤后,合并变成了隔行处理

  • 在每行行首添加相同的内容
    :%s/^/要添加的内容
  • 在每行行尾添加相同的内容
    :%s/$/要添加的内容
  • 利用正则表达式删除代码段每行的行号
    :%s/^\s[0-9]\s*//gc
  • 删除某一行之前的所有内容
    • 先找到这一行,复制这一行的内容,然后全文查找这一行的内容,这时候这一行是高亮的
      1658823-20190704103054232-1526082282.png
    • 然后gg回到第一行
    • dn
      1658823-20190704103115967-326730554.png

转载于:https://www.cnblogs.com/goldenSky/p/10867844.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值