如何注释掉vim中多个文件中以特定模式开始/结束的代码块?
我正在注释多个名为foo1.tex,…,foo9.tex的文件中的代码块。每个块在以“{\bf Solution.}”开头和以“\end{ex}”结尾的一行之间有多行如何注释掉vim中多个文件中以特定模式开始/结束的代码块?,vim,Vim,我正在注释多个名为foo1.tex,…,foo9.tex的文件中的代码块。每个块在以“{\bf Solution.}”开头和以“\end{ex}”结尾的一行之间有多行 第1~100行是要注释掉的行。您可以创建以下宏: qq启动寄存器中的宏q 然后,搜索要注释的部分的开头: /{\\bf Solution.} j k 下一行至第一行进行评论: /{\\bf Solution.} j k 进入块视觉模式: ctrl-v 搜索该节的结尾: /\\end{ex} 到最后一行进行评论: /
第1~100行是要注释掉的行。您可以创建以下宏:
qq
启动寄存器中的宏q
然后,搜索要注释的部分的开头:
/{\\bf Solution.}
j
k
下一行至第一行进行评论:
/{\\bf Solution.}
j
k
进入块视觉模式:
ctrl-v
搜索该节的结尾:
/\\end{ex}
到最后一行进行评论:
/{\\bf Solution.}
j
k
进入插入模式,并添加注释:
I%
返回正常模式并停止宏录制:
<escape>q
要在所有打开的文件上运行它,您可以执行以下操作:
:bufdo norm @q
它将注释单个块,因此如果有多个块要注释,则需要重复该操作 非常感谢您快速而精彩的回答!还有一个问题:既然我需要多次键入“@q”,有没有办法自动执行这些操作@padawin在给定文件中,您可以执行以下操作:
%s/{\\bf Solution.}//n
计算存在的“Solution”块的数量,然后调用宏的次数:42@q
(称为42次,当然,用实际计数替换为42次)