#vim
#vim
Вопрос:
Я закомментировал блоки кода в нескольких файлах с именами foo1.tex, …, foo9.tex. Каждый блок имеет несколько строк между одной строкой, начинающейся с «{ bf Решение.}» и заканчивающиеся » end{ex}».
{bf Solution.}
Line1
Line2
...
Line100
end{ex}
Строка 1 ~ 100 — это строки, которые нужно закомментировать.
Ответ №1:
Вы можете создать следующий макрос:
qq
для запуска макроса в регистре q
Затем найдите начало раздела, который вы хотите прокомментировать:
/{\bf Solution.}
Перейдите на одну строку вниз до первого комментария:
j
Перейдите в визуальный режим блока:
ctrl-v
Найдите конец раздела:
/\end{ex}
Перейдите на одну строку до последней, чтобы прокомментировать:
k
Перейдите в режим вставки и добавьте комментарий:
I%
Вернитесь в обычный режим и остановите запись макроса:
<escape>q
Затем вы можете запустить макрос с:
@q
Чтобы запустить его для всех открытых файлов, вы можете сделать:
:bufdo norm @q
Он будет комментировать один блок, поэтому его нужно будет повторить, если есть несколько блоков для комментариев.
Комментарии:
1. Очень ценю ваш быстрый и потрясающий ответ!
2. Еще один вопрос: поскольку мне нужно вводить «@ q» много-много раз, есть ли способ автоматически выполнять это? @padawin
3. В данном файле вы можете сделать:
%s/{\bf Solution.}//n
чтобы подсчитать количество имеющихся блоков «Решения», а затем вызвать макрос это количество раз:42@q
(чтобы вызвать его 42 раза, конечно, 42 для замены фактическим количеством)