Я часто работаю с Vim, но иногда я чувствую, что могу делать некоторые вещи лучше в Кейт. Поэтому я копирую файл из vim через ctrl+c и вставляю его в Kate.

Таким образом, все довольно быстро. Но если я вставлю его в Vim, процесс вставки станет ужасно медленным даже при использовании :set paste .

Я как-то понимаю, так как Vim делает много вещей, но это не только Vim. Но в других приложениях я видел то же самое. Вставка данных на сервер MYSQL тоже очень медленная. То же самое с Bash и Zsh.

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

1 ответ1

-2

Существует версия vim (gvim) с графическим интерфейсом, включая версию для Windows (а также версию для Cygwin, которая работает на X-GUI (которая также работает на окнах).

Я бы попробовал нативный gvim и посмотрел, дает ли это скорость, которую вы ищете.

Примечание: я не думаю, что самые новые vims запускаются в консоли вообще (слишком много проблем). (Пояснение: версия cygwin не запускается в Windows cmd.exe - нет поддержки терминала. Он работает в обычном эмуляторе TTY, а также в эмуляторах cygwin tty и под cygwin-X - лучше всего будет cygwin-X - я запускаю сеансы linux-gvim исключительно через cygwin X. Мое соединение с моим сервером "внутреннее" (не подключено к Интернету), поэтому мне не нужно использовать шифрование, поэтому оно работает достаточно быстро.

Чтобы лучше ответить на оригинальный вопрос автора, есть некоторые неизвестные - например, о какой консоли он говорит, и когда он упоминает zsh & bash, он говорит о версиях cygwin или версиях, работающих под подсистемой win10-linux, или что?

Первоначально считалось, что проблема может быть в используемой вами консоли, поэтому рекомендуется попробовать собственные версии, но почему консоль работает медленнее - я коснусь этого ниже. Помните: даже если вы запускаете текстовую консоль - она все еще работает на рабочем столе Windows. Таким образом, это GUI-эмуляция окна текстовой консоли, а не консоль, основанная на реальном оборудовании, как раньше, когда использовались старые консоли DOS (которые использовали графическое оборудование для прокрутки, например). Что касается нативных версий vim:

Попробуйте https://tuxproject.de/projects/vim/

Я бы порекомендовал эту версию:http://tuxproject.de/projects/vim/complete-x64.exe

Если вас не интересует, как ускорить вставку в vim, но вам нужен только ответ о том, почему консоль медленнее - графический интерфейс, может принимать вставленный текст напрямую, не проходя через один символ за одним символьный интерфейс чтения / записи (консоль). Работа с консолью включает чтение и запись по одному символу, по одному за раз. Т.е. вставка идет в windows (ОС), которая превращает его в поток односимвольных символов, отправляемых на драйвер ввода в консоли. Те идут в системный буфер (не vim). Затем vim должен прочитать эти символы из системы. Несмотря на то, что вы можете читать / писать несколько символов, они все еще обрабатываются и отображаются по одному за счет базового ПО. Очень неэффективно. Когда vim обновляет консоль - она пишет символы и выводит коды tty-движений (не так много при вводе) для перемещения текста. Все обрабатывается путем преобразования графических действий в коды символов, которые отправляются на консоль, которая интерпретирует коды символов для имитации TTY.

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

Вдобавок к обычной медлительности имитируемой консоли, консоль в Windows работает в Windows - и Windows добавляет больше слоев косвенности, начиная с XP. По крайней мере 1 был добавлен в XP, разумный маленький / быстрый слой, но при переходе к vista / win7, была добавлена очень заметная задержка для каждого ключа. Эти задержки случаются для каждого ключа! Из того, что я понимаю, для Win10 было добавлено больше слоев, позволяющих использовать облако и удаленные устройства.

Что касается вставки в графической версии vim - в нее добавлены косвенные указания, но они предназначены для всего сообщения вставки (не на символ). Таким образом, vim получает весь вставленный текст, который он может обрабатывать, не обновляя экран с каждым символом - поэтому после обработки вставленного текста требуется только 1 обновление экрана. Можно сделать больше, в зависимости от скорости обработки и скорости видео - т.е. vim иногда показывает частичный прогресс, когда дела идут дольше, но я считаю, что это опция с возможностью переключения в vim.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .