Я видел, как опытный ниндзя Vim делал это некоторое время назад, но я понятия не имел, с чего начать.
А) Есть ли способ настроить цвет фона vims так, чтобы выделялись последовательные строки с одинаковым содержимым.
Б) Если кто-то знает, как это сделать, то неплохо было бы сделать это, если бы выделение происходило в последовательных строках, а учитывалось только первое слово (а не вся строка).
Вторая настройка, если подсветка может быть настроена на разные цвета, используется в зависимости от количества совпадающих строк (или активны слова в зависимости от AB). Таким образом, у нас есть только две последовательные линии, которые соответствуют зеленым, 3-5 последовательных линий, затем оранжевым, 6+, а затем красным.
syntax-highlighting
highlight
Мартин Йорк
источник
источник
Ответы:
Следующие
match
наборы, кажется, работают для (A):Кажется, порядок здесь имеет решающее значение. Если после
Low
илиMedium
встречаются совпаденияCritical
, они попадают под более слабые требования к ним и аналогично дляLow
wrtMedium
.Подсветка появляется не сразу после добавления, скажем, 3-й или 6-й строки дубликата, а после того, как вы немного переместитесь после их добавления. Я не уверен, что именно это вызывает.
Для B, я думаю, вы могли бы заменить регулярное выражение на:
В общем, заменить все
(.*)
с(\S+).*
и\1
с\1.*
, или то , что представляет собой слово для вас.источник
В качестве отправной точки, вот шаблон поиска, который совпадает с повторяющимися строками (игнорируя изменения в начальных пробелах):
:help pattern
предоставит больше информации о том, как сделать регулярные выражения, как это:help syntax
покажет вам, как взять это регулярное выражение и превратить его в то, что выделено для васНаучиться писать синтаксические скрипты может быть непросто, поэтому хорошим краткосрочным решением является сделать это «на лету», убедившись
'incsearch'
, что поиски выделены и сопоставлены ключи для выполнения вышеуказанного поиска, т.е.nnoremap <F5> /^\s*\(.\+\)\n\zs\(\s*\1\n\)\+<CR>
источник
yy10p
строки с полным регулярным выражением, затем выбрать части, которые вы хотите удалить, и нажатьr<space>
. Может быть, я добавлю команду «заменить все, кроме выделения в этой строке пробелами», чтобы немного ускорить процесс.,r
затем соедините линии вместе<space>
в обычном / визуальном режиме.