如何在vi的haml段落中注释?

时间:2012-02-07 11:20:29

标签: vim editor vi

我刚刚开始潜入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之间的行与-#,然后再次对其进行评论。这将是什么命令?

3 个答案:

答案 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

链接:
https://github.com/tpope/vim-commentary

答案 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-#,您可以使用所选的评论方法替换-#