2016-06-01 5 views
0

У меня есть строки в этом файле: case field == "first_name" || field == "last_name", и я хотел бы удалить отметки кавычек и поместить текст constants. в начало из всех них.Как вставить слово/текст перед каждой «строкой» в vim и удалить кавычки

Это конечная цель: case field == constants.first_name || field == constants.last_name.

ответ

1

Использование поиска и замены, просто выполните следующую команду:

%s/\("\)\([^"]\{-}\)\1/constants.\2/g 

по частям:

% - In all lines 
s - substitute 
\("\)\([^"]\{-}\)\1 - part1 (find any string that is surronded by double-quotes) 
constants.\2 - by part2 (add constants. to second cached group in regex) 
g - globally 
+0

Это замечательно! Благодарю. я делал это вручную, а затем начал использовать '% s/'// g', чтобы избавиться от кавычек, и я понял, что должен был быть гораздо лучший способ сделать это – keala

1

Вы можете сделать это с помощью макроса. Пресс qaq для регистрации a.

Перейти к строке 1, нажав :1

qa Нажмите, чтобы начать запись в a регистре.

Затем найдите текст, например /"\S\+". Он выделит текст.

Затем введите xiconstants., а затем нажмите ESC , затем f", затем x.

Тип @a для воспроизведения рекурсивно. Остановить запись, нажав q.

После этого вы можете нажать @a один раз, и он будет заменен повсеместно рекурсивно, пока все такие слова не будут изменены.

+0

действительно отличное объяснение.) – keala