vim使用注释

来自https://blog.youkuaiyun.com/xiajun07061225/article/details/8488210

方法一 块选择模式



插入注释:

用v进入virtual模式



用上下键选中需要注释的行数



按Control+v(win下面ctrl+q)进入列模式



按大些“I”进入插入模式,输入注释符“#”或者是"//",然后立刻按下ESC(两下)





取消注释:


Ctrl + v 进入块选择模式,选中你要删除的行首的注释符号,注意// 要选中两个,选好之后按d即可删除注释





方法二 替换命令



批量注释:


使用下面命令在指定的行首添加注释:

:起始行号,结束行号s/^/注释符/g


取消注释:


:起始行号,结束行号s/^注释符//g


实例演示:


在27 - 30行添加 // 注释

:27,30s#^#//#g





在27 - 30行删除 // 注释

:27,30s#^//##g




在10 - 20行添加 # 注释

:10,20s/^/#/g

在10 - 20行删除 # 注释

#:10,20s/^/#/g这里有错
应该是2,3s/#//g
 注意例子中正则的分割符使用的是相反的符号,如果匹配// 那么使用 #作分隔符这样不需要对/作转义处理,节省输入次数。

引出正则表达式在vim中的应用:https://www.google.com/search?ei=DZm4Wp31Kp6WjQOnua-QCA&q=vim%E4%B8%AD%E4%BD%BF%E7%94%A8%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F&oq=vim%E4%B8%AD%E4%BD%BF%E7%94%A8%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F&gs_l=psy-ab.3...2304270.2319429.0.2319566.39.34.5.0.0.0.1144.4929.3-6j2j0j1j1.10.0....0...1.1j4.64.psy-ab..26.3.1066...0j35i39k1j0i131i67k1j0i131k1.0.C0i9Sez9QsU

Vim查找替换及正则表达式的使用
JAN 13TH, 2013
简单替换表达式

:[range]s/from/to/[flags]

range:搜索范围,如果没有指定范围,则作用于但前行。

:1,10s/from/to/ 表示在第1到第10行(包含第1,第10行)之间搜索替换;
:10s/from/to/ 表示只在第10行搜索替换;
:%s/from/to/ 表示在所有行中搜索替换;
1,$s/from/to/ 同上。
flags 有如下四个选项:

c confirm,每次替换前询问;
e error, 不显示错误;
g globle,不询问,整行替换。如果不加g选项,则只替换每行的第一个匹配到的字符串;
i ignore,忽略大小写。
这些选项可以合并使用,如cgi表示不区分大小写,整行替换,替换前询问。

正则表达式

元字符

元字符

元字符	 说明
.	 匹配任意字符
[abc]	 匹配方括号中的任意一个字符,可用-表示字符范围。如[a-z0-9]匹配小写字母和数字
[^abc]	 匹配除方括号中字符之外的任意字符
\d	 匹配阿拉伯数字,等同于[0-9]
\D	 匹配阿拉伯数字之外的任意字符,等同于[^0-9]
\x	 匹配十六进制数字,等同于[0-9A-Fa-f]
\X	 匹配十六进制数字之外的任意字符,等同于[^0-9A-Fa-f]
\l	 匹配[a-z]
\L	 匹配[^a-z]
\u	 匹配[A-Z]
\U	 匹配[^A-Z]
\w	 匹配单词字母,等同于[0-9A-Za-z_]
\W	 匹配单词字母之外的任意字符,等同于[^0-9A-Za-z_]
\t	 匹配<TAB>字符
\s	 匹配空白字符,等同于[\t]
\S	 匹配非空白字符,等同于[^\t]


一些普通字符需转意

元字符	 说明
\*	 匹配* 字符
.	 匹配. 字符
\/	 匹配 / 字符
\	 匹配 \ 字符
\[	 匹配 [ 字符
\]	 匹配 ] 字符


表示数量的元字符

元字符	 说明
*	 匹配0-任意个
\+	 匹配1-任意个
\?	 匹配0-1个
\{n,m}	 匹配n-m个
\{n}	 匹配n个
\{n,}	 匹配n-任意个
\{,m}	 匹配0-m个


表示位置的元字符

元字符	 说明
$	 匹配行尾
^	 匹配行首
\<	 匹配单词词首
\>	 匹配单词词尾


替换变量

在正则式中以\(和\)括起来的正则表达式,在后面使用的时候可以用\1、\2等变量来访问\(和\)中的内容。

例子

删除行尾空格::%s/\s+$//g
删除行首多余空格:%s/^\s*// 或者 %s/^ *//
删除沒有內容的空行:%s/^$// 或者 g/^$/d
删除包含有空格组成的空行:%s/^\s*$// 或者 g/^\s*$/d
删除以空格或TAB开头到结尾的空行:%s/^[ |\t]*$// 或者 g/^[ |\t]*$/d
把文中的所有字符串“abc……xyz”替换为“xyz……abc”可以有下列写法

:%s/abc\(.*\)xyz/xyz\1abc/g
:%s/\(abc\)\(.*\)\(xyz\)/\3\2\1/g
Posted by tanqisen Jan 13th, 2013   vim

« GitHub+Octopress搭建免费blog一步一步实现iOS应用PUSH功能 »
Comments

https://blog.youkuaiyun.com/glorin/article/details/6317098


------


<think>好的,我现在需要帮助用户解决如何在Vim中快速进行代码注释的问题。用户提到了Vim快捷键、注释代码的方法以及可能的插件配置。首先,我需要回忆一下Vim的基本操作和常用插件。 首先,Vim本身有没有原生的注释功能?我记得没有直接的快捷键,但可以通过录制宏或替换命令来实现。比如,在普通模式下,选择多行后使用替换命令添加注释符号。例如,对于Python代码,可以用`:s/^/# /`来在行首添加#。不过每次都要输入命令可能不太方便,特别是对于不同的文件类型需要不同的注释符号。 接下来是插件部分。常见的注释插件有NERD Commenter和vim-commentary。这两个插件都可以简化注释操作。NERD Commenter可能需要用户安装,然后使用\cc来注释,\cu取消注释vim-commentary则更简洁,使用gc来切换注释状态。需要确认插件的安装方法,比如通过Vim插件管理器如Vundle或Pathogen。 然后,用户可能想知道如何配置这些插件。比如在.vimrc中添加Plugin 'preservim/nerdcommenter',然后运行:PluginInstall。或者使用vim-commentary,安装后直接使用gc动作命令。需要详细说明步骤,确保用户能正确安装和配置。 另外,用户可能对原生方法更感兴趣,不想安装插件的话,可以教他们自定义快捷键。例如,在.vimrc中映射快捷键,比如按Ctrl+/来注释当前行或选中的行。这部分需要解释如何编写vimscript,比如使用vnoremap和nnoremap来定义可视模式和普通模式下的快捷键,并处理不同文件类型的注释符号。可能需要用到autocmd根据文件类型设置不同的注释字符。 还要考虑不同文件类型的差异,比如Python用#,JavaScript用//,HTML用<!-- -->。插件通常能自动识别文件类型,但自定义映射可能需要用户自己处理,或者借助Vim的commentstring选项。比如设置`set commentstring=#\ %s`,然后使用printf来替换。 可能用户还会遇到问题,比如快捷键冲突,或者插件未正确加载。需要提醒用户检查插件管理器的配置,确保插件已正确安装,并重启Vim。此外,原生方法可能在某些情况下不够灵活,插件会更方便。 最后,总结几种方法:原生替换命令、自定义快捷键、使用插件。根据用户的需求,提供不同解决方案的步骤,确保清晰易懂。同时,生成相关问题,帮助用户进一步学习Vim的其他操作,比如多文件编辑或配置管理。</think>### 如何在 Vim 中快速注释代码? 在 Vim注释代码可以通过原生快捷键、自定义配置或插件实现。以下是具体方法: --- #### **1. 原生 Vim 快捷键(无需插件)** - **单行注释**: 在普通模式下按 `0` 跳到行首,输入注释符号(如 `#`、`//`),再按 `i` 进入插入模式输入内容。 示例(Python): ```vim 0i# <Esc> " 在行首插入 # ``` - **多行注释**: 1. 按 `Ctrl + V` 进入块选择模式。 2. 选择多行后按 `I` 进入插入模式,输入注释符号。 3. 按 `Esc` 应用注释到所有选中行[^2]。 --- #### **2. 自定义快捷键(.vimrc 配置)** 在 `~/.vimrc` 中添加以下代码,实现快捷键 `Ctrl+/` 注释/取消注释: ```vim " 注释快捷键(支持多语言) vnoremap <C-/> :s/^/\/\/<CR> " 取消注释时替换为空 nnoremap <C-/> :s/^/\/\/<CR> ``` - **说明**: - `vnoremap` 表示可视模式映射,`nnoremap` 表示普通模式映射。 - 根据文件类型调整注释符号(如 Python 用 `#`,JavaScript 用 `//`)[^1]。 --- #### **3. 使用插件(推荐)** - **插件推荐**: - **NERD Commenter**:支持多种语言,快捷键为 `\cc`(注释)、`\cu`(取消注释)。 - **vim-commentary**:更轻量,使用 `gc` 组合键(如 `gcc` 注释当前行)。 - **安装步骤**(以 Vundle 为例): 1. 在 `.vimrc` 中添加: ```vim Plugin 'preservim/nerdcommenter' " 或 Plugin 'tpope/vim-commentary' ``` 2. 重启 Vim 并执行 `:PluginInstall`。 --- #### **4. 多语言注释示例** | 文件类型 | 注释符号 | 插件自动匹配 | |----------|----------|--------------| | Python | `#` | ✔️ | | C++ | `//` | ✔️ | | HTML | `<!-- -->` | ✔️ | --- ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值