本文作者:心月

Linux Vim批量注释和自定义注释快捷键

心月IT博客 2019-02-15
Linux Vim批量注释和自定义注释快捷键摘要:使用 Vim 编辑 Shell 脚本,在进行调试时,需要进行多行的注释,每次都要先切换到输入模式,在行首输入注释符 " "再退回命令模式,非常麻烦。

使用 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#"。其中"^P"为定义快捷键"Ctrl+P"。注意:必须同时按"Ctrl+V+P"快捷键生成"^P"方可有效,或先按"Ctrl+V"再按"Ctrl+P"也可以,直接输入"^P"是无效的。

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

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

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

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

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

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

文章版权及转载声明:

本文由 心月IT技术博客 博主整理于 2019-02-15
若转载请注明原文及出处:https://www.xinyueseo.com/linux/109.html

分享到:
赞(
发表评论
快捷输入:

验证码

    评论列表 (有 0 条评论,人围观)参与讨论