Преобразование в нижний регистр в визуальном режиме Vim до тех пор, пока не будет указан разделитель c - PullRequest
2 голосов
/ 06 августа 2020

В основном у меня есть файл yml, и я хочу преобразовать ключи в нижний регистр.

пример ниже.

KEY: value
ANOTHER_KEY: another_value

Я попробовал vwu, и он работает, как ожидалось, но я хотите применить ко всему файлу.

Я также использовал . (точка), чтобы применить указанную выше команду, используя number & j несколько раз.

Ответы [ 2 ]

2 голосов
/ 06 августа 2020

Другой возможный подход:

:%norm! guiw

 %  ................. the whole file
 norm! .............. in normal mode please
 gu ................. make {motion} text lowercase 
 iw ................. inner word

Также может быть:

:%norm! gut:

t: .............. until :
1 голос
/ 06 августа 2020

Хорошо, один из подходов - использовать функциональность sub-replace-expression. Следующая команда:

:%s/\(\s*\)\(\w*\)\(.*\)/\= submatch(1) . tolower(submatch(2)) . submatch(3)/

Будет для каждой строки соответствовать whitespace word whatever и заменять его тем же, но word в нижнем регистре. Я предполагаю, что вы знакомы с ограничениями и использованием регулярных выражений, поэтому я не буду go вдаваться во все подробности того, почему я сделал выражение таким образом, как его изменить или ограничения на их использование в контексте. -бесплатный язык (я думаю?) как здесь yaml, но токен \= в команде :s может быть довольно изящным.

...