你最喜欢在 Vim 中注释多行的方式是啥? [关闭]
Posted
技术标签:
【中文标题】你最喜欢在 Vim 中注释多行的方式是啥? [关闭]【英文标题】:What is your favorite way to comment several lines in Vim? [closed]你最喜欢在 Vim 中注释多行的方式是什么? [关闭] 【发布时间】:2010-12-25 10:17:57 【问题描述】:在 Vim 中我必须同时注释几行的情况经常发生。我知道的方法不如说 TextMate 注释行的方法快。
你最喜欢的方式是什么?
我目前使用:
方法一:
转到一行的第一个字符并使用分块可视模式 (ctrl-v) 向下/向上直到选中您要注释掉的每一行的第一个字符 使用 shift-i 然后输入您的评论字符(#
用于 Ruby)
使用 esc 将注释字符插入每一行
方法二:
使用逐行可视模式(shift-v)选择需要注释掉的行 键入:
,它会为您提供:'<,'>
提示,您可以将其扩展到:'<,'>s/^/#/
方法三:
转到要注释掉的第一行 制作书签,例如输入mm
转到要注释掉的最后一行
输入:'m,.s/^/#/
我最喜欢方法1,但我还是希望有更好的方法。
【问题讨论】:
我使用#if 0
/#endif
,但可能这不是你想要的 ;-)
gms8994,输入字符并按ESC。
这个问题每隔一段时间就会弹出:***.com/questions/1676632/…***.com/questions/58584/…
没有足够代表投票赞成关闭的人如何将重复的问题引起主持人的注意?我从来没有遇到过举报。
【参考方案1】:
我通常只是将步骤保存在宏中,然后以我喜欢的任何方式调用宏。
【讨论】:
【参考方案2】:我认为您描述了最流行的注释代码的方法,但如果您愿意使用 Vim 脚本,请看一看:
The NERD Commenter EnhCommentify.vim tComment【讨论】:
现在 tpope 的 commentary.vim 是另一个相当流行的选择。【参考方案3】:我对正则表达式部分使用了键盘映射,但我首先进行了相同的视觉选择。通常使用:
vip
获取视觉块(段落视觉选择)
然后使用
\cc
\co
评论添加/删除(cc,co 选择了肌肉记忆的原因)
在 .vimrc 中定义的映射为:
vmap <leader>cc :s/^/#/<cr>
vmap <leader>co :s/^#//<cr>
【讨论】:
【参考方案4】:插件是要走的路。它们是可扩展的,它们已经支持您将使用的更多文件类型,它们能够自动切换一行的注释状态(换句话说:无需使用两个快捷方式就足够了)。
请参阅list given by CMS。
【讨论】:
【参考方案5】:虽然这已经相当老了,但我只是想添加我的解决方案,它与其他人非常相似,但添加了不突出显示的功能。在我的 .vimrc 文件中,我有以下地图:
:vmap `c :s/^/\/*/<cr>gv:s/$/*\//<cr>:noh<cr>i
:vmap `r :s/^\/\*//<cr>gv:s/\*\/$/<cr>:noh<cr>i
注意:我使用 /*line of code*/ 样式的注释来兼容旧的 c 代码。 在 vim 中,我只需突出显示这些行,然后按 `c 来评论和 `r 删除 cmets。
【讨论】:
【参考方案6】:我正在寻找一组用于 ANSI C 单行注释的命令,并且我已经在 SO 上尝试了大部分答案。
它们都不适合我的需要,因为我现在必须使用旧的 7.2 版本的 Vim,而且我无法轻松下载合适的插件,所以我想出了这些方便的映射:
:nnoremap <leader>c :exe "normal mqI/* "<esc> :exe "normal A */"<esc> :exe "normal 'q"<cr>
:nnoremap <leader>r ^xxx$xxx^
<leader>c
退出一行并回到该行的开头。
<leader>r
删除当前行开头和结尾的 cmets。
【讨论】:
以上是关于你最喜欢在 Vim 中注释多行的方式是啥? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
你最喜欢的 MATLAB/Octave 编程技巧是啥? [关闭]