vim / gedit удаляет слова между символами

У меня есть огромный файл с записями, подобными приведенным ниже:

<option value="201">Medical</option>
<option value="203">Finance</option>
<option value="205">Tax Return</option>
---------------------------
---------------------------

Я пытаюсь удалить записи «options» в этом файле за один раз, чтобы файл выглядел, как показано ниже Редактирование:

Medical
Finance
Tax Return
----------
----------

Я искал это в Google, если бы я мог сделать это с помощью Vim или Gedit, но не нашел никакого отношения к этому (не знаю, поиск по какому ключевому слову). У кого-нибудь есть идеи, пожалуйста?

6
задан 25 March 2011 в 12:33

2 ответа

Установите surround.vim, который обеспечивает отображение нормального режима dst это должно сделать задание.

Для применения этого к нескольким строкам выберите их в визуальном режиме и вызовите

:'<,'>normal dst

Это применит команду нормального режима dst к выбранной области. Если Вы хотите применить его ко всему файлу (не только визуальный выбор), используйте следующую команду

:%normal dst
9
ответ дан 25 March 2011 в 12:33

Вы можете использовать следующее в vim, чтобы делать то, что вы хотите.

:%s/<[^>]*>\([^<]*\).*/\1/g

Здесь я использую команду s. Это полный синтаксис, который вы можете проверить, набрав :help :s

:[range]s[ubstitute]/{pattern}/{string}/[flags] [count]

% для диапазона означает весь файл, {шаблон} является регулярным выражением {строка} означает строку, которую необходимо заменить. Это может содержать обратные ссылки, то есть часть сопоставленного шаблона, заключенного в фигурные скобки. [флаги] - это несколько дополнительных опций. g для глобального, то есть все шаблоны в линии должны быть заменены. Другой полезный флаг - c, который запрашивает подтверждение перед изменением. [количество] должно быть количество раз, я думаю.

Таким образом, это можно читать как, искать меньше, чем < затем следует любое число или не больше> символов, затем a> затем выберите любое число, не меньшее чем < символы в первую группу \ 1, затем любое число или любые символы. И замените это на первую группу \ 1 глобально.

Проверьте эту ссылку, чтобы узнать больше о деталях регулярного выражения vim http://www.softpanorama.org/Editors/Vimorama/vim_regular_expressions.shtml

0
ответ дан 25 March 2011 в 12:33

Другие вопросы по тегам:

Похожие вопросы: