Удалите 100 строк из редактора vi с помощью единственной команды

Кажется, нет никакой документации кроме самого исходного кода. Я записал в Andreas Gruenbacher и сослался на этот вопрос, но не получил ответ.

34
26.08.2013, 14:10
6 ответов

В нормальном режиме сделать

100dd

dd удаляет текущую строку. Снабжение предисловием той команды с 100 причины это для повторения 100 раз.

Если существует меньше чем 100 строк в файле, начинающем с текущей строки, в зависимости от vi реализация, это или не удалит никого или удалит столько же, сколько существует. В случае vim, это зависит от ли cp иначе compatible опция идет или нет.

64
27.01.2020, 19:36
  • 1
    это только удаляет текущую строку –  mayur Mehta 27.08.2013, 11:48
  • 2
    , я хочу удалить 100 строк с помощью одной команды в одно время –  mayur Mehta 27.08.2013, 11:49
  • 3
    100dd корректный ответ. Интересно, что Вы делаете. –  ott-- 28.08.2013, 01:54
  • 4
    @mayurMehta не знают, какая компания задает вопросы как это, и не знайте то, что они ожидают как ответ. Но любой новичок, VI пользователей будут знать, что 100dd корректный ответ. –  Munim 30.08.2013, 07:51
  • 5
    @vgoff я не знаю.. Если они не ищут общее решение протестировать Ваши основные навыки энергии, то это - просто вопрос о приеме озадачить интервьюируемых. Я сказал бы 100dd, ответ. Если интервьюер спрашивает, "Что происходит, если файл имеет меньше чем 100 строк от текущего курсора?", ответил бы я: "Команда удаляет то, что она может от текущего курсора". Это совершенно разумно. Если интервьюер не разъясняется, почему курсор не был бы на первой строке? Я ненавижу вопросы о приеме как они. –  Munim 13.09.2013, 10:02
  1. удалите 100 строк вперед от (включения) текущего

    • повторитесь dd (удалите текущую строку), 100 раз:

      100dd
      
    • удалите от текущей строки до 99 строк вперед

      d99j
      
  2. удалите 100 строк назад от (включения) текущего

    d99k
    
  3. удалите строки в определенном диапазоне с методической точностью число

    :1,100d
    
  4. удалите строки в диапазоне, начинающемся с текущей строки

    :.,.+99d
    

и т.д. и т.д.

44
27.01.2020, 19:36
  • 1
    удалит текущую строку (0) до 101-й (0+100) строки, следовательно 101 строка вместо спрошенных 100. попробовать :.,+99d –  Olivier Dulac 26.08.2013, 15:40
  • 2
    Черт бы побрал, и я получил корректные перемещения!Спасибо. –  Useless 26.08.2013, 16:34
  • 3
    100dd не работал на меня, любой - но № 4 выше хорошо работает для меня в VI в соответствии с Солярисом 10. –  DemiSheep 01.07.2014, 18:00

Если все строки в файле должны быть удалены, эта команда vi указывает диапазон удаления:

:1,$d

1 обозначает первую строку и $ обозначает последнюю строку

8
27.01.2020, 19:36
  • 1
    или :%d (в ":" контекст ": %..." является ярлыком для ":1, $..."), –  Olivier Dulac 26.08.2013, 15:35
  • 2
    , также хороший: d G ключи → уничтожьте все содержание от фактического [например, верхняя строка] к нижней строке номер 4 –  erch 26.08.2013, 15:39

Вы хотите удалить все строки в файле? Откройте файл с vi. В то время как в начале первой строки - местоположение по умолчанию курсора, когда Вы просто открываете файл - нажимает Esc, сопровождаемый dG.

Только отметить, действие d указывает удаляют, и G указывает на последнюю строку файла. Так, в любой строке при нажатии dG она удаляет всю строку, начинающую с текущей строки до последней.

Если Вы знаете, какие последовательные строки удалить - говорят, от строки 101 - 200 - вводят в следующих сочетаниях клавиш: Esc:101,200d.

3
27.01.2020, 19:36
  • 1
    Никакая потребность нажать Escape, если Вы только что открыли файл и в начале файла. Вы находитесь автоматически (по умолчанию) в нормальном режиме. –  vgoff 21.07.2015, 09:54

Неважно, где Вы, находятся в файле, можно ли сделать ggdG

:%d добился бы большего успеха в меньшем количестве нажатий клавиш. Ну, подсчет shift и enter ключи, на самом деле еще два нажатий клавиш, чем вышеупомянутое.

Выполнение чего-то как 100dd только удалил бы до 100 строк из того, где Вы, и это не может удалить все строки из файла, в зависимости от Вашего текущего положения строки.

3
27.01.2020, 19:36

Esc n дд. n — количество строк для удаления, включая текущую строку. Нажмите кнопку «Esc», затем «n», а затем «dd». Для лучшего понимания

0
27.01.2020, 19:36

Теги

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