Как я могу сохранить буфер обратной прокрутки putty при использовании emacs -nw и gnu screen?

#emacs #putty #gnu-screen

#emacs #putty #gnu-screen

Вопрос:

Вот моя проблема — надеюсь, я смогу объяснить это достаточно хорошо:

Я использую Putty в Windows, а затем запускаю сеанс gnu screen. Я могу запустить несколько команд оболочки в putty, а затем на том же экране запустить emacs -nw. Проблема в том, что при выходе из emacs буфер обратной прокрутки (в putty) испорчен. То, что было на экране, когда я запустил emacs, исчезло, и если я прокручиваю вверх, я вижу различные артефакты экрана (например, экранную «панель» Внизу и т. Д.).

Если я не использую screen и просто открываю emacs -nw непосредственно из putty, вся моя история все еще находится в буфере при выходе из emacs.

Аналогично, если я использую screen и использую vi на экране вместо emacs, когда я выхожу из vi, все там.

Это просто какое-то странное взаимодействие с putty и emacs? Есть ли способ это исправить?

Комментарии:

1. screen конечно, у него есть своя функция обратной прокрутки. Ctrl-a esc.

2. Да — когда я использую это, вся история полностью исчезает. Так что я могу увидеть немного, если я прокручиваю вверх с помощью колесика мыши или панели справа, или ничего из этого, если я прокручиваю вверх с помощью прокрутки экрана (я могу просто прокручивать вверх вечно, и все остается пустым).

Ответ №1:

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

В .screenrc поместите эту строку:

 defscrollback 10000
  

Вот мой config .screenrc. Пытался воспроизвести эту проблему, но безуспешно… вы можете попробовать, если это исправит для вас:

 termcapinfo xterm* ti@:te@
startup_message off
vbell off
autodetach on
altscreen on
shelltitle "$ |bash"
defscrollback 10000
defutf8 on
nonblock on

hardstatus alwayslastline
hardstatus string '%{= kw}[ %{= kb}%H%{= kw} ][%= %{= kw}%?%-Lw%?%{= kW}%n*%f %t%?%?%{= kw}%?% Lw%?%?%= ][ %{r}%l%{w} ]%{w}[%{r} %d/%m/%y %C %A %{w}]%{w}'

bind 'q' quit
  

В конце я бы также посоветовал вам ознакомиться с tmux -> http://tmux.sourceforge.net /

КСТАТИ. надеюсь, вы используете новейшую версию PuTTY правильно? 🙂 -> http://puttytray.goeswhere.com /

Ответ №2:

Похоже, Emacs и Screen наступают друг другу на пятки из-за функции альтернативного экрана вашего терминала.

Я не могу воспроизвести эту проблему, но, возможно, вам поможет следующее в вашем ~/.screenrc:

 altscreen on
  

Ответ №3:

Рассматривали ли вы возможность использования tmux в качестве альтернативы GNU screen?

Комментарии:

1. Я слышал об этом много хорошего, но, во-первых, он не установлен на работе — я, вероятно, мог бы заставить их это сделать, но тогда я бы изучал что-то совершенно новое (самая большая проблема — мышечная память переключения окон, разделения окон и т. Д.), Когда я совершенно доволенэкран в стороне от этой проблемы.

2. Достаточно справедливо. Как минимум, вы можете попросить установить tmux, чтобы вы могли быстро проверить, решает ли он вашу проблему, и если это не так, вам даже не нужно думать о переключении.