在VIM中,我需要注释掉一段Ruby代码:
我导航到我要注释掉的行的第一列
我按CTRL-v进入可视区块模式
我向下导航到我想要结束操作的地方
r
如果我想取消注释代码或者r#
我想将其注释掉,我会输入.
这个工作流程对我来说似乎没问题,有没有办法改进这个过程?是否有任何其他技巧可以在vim中评论或取消注释ruby代码部分?
我做的几乎和你一样.
注释:
CTRL-V
然后用视觉块选择I#
(#
在开头插入)
取消注释:
用CTRL-V
随后的视觉块选择X
(删除行上的第一个符号)
请注意大写I
和X
.
对于每种语言(ftplugin),我编写映射,添加或删除注释引导并将光标向下移动一行.例如,在我的python ftplugin中,我有这个:
noremapK :s,^\(\s*\)[^# \t]\@=,\1#,e :nohls zvj noremap :s,^\(\s*\)#\s\@!,\1,e :nohls zvj
我发现这是一个非常灵活的设置:
点击K
评论当前行.
K
反复点击以评论很多行.
6K
评论6行.
K
在视觉模式中评论整个选择.
所有内容都可以使用相同的方式取消注释 CTRL-K
如果行已经注释,则它们不会#
在开头添加额外的行.
如果a #
后跟空格,则将其视为文本注释,不会被触及.
我对每种语言略有适应.对于旧C评论(/*...*/)它不起作用,但我不想再使用它们.
有些人似乎喜欢Nerd Commenter
VIM-评论蒂姆教皇,它定义了一个注释操作gc
vim-textobj-rubyblock,它为Ruby do ...块定义ir
(在Ruby块内部)和ar
(在Ruby块周围).
vim-ruby定义im
/ am
用于Ruby方法内部/周围,以及iM
/ aM
用于Ruby类内部/周围.
gcir
/ gcar
在Ruby do/end块内/周围发表评论.
gcim
/ gcam
在Ruby方法内/周围注释.
gciM
/ gcaM
在Ruby类内部/周围发表评论.
加上正常的评论地图喜欢gcc
评论一行,或5gcc
评论5行.
总而言之,它非常像Vim和自然.
希望有所帮助.
你试过EnhCommentify.vim或tComment.vim吗?
我喜欢使用以下内容:
将光标放在要注释掉的第一行上
输入ma(无冒号)在该行上放置标记
转到要注释的块的最后一行
输入:'a,.s/^ /#/然后输入
也就是说,从包含标记"a"的行到当前行,将哈希替换为行的开头.