重复一个块的命令

时间:2011-03-14 15:18:19

标签: vim

我和vim一起工作了4周,我想知道如何做到这一点:

我想在ruby中添加一个'#'注释代码。我可以做一个'。'对于所有线路。但是,如果我有很多要评论的话呢?

我是否可以在一个块上执行某些命令?

不是:这并不仅仅意味着放置'#'。

4 个答案:

答案 0 :(得分:4)

您可以进行视觉阻止模式。在行的开头按ctrl + v然后将光标向下移动任意多行以便注释掉,按Shift + i然后#然后转义它将在所有这些行的前面加上#。我个人使用tComment。有很多插件可用于评论处理。

http://www.vim.org/scripts/script.php?script_id=1173

答案 1 :(得分:2)

您需要按块选择。

开始用CTRL-V选择,按4j,然后按I(大写i)。

答案 2 :(得分:1)

对于所有行,您可以执行此操作:

:%s/^\(.*)/#\1

对于一个区块,您可以通过交互式选择来完成:

:%s/^\(.*)/#\1/c

Vim会在每场比赛时提示替换(回答y或n)

我想有一种方法可以使用行号,或者可能是行组,但我现在还没有这个想法。

编辑:所以对于块(如评论建议的那样):

vip (in normal mode to select the block)
:'<,'>s/^\(.*\)/#\1/

:'<,'>s/^/#/

答案 3 :(得分:0)

答案已被接受,但您可能会觉得这很有用。 <leader>/评论一个块,<leader>?取消注释。以可视模式或正常运动工作,例如3,/来评论3行,假设逗号为你的邮件。

map <leader>/ :s/^\(\s*\)/# \1/<CR>:nohl<CR>"
map <leader>? :s/^\(\s*\)# /\1/<CR>:nohl<CR>"