энергия: замените весь символ до конца строки

Grep имеет опции распечатать просто имена файлов, или просто имена файлов и количества соответствия или согласующие отрезки длинной линии (возможно с именами файлов и номерами строки), но не уплотнить несколько соответствий на одной строке.

Можно отфильтровать вывод grep или использовать другой инструмент, такой как awk.

find . -type f -exec awk 'FNR==1 {if (found) print ""; found=0}
                          /PATTERN/ { if (!found) printf("%s", FILENAME);
                                      printf(" %d", FNR);
                                      found=1 }
                          END {if (found) print ""}' {} +
31
17.02.2012, 11:19
5 ответов

Если я понял Ваш вопрос правильно, попробуйте это:

C (это - капитал C) удалит все из курсора в конец строки и поместит Вас в РЕЖИМ ВСТАВКИ, затем Вы пишете свою замену, оставляете РЕЖИМ ВСТАВКИ, используете. повторить процесс где-то в другом месте.

50
27.01.2020, 19:37
  • 1
    Прекрасный. :) Не за что. –  sr_ 17.02.2012, 11:20
  • 2
    , если кто-либо задавался вопросом, это - прописное C :) –  David Silva Smith 02.10.2015, 18:09
  • 3
    Было бы хорошо для обновления ответа, чтобы указать, что это - капитал C. –  fraxture 24.08.2017, 20:02

Добавление к ответу _ сэра:

Если Ваш курсор запускается в той же позиции по каждой строке, Вы могли бы интересоваться функцией Visual Block.

Введите следующее в порядке с Вашим курсором в исходном положении:

  • Ctrl+v: Введите визуальный блочный режим.
  • $: пойдите в конец строки.
  • [X] j: замените X количеством строк, по которым Вы хотите спуститься.

Это должно создать прямоугольный выбор, идущий из Вашего курсора на первой строке в конец строки [X] строки ниже.

Можно затем заменить целый выбор:

  • c: удалите selction и войдите в режим вставки.
  • вставьте новый текст
  • Esc: Выйдите из режима вставки; Vim автоматически повторит шаг на каждой выбранной строке.

Я использую визуальный блок каждый раз, когда я могу, я думал, что совместно использую

14
27.01.2020, 19:37
  • 1
    +1 хороший ответ действительно. Но не действительно, что я хочу с тех пор иногда, мой код приятно не форматирован как этот ^ _ ~ –  Sardathrion - Reinstate Monica 17.02.2012, 12:22
  • 2
    @sardathrion; комментарий РЕ, 'приятно отформатированный'. При составлении таблиц в Скидке с цены я смог к автоматическим пробелам заливки в n+1 строки, после создания строки n Визуальным Блоком, выбирающим назад! Другими словами, форма была подобна назад 7, или вертикальный зеркально отразил L, или 'не приятно отформатированным'. lol. –  xtian 01.10.2014, 18:18

C или c$ для "изменения", и R для "замены".

Два почти подобных поведения. Первый удалил бы строку, прежде чем Вы начнете вводить; в то время как последний позволил бы Вам заменить символы вводом с клавиатуры и возможно пойти вне предела отображенных символов старой строки.

3
27.01.2020, 19:37

Просто нажмите 'C' т.е. Capital C в командном режиме, и введите текст замены.

1
27.01.2020, 19:37

Другие ответы пропустили их, они не вводят режим вставки.

  • D Удаляют в конец строки
  • d$ Удаляет из курсора в конец строки

Затем, конечно, используйте.

0
27.01.2020, 19:37
  • 1
    1 для того, чтобы не вводить режим вставки, так как это конкретно, что я попросил. +1 для пользы полноты. –  Sardathrion - Reinstate Monica 17.02.2012, 13:10

Теги

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