Терминал Gnome, `less` открывает файл в позиции курсора, а не в верхней части терминала

Если я пытаюсь открыть файл с lessего содержимое начинается с позиции курсора, а не с верхней части экрана.

Скриншот,

Это происходит только в gnome-Terminal, например, в Terminator все в порядке. Как я могу это исправить?

2 ответа

Решение

Как упомянуто egmont, less должен иметь возможность позиционировать курсор, и действительно есть способ сделать это. В соответствии с less справочная страница:

Опции также берутся из переменной окружения "LESS". Например, чтобы избежать ввода "less -options ..." каждый раз, когда вызывается less, вы можете сказать csh:

setenv LESS "-опции"

или если вы используете sh:

LESS = "- варианты"; экспорт LESS

Итак, чтобы less перерисовать экран с курсором вверху, сделать

echo   'LESS="-c"; export LESS' >> ~/.bashrc

-c опция, которая означает "очистить экран", будет добавлена ​​к каждому less автоматически и даже будет работать в TTY, очищая экран и перемещая курсор

gnome-terminal а также terminator оба полагаются на vte виджет для эмуляции терминала, хотя terminator использует древний (на основе gtk2). Точнее, terminator использования vte версия 0.28.2 (как в Ubuntu 14.04, так и в 16.06), тогда как gnome-terminal использования vte версия 0.34.9 в Ubuntu 14.04 и 0.42.5 в Ubuntu 16.04.

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

vte стремится использовать xterm в качестве ссылки на поведение эмуляции (если только он не видит веских причин для расхождения, что случается очень редко). В этом случае мы не видели причин расхождения (и, вероятно, у нас был действительный отчет об ошибке vte работает не так, как ожидалось положение курсора при переключении на альтернативный экран), поэтому мы исправили vte вести себя как xterm,

Другими словами, Ubuntu 14.04 gnome-terminalи 14.04 и 16.04 terminator были сломаны, предполагая, что мы принимаем, что правильное поведение определяется xterm, terminator далеко позади с vte версия и получит это исправление (вместе со многими другими), когда они наконец выпустят версию для gtk3.

Я понимаю, что вам не нравится новое поведение less (на самом деле мне это тоже не нравится, и я предпочитаю, как это случайно работало со старшими vte), однако, было бы абсолютно неверным подходом к преднамеренному vte добиться предыдущего поведения. Вместо less должен иметь возможность позиционировать курсор в верхней части экрана. Если текущее поведение действительно беспокоит вас, я рекомендую вам отправить запрос об ошибке / функцию против less,

Другие вопросы по тегам