ВИМ ограниченным объемом памяти линии


Я пытаюсь скопировать 300 строк из одного файла в другой, в исходном файле я набираю "300yy", он говорит, что выдернул 300 строк.

Перейдите к файлу назначения и нажмите p, он вставляет, но только первые 50 строк.

Есть идеи, почему он не вставляет 300?

4 11

4 ответа:

Как предложено в Vim Tips Wiki , вы можете настроить viminfo настройка:

:set viminfo?
:set viminfo='100,<1000,s100,h

Что означают отдельные биты:

  • '100 метки будут сохранены для последних 100 отредактированных файлов.
  • <1000 ограничивает число строк, сохраняемых для каждого регистра, до 1000 строк; если регистр содержит более 1000 строк, сохраняются только первые 1000 строк.
  • s100 регистры с объемом текста более 100 КБ пропускаются.
  • h отключает подсветка поиска при запуске Vim.

Как сказали Юджин и Zyx настройка вашего viminfo будет самым простым решением

:set viminfo-=<50,s10

Альтернативным решением будет использование :read и/или :write

Для чтения из файла-name.txt в текущий буфер

:read file-name.txt

Для добавления диапазона от строки 1 до строки 300 из текущего буфера в файл для добавления.txt

:1,300write >> file-to-append.txt

Вы также можете использовать метки вместо номеров строк, таких как визуальные метки

:'<,'>write >> file-to-append.txt

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

:help :write
:help :read
:help 'viminfo'
:help :set-=

Оставайтесь в том же сеансе (откройте новый файл doing: e path), и у вас не будет никаких ограничений.

Попробуйте vim -p file1 file2. Он открывает каждый файл в новой вкладке (что удивительно), и он решает ограничение копирования / вставки