在Vimrc中为代码的注释行创建映射

问题描述 投票:0回答:1

我想在Vim中创建一个用于注释一行或多行代码的映射,以便能够轻松地对事物进行临时注释。现在,我已经完成了以下操作,只需在所有选定行的前面插入//

" place // at the start of current line
nmap #> ^i//<Esc>
nmap ## ^i//<Esc>
" unindent current line
nmap #< ^xx
" change indentation of multiple lines
vmap #> ^<C-v>I//<Esc>
vmap #< ^<C-v><Right>d<Esc>

这已经具有相当不错的功能,但是只限于带有//注释的语言。我希望能够基于语法突出显示规则自动检测我正在使用的语言的单行注释字符,然后将该字符用于(取消)注释行。我会写一个简短的定义列表,例如用//表示语言的*.{c,cpp,cc,js}#表示语言的*.py%表示语言的*.tex等。

[此外,我想能够检测行的开头是否为注释,就像键组合<<仅以空格开头时不缩进代码一样。我认为这可能需要使用正则表达式来完成,但这还取决于是否可以检测到是否有注释。

我希望有这样做的可能性。

vim editor comments vim-plugin vim-syntax-highlighting
1个回答
0
投票

是的,有很多可能性;的确,有几位作者已经构建了成熟的健壮且可配置的插件来注释行:

因此,除非这是出于学习目的,或者如果您绝对不能安装插件(但是如果您可以配置Vim,那么每次运行都会有下载和安装插件的方法),为此,我强烈考虑使用插件。

Vim已经为特定于文件类型的注释字符提供了'comments''comments'选项。插件使用这些插件(至少作为后备;一些插件也有自己的内置列表)。

© www.soinside.com 2019 - 2024. All rights reserved.