размер буфера по умолчанию для копирования / вставки в vim?

18

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

150Y

Я сделал :q , затем vim (otherProgram).py и нажал 'p'. Только 50 строк скопированы. Поэтому я вернулся к исходному документу и сделал shift-v и выбрал строки, которые я хотел, затем сделал y , перешел в другой документ и сделал p . Казалось, что он тоже не копировал изящно, все еще только 50 строк.

Я начинаю думать, что есть некоторый размер по умолчанию для буфера копирования vim. Я использую Mac OS X. Был ли какой-нибудь способ узнать, есть ли какой-то размер буфера по умолчанию? Есть ли способ изменить его?

    
задан corvid 23.07.2013 в 15:48
источник
  • , что вы сделали, «вернулись, пошли»? почему вы: q, вы могли бы: e (otherprogram) .py –  Kent 23.07.2013 в 16:12
  • Речь идет не о размере внутреннего буфера (который ограничен только доступной памятью), а о сохранении содержимого регистра в файле _viminfo, поскольку вы вышли и перезапустили Vim. –  Ingo Karkat 23.07.2013 в 16:25

3 ответа

25

Похоже, вам нужно добавить что-то вроде этого в .vimrc :

set viminfo='20,<1000

Важной частью является <1000 , что означает, что вы хотите, чтобы ваши регистры хранили 1000 строк. Часть '20 , по-видимому, требуется при установке viminfo , но не особенно актуальна для ваших заявленных потребностей. (Это указывает, что количество файлов, за которые сохраняются метки.)

Подробнее см. в :help 'vi . Существует множество дополнительных параметров, которые могут быть указаны в строке viminfo . Например, вам может потребоваться увеличить максимальный размер регистра. По умолчанию 10kb, если этого недостаточно, попробуйте увеличить его до 1000 кб:

set viminfo='20,<1000,s1000
    
ответ дан patrickvacek 23.07.2013 в 15:50
  • Кроме того, append, s1000, чтобы уменьшить предел по умолчанию 10 кб, например. 1000KB. –  Ingo Karkat 23.07.2013 в 16:23
  • Как указано в другом ответе, это приводит к ошибке: E528: Необходимо указать значение: viminfo = <1000 –  olovb 31.03.2015 в 23:09
  • @olovb, вы правы, что исключение из '20 приводит к ошибке. Я использовал его в своем собственном .vimrc, но ранее не осознавал, что это необходимо! –  patrickvacek 01.04.2015 в 15:54
3

Для меня эта команда:

set viminfo=<1000

вызывает ошибку:

E528: Must specify a ' value: viminfo=<1000

используйте полную строку в файле .vimrc:

set viminfo='50,<1000,s100,h
  • второе значение - максимальное количество строк для копирования

, чтобы проверить ваше последнее значение (в vim):

:verbose set viminfo?
    
ответ дан Ivan Rave 28.09.2014 в 22:09
0

Вы используете способность vim сохранять регистры в .viminfo между сеансами. Патрик уже ссылается на ограничение этого метода и на то, как увеличить предел по умолчанию.

Но, если вам нужно часто копировать / вставлять между vim и другими программами, вы должны попробовать macvim, который дает вам поддержку буфера обмена.

Кроме того, вы должны прочитать: буферы справки, vim отлично умеет открывать несколько файлов в одном сеансе.

    
ответ дан romainl 23.07.2013 в 16:32