Вопросы с тегом «substitute»

Любая операция, включающая замену текста на основе регулярных выражений, например, команда ex-mode `: s`. Не путать с тегом [replace].

53
Как найти и заменить в Vim, не вводя оригинальное слово?

Я бы хотел оптимизировать рабочий процесс поиска и замены в Vim. Это то, чем я занимаюсь часто, и я уверен, что большинство из вас тоже. Обычно что-то в этом роде - копирование блока и изменение имени переменной в нескольких местах. Я знаю, я знаю, что это, вероятно, вызывает ваш рефлекс «почему вы...

27
Как заменить только в рамках визуального отбора?

Как же можно получить ВИМ заменить символ в пределах визуального выделения только и не в другом месте на линии? Пример: Линия: int arr[] = { 00 01 02 03 04 05 05 /* ... lots more like this*/}; Визуальный отбор: { 00 01 02 03 04 05 05 /*... lots more like this*/} Команда: :'<,'>s/\ /\,0x/g...

26
Найти и заменить с помощью регулярных выражений

У меня есть файл с кучей пользовательских настроек по умолчанию. Я хочу изменить часть текста, но я с трудом придумываю совпадения и заменители. Используя следующий пример: ############################################################################### # Trackpad, mouse, keyboard, Bluetooth...

24
Как редактировать файлы не в интерактивном режиме (например, в конвейере)?

Я хотел бы редактировать файлы, переданные в конвейерный ввод, используя vim неинтерактивным способом или редактировать файлы на месте (аналогично sed) Несколько примеров с использованием sed: $ sed -i'.bak' s/foo/test/g file # Edit file in-place. $ cat file | sed s/foo/test/g # Parse file in...

21
Как: g /^$/,/./- j (уменьшить количество пустых строк до одного пробела) работает в vim?

В статье Vim Regular Expressions Олег Райский дает следующую команду, чтобы уменьшить количество пустых строк до одного пустого: :g/^$/,/./-j Может кто-нибудь, пожалуйста, опишите, как это работает? Я знаю :gкоманды и регулярные выражения. Но я не понял, что /,/./-jделает эта часть...

18
Заменить строку без изменения регистра?

Из-за извращения в предметно-ориентированном языке, с которым я работаю, я часто сталкиваюсь с задачей (выборочно, а не глобально) замены termили TERMс wordили WORD, соответственно. Это означает, что я ищу без учета регистраterm и хочу заменить его, word сохраняя при этом прописные / строчные буквы...

17
Могу ли я сделать интерактив: заменить (поиск и замена)?

Иногда я использую :sсо сложным регулярным выражением, которое может быть или не быть правильным, или не уверен, хочу ли я заменить все совпадения. Можно ли как-то сказать Vim подтверждать каждое совпадение, которое он находит, прежде чем он фактически заменит...

16
Заменить серию звездочек с нумерованным списком

Представьте, что у меня есть следующий текст: some random stuff * asdf * foo * bar some other random stuff Я хочу заменить звездочку пулями на цифры, например так: some random stuff 1. asdf 2. foo 3. bar some other random stuff Как это можно сделать в...

15
Как запустить: заменить только часть строки, а не всю?

У меня есть такая строка: function my_function(argument, another argument, but there are spaces) Я хочу заменить символы пробела (внутри имен аргумента) подчеркиванием. Таким образом, я хотел бы использовать: :s/\ /_/g но как я могу выбрать не применять его ко всей строке, а начинать, скажем, с...

15
Множественный выбор заменителя?

Обычно замена с cопцией дает мне две опции: (y) es или (n) o. Можно ли иметь несколько пронумерованных вариантов выбора да? пример файл person: Alice dog: Tobby person: Bob Образец 1 :%s/person:/woman:/c Образец 2 :%s/person:/man:/c Шаблоны 1 и 2 имеют одинаковый шаблон поиска, но разные шаблоны...

14
Как заменить каждое совпадение счетчиком увеличения?

Я хочу найти и заменить каждое вхождение определенного шаблона десятичным числом, которое начинается с 1и увеличивается на единицу для каждого совпадения. Я могу найти аналогичные формулировки вопросов, которые, как оказалось, не об увеличении счетчика, а об изменении каждого совпадения на...

13
Удалить все последовательные дубликаты

У меня есть файл, который выглядит следующим образом. Move to 230.00 Hold Hold Hold Hold Hold Hold Move to 00.00 Hold Hold Hold Hold Hold FooBar Hold Spam Hold Я хотел бы, чтобы это выглядело так: Move to 230.00 Hold Move to 00.00 Hold FooBar Hold Spam Hold Я уверен, что должен быть способ, которым...

13
Что значит заменить косую черту (/) восклицательными знаками (!) В команде замены?

Недавно я увидел команду замещения, где автор /заменил ее !следующим образом::s!abc!ABC!g Я попытался найти некоторую документацию по этому использованию, но я не смог найти ничего уместного. Поэтому я попытался поэкспериментировать сам и еще раз не смог понять реальную разницу между этими двумя...

13
В чем смысл \ r и \ n, означающих разные вещи в команде s?

Мы все знаем, что при поиске \nэто перевод строки и \rвозврат каретки ( ^M), но при замене \rэто перевод строки, тогда \nкак null byte ( ^@). Каково происхождение этой асимметрии? Учитывая, что это поведение ... по меньшей мере своеобразно (и весьма контрпродуктивно, когда вы ошибаетесь в первый...

12
Заменить на чистый vimscript (без `: s`)

У меня есть следующее в моем vimrc: func! AddSpaceBeforeEqual() s/\([a-z)_0-9"'\[\]]\)=/\1 =/ge endfunc Я использую vint для lint мой vimrc, и получил следующее предупреждение: ProhibitCommandWithUnintendedSideEffect Избегайте команд с непреднамеренными побочными эффектами. Избегайте использования:...

12
Глобальная подстановка Vim не подставляет все совпадения в строку

иногда мои глобальные субстуции не заменяют все совпадения в строке. Это подтверждается тем фактом, что я могу видеть это, когда я делаю замены с подтверждением, совпадение найдено в строке с несколькими возможными совпадениями, но затем оно переходит на другую строку. Я использую параметры gили...

10
Как добавить некоторую строку в конец файла, только если его еще нет?

Я хотел бы отредактировать файл на месте, добавив строку, только если она еще не существует, чтобы сделать мой сценарий пуленепробиваемым. Обычно я бы сделал что-то вроде: cat >> ~/.bashrc <<EOF export PATH=~/.composer/vendor/bin:\$PATH EOF Это также возможно сделать через ansible (...

10
Ограничение операций разделом кода

В моей повседневной работе часто приходится работать с определенной функцией, например с выделением или поиском переменной, но мне никогда не удавалось ограничить область правок / поиска. Есть ли способ в vim выборочно сказать, найти все ссылки $colorвнутри этих наборов фигурных скобок, или в этом...

10
Как заменить в несколько строк?

Я хотел бы вставить слово в несколько строк, есть ли такая команда, как :[2,3,5,7,11]s/^/word\ /g что вставит wordв начало строки 2, строки 3, строки 5, строки 7 и строки 11? Здесь несколько строк не являются...