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

Если вы установили проприетарные драйверы из официальных репозиториев, запустите

sudo apt-get purge fglrx\*

в режиме восстановления, а затем перезагрузитесь. Это помогло мне восстановить проблемную установку fglrx в Ubuntu 12.04 на ПК с графической картой AMD Radeon HD 7770.

1
задан 9 March 2017 в 22:04

1 ответ

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. [!d0 ]

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

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

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

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

1
ответ дан 23 May 2018 в 06:17
  • 1
    Благодарим вас за подробный ответ. Я тестировал меньшее поведение на tty1, и наблюдается почти такое же поведение, с исключением: предыдущие команды не скрыты. – Artur Eshenbrener 11 September 2016 в 11:13
  • 2
    Консоль Linux не поддерживает так называемый «альтернативный экран», к которым относятся утилиты, такие как less, mc, vim и т. д., которые, когда вы уходите и возвращаетесь к «нормальному экрану», его предыдущее содержимое восстанавливается. – egmont 11 September 2016 в 18:14
  • 3
    less действительно имеет возможность переместить курсор, и его можно заставить работать в TTY. См. Мой ответ. – Sergiy Kolodyazhnyy 25 September 2016 в 17:44
  • 4
    @Serg Cool, спасибо большое! – egmont 25 September 2016 в 22:20

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

Похожие вопросы: