Использование & ldquo; dd & rdquo; в Vi (удалить несколько строк) не принимается, если количество строк & gt; длина файла

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

1
задан 28 April 2015 в 00:11

1 ответ

То, что вы пытаетесь (использовать недопустимый диапазон в командном режиме), никогда не сработало. Он не работает в 7.2.445 (Debian 6), 7.2.411 (CentOS 6.6), 7.3.429 (Ubuntu 12.04), 7.4.683 (Ubuntu 14.04, PPA).

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

Действительно, документация говорит так:

Line numbers may be specified with:             :range E14 {address}
        {number}        an absolute line number

....
The {number} must be between 0 and the number of lines in the file.  When
using a 0 (zero) this is interpreted as a 1 by most commands.  Commands that
use it as a count do use it as a zero (:tag, :pop, etc).  Some commands
interpret the zero as "before the first line" (:read, search pattern, etc).

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

:%d

Или, используя диапазоны:

:0,$d

Если вы не хотите использовать командный режим:

ggdG

Ни в одном случае вы не должны использовать странное число для диапазон.

1
ответ дан 23 May 2018 в 20:56
  • 1
    Это работает. Однако было бы неплохо узнать: почему мой подход, который работает на десятках других систем, не работает над этим. – javadba 27 April 2015 в 23:53
  • 2
    @javadba Проверьте все, с помощью vim -u NONE - отключение обычного vimrc и плагинов. – muru 27 April 2015 в 23:54
  • 3
    @javadba Как я знаю, что у тебя даже есть рубашка? – muru 27 April 2015 в 23:57
  • 4
    @javadba Я не говорю, что вы ничего не делали. Я спрашиваю , что вы что-то делаете (проверьте с помощью vim -u NONE). Это зависит от вас, чтобы сделать это (или не делать этого и сказать «скажи это моему vim», что так же принижает). Заметьте, я не отказался от вашего вопроса за то, что вы явно фантазии. – muru 28 April 2015 в 00:07

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

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