我刚刚开始潜入vi,到目前为止只学习了基本的移动/编辑命令。在阅读本书时,是否有一种快速方法可以在同一列中用-#
注释带有光标位置的段落(相应地缩进行)?
假设我有一段代码:
%table
- unless paginate(@clients).nil?
%tr
%th
=t('index.name')
%th
=t('index.address')
%th
=t('index.phone')
=render :partial => 'client', :collection => @clients
我希望在一列中注明- unless
和=render :partial
之间的行与-#
,然后再次对其进行评论。这将是什么命令?
答案 0 :(得分:2)
在块状选择模式下,您可以按I
插入块前面,A
插入块后面。
设置'relativenumber'
(:set rnu
)有助于计算行数。
从 CTRL-V 开始切换到块状选择模式,然后8j
向下走8行,然后I#
Esc 插入#
。
要删除它:d
CTRL-V 8j将逐块删除。
警告,如果您碰巧在Windows上使用vanilla gvim.exe,可能会激活mswin.vim
重新映射CTRL-V,然后使用CTRL-Q(或禁用此插件)
答案 1 :(得分:1)
如果您对如何工作不太感兴趣,并且只是希望它能够工作,那么有许多插件可以为各种语言提供(联合国)评论功能。蒂姆波普的评论.vim是我刚开始使用的那个,作为nerdcommenter的替代。
我刚安装它所以我不能说任何缺陷,但蒂姆波普的东西(几乎?)总是很优秀。使用该插件,您可以通过选择视觉块并键入\\\
来评论Haml段落。它也需要动作,例如\\ap
。
答案 2 :(得分:0)
如果您经常使用它,则可以在.vimrc
command -range=% C :<line1>,<line2>s/^/-#/
然后在vi中,您可以按常规方式应用:<range>C
。您可以使用:10,20C
或.,+10C
执行此操作。您可以使用以下命令取消注释。
command -range=% D :<line1>,<line2>s/^-#//
由于我使用vi来使用不同类型注释的语言,我也使用这些命令:
command -range=% -nargs=1 Ca :<line1>,<line2>s/^/<args>/
command -range=% -nargs=1 Da :<line1>,<line2>s/^<args>//
允许您执行:10,20Ca-#
,您可以使用所选的评论方法替换-#
。