Подтвердить что ты не робот

Почему при вставке длинного однострочного вкладыша очень медленно в режиме вставки Vim?

Мой Macbook вчера застрял, когда я попытался вставить 1200 строк из 80 символов в Vim. Было гораздо быстрее загрузить файл, а не вставлять текст.

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

4b9b3361

Ответ 1

Если вы вставляете его в окно терминала, Vim думает, что вы печатаете его вручную, и он попытается обновить дисплей по мере его поступления. Вы можете получить доступ к своему буферу (в OS X) с помощью команд pbpaste и pbcopy, поэтому вы можете просто сделать это в Vim:

:read !pbpaste

или в оболочке:

bash$ pbpaste | vim -

Если вы используете GUI Vim, вы должны использовать регистр "* для вставки (это то, что делает контекстное меню):

"*P   <- in normal mode

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

Ответ 2

:read !pbpaste

Если вы используете Linux, используйте:

xsel --clipboard --output

или

xclip -selection clipboard -o

вместо pbpaste.

Ответ 3

Это "нормально". Он медленный, потому что перерисовка текста в тысячи раз медленная.

Когда вы вставляете длинную строку, она постоянно обновляет отображение (из-за того, как vim имеет дело с текстом или как терминал передает текст vim, я думаю).

Я пробовал вставлять текст в vim (используя iTerm), и у него такая же проблема, требуется некоторое время для вставки. Я пробовал :set paste и :set nowrap и все еще так же медленно. Вставка линии прямо в терминал одинаково медленна

С ссылкой dpaste, которую вы упомянули, есть текстовая ссылка, которую вы можете просто wget и изменить:

curl http://dpaste.com/115362/plain/ | vim -

Ответ 4

Я предпочитаю set paste/nopaste, как предположил Маси. В .vimrc вы можете сопоставить некоторый символ для переключения пасты (если это часто требуется).

то есть.

set pastetoggle=§

Ответ 5

Вы пытались вставить режим? установить пасту/установить nopaste?

Ответ 6

Если вы: синтаксис выключен, иногда можно улучшить вставку длинного одиночного файла. Примером может служить созданный машиной XML файл.

вы, вероятно, можете отключить vim redraw при вставке, посмотрите: он перерисовывает, но всегда стоит использовать файл командной строки. Если вы повторяете процедуру или аналогично, вы всегда можете ее автоматизировать с помощью макроса script/vim

Ответ 7

Я не знаю, является ли это проблемой Mac или чем-то еще, но у меня нет никаких проблем с вложением этого количества текста в Vim. Я пробовал Windows и Linux и не видел никаких проблем.

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

Ответ 8

Но если это в Интернете, вы должны были попробовать:

:e http://link/to/file 

Затем при необходимости сохраните его как локальный файл.

И если он замедляется из-за перерисовки, посмотрите на эту опцию:

            *'lazyredraw'* *'lz'* *'nolazyredraw'* *'nolz'*
'lazyredraw' 'lz'   boolean (default off)
            global
            {not in Vi}
    When this option is set, the screen will not be redrawn while
    executing macros, registers and other commands that have not been
    typed.  Also, updating the window title is postponed.  To force an
    update use |:redraw|.

И если это локальный файл, то вставка не нужна: попробуйте

:read file 

вместо.

Ответ 9

Если вы используете Apple Terminal, попробуйте другой терминал, например iTerm. Иногда терминал "build-in" не реагирует на общую задачу. Не знаю, почему...