在使用Vim进行编程时,经常遇到需要快速注释或取消注释多行代码的场景,Vim教程网根据已有的教程介绍,总结了三种快速注释/取消注释多行代码的方法。

一、使用Vim可视化模式快速注释/取消注释多行

Vim可视化模式下可以通过 块选择模式 对选中的多行文本执行相同的操作。

使用Vim可视化模式快速注释多行的操作顺序如下:

(1) 按 Ctrl + v 进入块选择模式
(2) 向上或向下移动光标选择多行
(3) 按0移动光标到行的起始位置
(4) 按大写的 I 跳转光标到选中的整个矩形框的左上角
(5) 插入注释符
(6) 按Esc回到命令模式

二、使用Vim宏快速注释/取消注释多行

Vim宏可以把指定的一系列操作命令缓存到某个Vim寄存器中,然后在需要的时候将缓存的指令进行回放,达到重复操作的目的。

使用Vim宏快速注释多行的操作顺序如下:

(1) Vim命令模式下,按下 qa 后开始进入宏录制状态
(2) 按大写的 I 跳转到行首并进入到插入模式,输入注释符号
(3) 按 j 跳转到下一行后按 Esc 结束宏录制
(4) 按 2@a 回放录制的宏两次,完成快速注释3行

三、使用Vim替换命令substitute快速注释/取消注释多行

Vim可以在尾行模式下使用 :substitute 或 :s 命令将指定的字符替换成其他目标字符。

因此,为了在15~17行的 行首4个空格 后加上注释符号,可以使用vim替换命令:15,17s/^ / \/\/

注意:上述命令对 / 进行了转义,替换完成后使用 :noh 取消了高亮结果,方便展示操作结果。

关于 noh 命令,可以参考vim教程网上的博文Vim清除上次的搜索高亮结果

[No000018D]Vim快速注释/取消注释多行的几种方法-Vim使用技巧(2)的更多相关文章

  1. Bash Shell 注释多行的几种方法(转)

    很实用的小技巧. 我们shell脚本写好了,但是想一行一行测试,怎么办. 笨方法:每行前面加一个 #,有时候我们原脚本里面本来就有注释,所以想再恢复的时候就麻烦了. Bash Shell 注释多行的几 ...

  2. 如何使用poi在word表格中插入行的4种方法

    本文记录了,在word表格中插入新行的几种方法.直接上代码说明 table.addNewRowBetween 没实现,官网文档也说明,只有函数名,但没具体实现,但很多文章还介绍如何使用这个函数,真是害 ...

  3. vim常用操作之复制剪切粘贴,注释取消注释,多行缩进等

    进入vim按下v键,选择要操作的对象 按下y复制,d剪切,p粘贴 >缩进,<取消缩进 按下esc退出操作 按下ctrl+v,选择要操作对象, 按下大写I,写入注释符号,按下d取消注释 按下 ...

  4. vim 注释取消注释多行

    按下ctrl+v选中多行,按大写I(必须是大写的I)进入编辑模式,输入注释符号如#,最后按下esc退出就完成了 取消注释一样按下ctrl+v选中,按d删除

  5. vi/vim多行注释和取消注释

    多行注释: 1. 进入命令行模式,按ctrl + v进入 visual block模式,然后按j, 或者k选中多行,把需要注释的行标记起来 2. 按大写字母I,再插入注释符,例如// 3. 按esc键 ...

  6. DataGridView动态添加新行的两种方法

    简单介绍如何为DataGridView控件动态添加新行的两种方 法: 方法一: int index=this.dataGridView1.Rows.Add();this.dataGridView1.R ...

  7. vim多行注释和取消注释 Ubuntu

    多行注释: 1. 进入命令行模式,按ctrl + v进入 visual block模式,然后按d 是选择到最后一行,也可以直接光标上下左右,把需要注释的行标记起来 2. 按大写字母I,再插入注释符,例 ...

  8. windows系统中,在当前目录下打开cmd命令行的两种方法

    1.在当前路径地址栏中直接输入‘cmd’,然后回车. 2.在当前路径下,按住‘shift’键同时点击鼠标右键,点击“在此处打开Powershell”. 其实你会发现,两个命令行有很大的区别. cmd: ...

  9. DataTable添加列和行的三种方法

    JRoger 原文 #region 方法一: DataTable tblDatas =new DataTable("Datas"); DataColumn dc =null; dc ...

随机推荐

  1. 构建自己的 Smart Life 私有云(一)-> 破解涂鸦智能插座

    博客搬迁至https://blog.wangjiegulu.com RSS订阅:https://blog.wangjiegulu.com/feed.xml 原文链接:https://blog.wang ...

  2. UltraVNC 简体中文版 1.2.2.1

    1.专门针对WinXP进行编译,同时适用XP之后的Windows版本(XP/Vista/8.1/10/2003/2008/2012): 2.配置低的计算机,Win8.1之前的系统,需要安装Mirror ...

  3. SQL Server 2016新特性:Temporal Table

    什么是系统版本的Temporal Table 系统版本的Temporal Table是可以保存历史修改数据并且可以简单的指定时间分析的用户表. 这个Temporal Table就是系统版本的Tempo ...

  4. 【转】Mac OS X 上修改主机名

    修改主机名称 sudo scutil --set HostName MacBookPro 修改共享名称 sudo scutil --set ComputerName MacBookPro [转自]:h ...

  5. 【iCore4 双核心板_uC/OS-II】例程五:信号量——共享资源

    一.实验说明: 信号量是操作系统中的一类事件,是实现任务间通信的一个中间环节.当系统中的多个任务 在运行时,经常需要互相无冲突地访问同一个资源,或者需要互相支持的依赖,甚至有时还要互 相加以必要的限制 ...

  6. Android Studio打包程序时出现transformClassesWithDexForRelease错误

    百度半天.没找到直接原因..国外网站上有写这个错误的..国内的真心没找到..英语水平有太低..实在没看懂怎么搞.. 后来发现clean项目的时候是提示如下错误: Information:Gradle ...

  7. 针对json的查询--alibaba的开源项目jsonq

    项目地址: https://github.com/alibaba/jsonq 示例json { , , "test": "Hello, world!", &qu ...

  8. QT 信号槽connect中解决自定义数据类型或数组作为函数参数的问题——QT qRegisterMetaType 注册MetaType——关键:注册自定义数据类型或QMap等容器类

    一般情况下信号槽直接连接方式不会出现问题,但是如果信号与槽在不同线程或Qt::QueuedConnection方式连接,可能会在连接期间报以下类似问题,如: QObject::connect: Can ...

  9. springboot 工程启动报错之Consider defining a bean of type ‘XXX’ in your configuration.

    一.前言: 使用springboot自动注入的方式搭建好了工程,结果启动的时候报错了!!!,错误如下图: Description: Field userEntityMapper in com.xxx. ...

  10. Jquery EasyUI Combotree根据选中的值展开所有父节点

    Jquery EasyUI Combotree根据选中的值展开所有父节点  Jquery EasyUI Combotree 展开父节点, Jquery EasyUI Combotree根据子节点选中的 ...