Из фантастической книги Дрю Нейла "Practical Vim" я узнал, что вы можете сделать с помощью команды :g
.Однако есть одно выражение, которое я не получаю.
:g/{/ .+1,/}/-1 sort
Это сортирует все строки в скобках в файле по алфавиту.Общая форма этой команды:
:global/{pattern}/[cmd]
, где [cmd]
состоит из [range] [cmd]
.Я понял, что шаблон поиска является отправной точкой, поэтому :g/{/
ясно.Затем следует диапазон .+1,/}/-1
, где .
является текущей строкой (т. Е. Каждая строка соответствует шаблону {
), +1
добавляет смещение на одну строку, ,
отделяет начало диапазона от конца, /}/
говоря "до закрывающей скобки" и -1
вычитая одну строку, чтобы соответствовать только внутреннему содержанию фигурных скобок.Чего я не понимаю, так это частицу /}/
.Для чего нужны слэши?Почему нельзя просто написать }
?
РЕДАКТИРОВАТЬ: Из Vimhelp 10.3 Теперь я знаю, что /}/
- это шаблон поиска, используемый для верхней границы диапазона.Что оставляет меня в замешательстве насчет второго /
здесь.Итак, обновленный вопрос: Зачем мне нужен второй /
перед -1
?