Я использую терминал из Mac OS X 10.10 (Yosemite) и SSH'ing в машину fedora, и у меня есть несколько странных проблем с терминалом:

  1. Когда я :q из vim, содержимое экрана vim все еще там. Когда я :q на моем Mac или даже с самого экрана рабочего стола на моей машине Fedora, когда я :q файл vim, экран vim исчезает, и я возвращаюсь в терминал (то есть я возвращаюсь в командную строку, где предыдущая строка проста:$vim <whatever_file_I_edited>.txt тогда как теперь я не могу видеть предыдущую строку, потому что я все еще вижу содержимое файла, который я редактировал через vim.

  2. Когда я использую функцию прокрутки вверх / вниз на трекпаде, она прокручивает предыдущие записи в терминал, а не длину самого окна терминала.

Как я могу исправить эти проблемы?

2 ответа2

0

По какой-то причине Vim на Mavericks не поставляется с цветовой схемой. После того, как я добавил несколько строк в файл vimrc (скопировать и вставить с сайта), он начал вести себя так, как вы описали, в моем случае - удаление лишних пробелов после того, как каждый оператор исправил это.

0

На самом деле у вас нет "проблем", кроме того, что вы слишком привыкли к xterm -изму и неправильно ожидаете, что он будет универсальным.

xterm - и эмуляторы терминала GUI, такие как gnome-терминал, lxterminal, konsole и т. д., реализуют так называемый "альтернативный экранный буфер". С помощью одной последовательности управления программы могут переключать эмулятор терминала на отображение и запись в этот буфер. С другой они могут переключиться обратно в исходный экранный буфер. Такие программы, как vimless), выдают первую последовательность управления при запуске / возобновлении работы и вторую при выключении / приостановке. Это дает эффект восстановления предыдущего содержимого экрана, когда vim завершает работу.

Это не дано.

Не все терминалы и эмуляторы терминалов имеют альтернативный экранный буфер. Эмулятор терминала, встроенный в ядро вашей операционной системы, этого не делает. Если бы вы запустили vim на виртуальном терминале ядра, вы бы увидели такое же поведение. Реальных терминалов вообще нет. (Фактические терминалы семейства DEC VT, например, имеют механизм, который включает "страницы", которые не совпадают, и который управляется другим набором последовательностей управления.)

Даже если у вашего терминала есть такой, вы должны убедиться, что запись termcap/terminfo для текущего типа терминала имеет соответствующую информацию, сообщающую программам TUI, таким как nano и Midnight Commander, какие управляющие последовательности генерировать для отображения и скрытия альтернативного экранного буфера. Это комбинация выбора (и установки) соответствующего значения переменной среды TERM для выбора записи из базы данных Fedora termcap/terminfo, которая соответствует возможностям вашего локального эмулятора терминала MacOS 10, и, возможно, даже редактирования этой базы данных.

То, что вы задали для TERM не является фиксированным ответом, поскольку это зависит от того, какую эмуляцию вы настроили для работы с терминальной программой MacOS 10. Для этого вам просто нужно посмотреть на его настройки. Если вы сказали ему эмулировать xterm в 256-цветном режиме, вам нужно будет выбрать тип терминала (весьма вероятно, xterm-256color), который описывает это в базе данных terminfo Fedora.

дальнейшее чтение

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