使用 Vim 编辑 Shell 脚本,在进行调试时,需要进行多行的注释,每次都要先切换到输入模式,在行首输入注释符#再退回命令模式,非常麻烦。

连续行的注释其实可以用替换命令来完成。换句话说,在指定范围行加#注释,可以使用 ":起始行,终止行 s/^/#/g",例如:

:1,10s/^/#/g

表示在第 1~10 行行首加"#"注释。"^"意为行首;"g"表示执行替换时不询问确认。如果希望每行交互询问是否执行,则可将 "g" 改为 "c"。

取消连续行注释,则可以使用 ":起始行,终止行s/^#//g",例如:

:1,10s/^#//g

意为将行首的"#"替换为空,即删除。

当然,使用语言不同,注释符号或想替换的内容不同,都可以采用此方法,灵活运用即可。

添加"//"注释要稍微麻烦一些,命令格式为 ":起始行,终止行 s/^////g"。例如:

:1,5s/^/\/\//g

表示在第 1~5 行行首加"//"注释,因为 "/" 前面需要加转义字符 "",所以写出来比较奇特。

以上方法可以解决连续行的注释问题,如果是非连续的多行就不灵了,这时我们可以定义快捷键简化操作。格式如下:

:map 快捷键 执行命令

如定义快捷键 "Ctrl+P" 为在行首添加 "#" 注释,可以执行 :map^P l#<Esc>。其中 "^P" 为定义快捷键 "Ctrl+P"。注意:必须同时按 "Ctrl+V+P" 快捷键生成 "^P" 方可有效,或先按 "Ctrl+V" 再按 "Ctrl+P" 也可以,直接输入 "^P" 是无效的。

l#<Esc> 就是此快捷键要触发的动作,"l" 为在光标所在行行首插入,"#" 为要输入的字符,"" 表示退回命令模式。"" 要逐个字符输入,不可直接按键盘上的 Esc 键。

设置成功后,直接在任意需要注释的行上按 "Ctrl+P" 快捷键,就会自动在行首加上 "#" 注释。取消此快捷键定义,输入 :unmap^P 即可。

我们可以延伸一下,如果想取消文件行首的快捷键,则可以设置 :map^B 0x,快捷键为 Ctrl+B, "0" 表示跳到行首,"x" 表示删除光标所在处字符。

再如,有时我们写完脚本等文件,需要在末尾注释中加入自己的邮箱,则可以直接定义每次按快捷键 "Ctrl+E" 实现插入邮箱,定义方法为 :map^E asamlee@itxdl.net<Esc>。其中 "a" 表示在当前字符后插入,samlee@itxdl.net 为插入的邮箱,<Esc> 表示插入后返回命令模式。

所以,通过定义快捷键,我们可以把前面讲到的命令组合起来使用。

将快捷键对应的命令保存在 .vimrc 文件中,即可在每次使用 Vim 时自动调用,非常方便。

5.9 Linux Vim批量注释和自定义注释的更多相关文章

  1. 【Eclipse】如何在Eclipse中如何自动添加注释和自定义注释风格

    背景简介 丰富的注释和良好的代码规范,对于代码的阅读性和可维护性起着至关重要的作用.几乎每个公司对这的要求还是比较严格的,往往会形成自己的一套编码规范.但是再实施过程中,如果全靠手动完成,不仅效率低下 ...

  2. 如何在Eclipse中如何自动添加注释和自定义注释风格

    1. 如何自动添加注释 可通过如下三种方法自动添加注释: (1)输入“/**”并回车. (2)用快捷键 Alt+Shift+J(先选中某个方法.类名或变量名). (3)在右键菜单中选择“Source ...

  3. Linux && vim 批量替换

    Linux批量文件的字符串替换 sed -i "s/oldstring/newstring/g" `grep oldstring -rl path` vim多行替换::1,2s/s ...

  4. 【Linux】Vim编辑器-批量注释与反注释

    [-] vim编辑器---批量注释与反注释 方法一 块选择模式 插入注释 取消注释 方法二 替换命令 批量注释 取消注释 实例演示   vim编辑器---批量注释与反注释 在使用vim编写代码的时候, ...

  5. NERD_commenter——VIM批量注释与反注释插件

    转自:http://www.xefan.com/archives/83568.html 这是对程序员非常实用的一款插件,支持多种语言的补全,还支持单行注释,批量注释,等各种命令映射. 使用方法,先下载 ...

  6. Vim编辑器-批量注释与反注释

    标签:linuxLinuxLINUXvimVIMVim编程 2013-01-10 09:52 27517人阅读 评论(3) 收藏 举报  分类: Linux(18)  版权声明:本文为博主原创文章,未 ...

  7. vim的批量注释与删除注释

    vim的批量注释与删除注释 方法一:块选择模式 批量注释: Ctrl + v 进入块选择模式,然后移动光标选中你要注释的行,再按大写的I进入行首插入模式输入注释符号如 // 或 #,输入完毕之后,Vi ...

  8. [转]vim编辑器---批量注释与反注释

    转 在使用vim编写代码的时候,经常需要用到批量注释与反注释一段代码.下面简要介绍其操作. 方法一 块选择模式 插入注释: 用v进入virtual模式 用上下键选中需要注释的行数 按Control+v ...

  9. vim批量注释

    vim批量注释 法一.在vim中 :20,30 s/^/#/g 20-30行 用 # 注释掉.(python是用#注释地---) :20,30 s/^#//g 20-30行 取消注释 法二. 1.多行 ...

  10. vim批量注释和反注释快捷键

    vim批量注释和反注释快捷键 我是个vim新手,非常喜欢这个工具,因为纯手工操作吧.可是有些快捷键还是不知道,写Python的时候经常要调试,会批量注释掉一些代码,vim不像pycharm那样 Ctr ...

随机推荐

  1. maven3.x上传jar

    由于工作需要,将原有的nexus2.x升级为nexus3.x,升级后创建仓库是非常方便,但是该如何将本地的jar上传到maven仓库呢?这个博主就像无头的苍蝇找了好久,才终于找到解决方案.下面描述下该 ...

  2. 获取Windows个性化中自带的聚焦锁屏

    想要保存登录屏幕(锁屏界面)的背景图片,可以通过以下脚本一键获取: @echo off setlocal enabledelayedexpansion :: Windows Spotlight 锁屏图 ...

  3. PySide6/PyQt开发经验总结(2) - 设置快捷键

    Qt设置快捷键 本文仅供本人知识总结使用,所以内容会比较浅显,不喜勿喷. 目录 Qt设置快捷键 一.需要的类 QShortcut 函数: 二.设置快捷键 官方文档原文翻译: 我的理解: 一.需要的类 ...

  4. 记录_玩客云v1.0大坑!!!

    刷机 短接后刷入uboot固件, 制作U盘镜像启动会出现莫名其妙的内存写入失败!!!!!!!!!!! 但是这并没坏 拆机 , 短接刷armbian v5.67  内核 3.10, 这个版本刷完后什么特 ...

  5. Vue elementui 进度条随机颜色

    项目要求显示进度条,而且进度条的颜色不能重复,所以就有了随机进度条的想法. 实现的最终效果: <el-table-column header-align="center" a ...

  6. HBuilder X在4K显示器怎么设置HBuilderX窗口本身的字体大小

    在使用HBuilder X编辑器的时候,使用笔记本自身的显示器,编辑器窗口本身的字体大小都正好,但是将HBuilder X编辑器用在外接显示器(高清)或者4K显示器上的时候,就不行了.怎么解决呢? 在 ...

  7. android ImageView 设定宽度铺满,高度自定义

    问题:imageView 宽度铺满,高度自定义,会出现上下留白的现象(一般比例的还好) 解决: <xxx.xxx.xxx.xxx.FullWidthImageView android:id=&q ...

  8. Innodb 单表索引查询和连接查询效率分析

    一.MySQL查询访问方法 mysql执行查询语句的方式叫做访问方法或访问类型,这些访问类型具体为 const.ref.range.index.all等. 同一个查询语句可以使用多种不同的访问方法来执 ...

  9. AT_agc057_e 题解

    AT_agc057_e [0] 约定 \(r_i = \sum\limits_{j = 1}^{m}[A_{i,j}\le k]\) \(r^{'}_i = \sum\limits_{j = 1}^{ ...

  10. ASP.NET Core – Logging & Serilog

    前言 以前就写过了 Asp.net core 学习笔记 (Logging 日志), 只是有点乱, 这篇作为整理版. 参考: docs – Logging in .NET Core and ASP.NE ...