Использование колеса прокрутки на экране GNU
Как я могу настроить экран GNU, чтобы колесо прокрутки мыши прокручивалось в буфере прокрутки? Я попытался Google об этом, но большинство хитов, где о том, как разрешить приложениям внутри экрана использовать колесо прокрутки.
10 ответов:
Я считаю, что вы можете просто добавить такую строку в свой
~/.screenrc
:termcapinfo xterm* ti@:te@
где "xterm*" - это глобус, совпадающий с вашим текущим термином. Чтобы подтвердить его работу, ^A^D отсоединить от экрана, а затем
screen -d -r
прикрепить, потомls
несколько раз, и попробуйте прокрутить назад. Это работает на меня.
что это за магия? Ну, давайте сверимся со страницами руководства.
screen(1)
говорит:termcapinfo term terminal-tweaks [window-tweaks] [..] The first argument specifies which terminal(s) should be affected by this definition. You can specify multiple terminal names by separating them with `|'s. Use `*' to match all terminals and `vt*' to match all terminals that begin with "vt". [..] Some examples: termcap xterm* LP:hs@ Informs screen that all terminals that begin with `xterm' have firm auto-margins that allow the last position on the screen to be updated (LP), but they don't really have a status line (no 'hs' - append `@' to turn entries off). Note that we assume `LP' for all terminal names that start with "vt", but only if you don't specify a termcap command for that terminal.
С
termcap(5)
:String capabilities [..] te End program that uses cursor motion ti Begin program that uses cursor motion
на экране вы должны сначала ввести "режим прокрутки " (или" режим копирования"), чтобы иметь возможность прокручивать в буфере прокрутки: Key combo Ctrl -a Esc или Ctrl -aCtrl -[. Затем вы можете прокручивать историю, используя клавиши вверх и вниз (или Ctrl -b,Ctrl -f перейти на страницу).
в этом режиме колесико мыши должен также работать, если он работает в других приложениях. Вы заканчиваете "режим прокрутки" с Esc.
Что касается прокрутки буфера прокрутки без первого входа в режим прокрутки, это, вероятно, невозможно без изменения экрана. Я никогда не слышал о способе доступа к буферу прокрутки, кроме режима прокрутки.
отличная статья, на которую ссылается Джон Z, больше не доступна, но я смог выловить ее текстовую версию из кэша Google. Я сохраняю его здесь на случай, если Google отбросит это в будущем. Оригинальный пост был Микаэль Ståldal так кредит, где кредит должен быть.
--
как использовать колесико мыши в GNU Screen
экран GNU имеет поддержку прокрутки, но по умолчанию вы должны использовать неудобные клавиши, чтобы использовать его. Я хотел бы иметь возможность использовать Shift-PageUp, Shift-PageDown и колесико мыши для прокрутки, так же, как вы можете сделать в xterm.
настроить экран для этого было непросто, и он предполагает сотрудничество с эмулятором терминала. Но мне, наконец, удалось достичь решения, которое работает довольно хорошо. Добавьте это к вашему~/.Файл Xresources (для этого необходимо выйти из системы):
XTerm*saveLines: 0 XTerm*vt100.translations: #override \n\ Ctrl <Btn4Down>: string(0x1b) string("[25S") \n\ Lock Ctrl <Btn4Down>: string(0x1b) string("[25S") \n\ Lock @Num_Lock Ctrl <Btn4Down>: string(0x1b) string("[25S") \n\ @Num_Lock Ctrl <Btn4Down>: string(0x1b) string("[25S") \n\ <Btn4Down>: string(0x1b) string("[5S") \n\ Ctrl <Btn5Down>: string(0x1b) string("[25T") \n\ Lock Ctrl <Btn5Down>: string(0x1b) string("[25T") \n\ Lock @Num_Lock Ctrl <Btn5Down>: string(0x1b) string("[25T") \n\ @Num_Lock Ctrl <Btn5Down>: string(0x1b) string("[25T") \n\ <Btn5Down>: string(0x1b) string("[5T") \n\ Shift <KeyPress> Prior: string(0x1b) string("[25S") \n\ Shift <KeyPress> Next: string(0x1b) string("[25T") \n
затем добавьте это в ваш ~/.файл screenrc:
defscrollback 1000 # Scroll up bindkey -d "^[[5S" eval copy "stuff 55" bindkey -m "^[[5S" stuff 55 # Scroll down bindkey -d "^[[5T" eval copy "stuff 54" bindkey -m "^[[5T" stuff 54 # Scroll up more bindkey -d "^[[25S" eval copy "stuff 5" bindkey -m "^[[25S" stuff 5 # Scroll down more bindkey -d "^[[25T" eval copy "stuff 4" bindkey -m "^[[25T" stuff 4
это работает в окно xterm. Я не уверен, что он работает в других эмуляторах терминалов.
обратите внимание, что это отключает нормальную поддержку прокрутки в xterm, вы сможете получить свиток при использовании экрана. Вы можете начать xterm, как это, чтобы всегда использовать экран:
xterm -e screen
для OS X (Snow Leopard) для меня сработало следующее:
http://slaptijack.com/system-administration/mac-os-x-terminal-and-gnu-screen-scrollback/
вкратце, это включает в себя добавление следующего~/.screenrc на удаленном хосте (тот, на котором вы запускаете экран):
defscrollback 5000 termcapinfo xterm* ti@:te@
и использовать колесо прокрутки в VIM внутри экрана GNU:
[.vimrc]
set mouse=a " hold shift to copy xterm set ttymouse=xterm2 " necessary for gnu screen & mouse
пресс Ctrl+a следовал по [
в строке заголовка вашего терминала теперь должен быть указан режим копирования.
теперь клавиши со стрелками и колесом мыши должны работать, как ожидалось.
чтобы вернуться к нормальному режиму, нажмите Esc или Enter несколько раз.
следующее работало для меня как в Cygwin, так и в Putty: Редактировать.screenrc и добавить
terminfo xterm* ti=:te=
задание
TERM
переменнаяvt100
вместоxterm
перед запуском экран также работает.
Я использую это в течение длительного времени, работает как шарм.добавьте это в ваш
.bashrc
:# make scrollbar / wheel scrolling work when running screen in gnome-terminal (or other) if [ "$TERM" = "xterm" ]; then export TERM=vt100 fi
--
Для справки, мой
.screenrc
имеет это (не требуется для этого AFAIK):# Extend the vt100 desciption by some sequences. termcap vt100* ms:AL=\E[%dL:DL=\E[%dM:UP=\E[%dA:DO=\E[%dB:LE=\E[%dD:RI=\E[%dC terminfo vt100* ms:AL=\E[%p1%dL:DL=\E[%p1%dM:UP=\E[%p1%dA:DO=\E[%p1%dB:LE=\E[%p1%dD:RI=\E[%p1%dC
Если ответы выше не работает для вас, убедитесь, что у вас нет заголовок или alwayslastline опция, установленная в вашем .screenrc. Если они у вас есть, это не будет работать:
termcapinfo xterm* ti@:te@
Если вам нужна эта информация, вы можете попробовать установить его в названии вашего терминала (с
termcapinfo
)
решение при использовании "Ubuntu 16.04.2 LTS"выглядит следующим образом:
a). Обновление $HOME/.screenrc как указывали предыдущие ответы:
termcapinfo xterm* ti@:te@
b). Используйте "Настройки"."Предпочтительные приложения", чтобы изменить терминал по умолчанию на xterm, выбрав" X терминал " в раскрывающемся списке.
несколько лишних нот
ни один из других терминалов, включая установку "lxterminal", работал на меня, даже когда Я изменил строку termcapinfo на "*" вместо " xterm*".
нажмите кнопку меню в верхнем левом углу экрана, вы можно получить диалоговое окно настроек, используя 3-й значок в правом нижнем углу угол.