문제
마우스의 스크롤 휠이 스크롤 백 버퍼에서 스크롤 할 수 있도록 GNU 화면을 설정하려면 어떻게해야합니까? 이것에 대해 Google을 시도했지만 대부분의 히트는 화면 내부의 응용 프로그램이 스크롤 휠을 사용하도록 허용하는 방법에있었습니다.
해결책
나는 당신이 이와 같은 줄을 추가 할 수 있다고 생각합니다. ~/.screenrc
:
termcapinfo xterm* ti@:te@
여기서 "xterm*"은 현재 용어의 글로벌 경기입니다. 그것이 작동하는지 확인하려면 ^a ^d 화면에서 분리하기 위해 screen -d -r
그러면 다시 reattach에 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
다른 팁
화면에서 스크롤 백 버퍼에서 스크롤 할 수 있도록 먼저 "스크롤 백 모드"(또는 "복사 모드")를 입력해야합니다. Ctrl 키-ㅏ ESC, 또는 Ctrl 키-ㅏ Ctrl 키-[. 그런 다음 위아래로 키를 사용하여 기록을 스크롤 할 수 있습니다 (또는 Ctrl 키-비, Ctrl 키-에프 페이지를 이동하려면).
해당 모드에서는 다른 앱에서 작동하는 경우 Mousewheel도 작동해야합니다. 당신은 "스크롤 백 모드"를 끝냅니다 ESC.
스크롤 백 모드를 먼저 들어 가지 않고 스크롤 백 버퍼를 스크롤하는 경우 화면을 수정하지 않으면 불가능할 수 있습니다. 스크롤 백 모드를 제외하고 스크롤 백 버퍼에 액세스하는 방법에 대해 들어 본 적이 없습니다.
Jon Z가 언급 한 훌륭한 기사는 더 이상 사용할 수 없지만 Google 캐시에서 텍스트 전용 버전을 낚시질 수있었습니다. Google이 미래에도 떨어 뜨릴 경우에 따라 여기에서 저장하고 있습니다. 원래 게시물은 Mikael Ståldal에 의해 이루어 졌으므로 크레딧이 마감되는 경우 크레딧.
--
GNU 화면에서 Mousewheel을 사용하는 방법
GNU 화면에는 스크롤 백을 지원하지만 기본적으로 어색한 키를 사용하여 사용해야합니다. XTerm에서 할 수있는 것처럼 Shift-PageUp, Shift-Pagedown 및 Mousewheel을 사용하여 스크롤 할 수 있기를 원합니다.
이를 위해 화면을 구성하기 쉽지 않았으며 터미널 에뮬레이터와의 협력이 포함됩니다. 그러나 나는 마침내 잘 작동하는 솔루션을 달성 할 수있었습니다. 이것을 ~/.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 5\025"
bindkey -m "^[[5S" stuff 5\025
# Scroll down
bindkey -d "^[[5T" eval copy "stuff 5\004"
bindkey -m "^[[5T" stuff 5\004
# Scroll up more
bindkey -d "^[[25S" eval copy "stuff \025"
bindkey -m "^[[25S" stuff \025
# Scroll down more
bindkey -d "^[[25T" eval copy "stuff \004"
bindkey -m "^[[25T" stuff \004
이것은 xterm에서 작동합니다. 다른 터미널 에뮬레이터에서 작동하는지 확실하지 않습니다.
이것은 xterm에서 일반 스크롤 지원을 비활성화하므로 화면을 사용할 때만 스크롤 할 수 있습니다. 화면을 항상 사용하려면 이와 같이 Xterm을 시작할 수 있습니다.
xterm -e screen
OS X (Snow Leopard)의 경우 다음은 저에게 효과적이었습니다.
http://slaptijack.com/system-administration/mac-os-x-terminal-and-gnu-scrollback/
간략하게, 원격 호스트에서 다음을 ~/.screenrc에 추가하는 것이 포함됩니다 (실행중인 화면에있는 것) :
defscrollback 5000
termcapinfo xterm* ti@:te@
그리고 GNU 화면 내부의 VIM에서 스크롤 휠을 사용하려면 :
.VIMRC
set mouse=a " hold shift to copy xterm
set ttymouse=xterm2 " necessary for gnu screen & mouse
누르다 Ctrl 키+ㅏ 그 뒤에 [
터미널의 제목 표시 줄은 이제 복사 모드라고해야합니다.
이제 화살표 키와 마우스 휠이 예상대로 작동해야합니다.
정상으로 돌아가려면 ESC를 누르거나 몇 번 입력하십시오.
다음은 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
위의 답변이 효과가 없다면 표제 아니면 그 항상 슬래스 라인 .screenrc에 옵션이 설정되어 있습니다. 당신이 그것들이 있다면, 이것은 작동하지 않습니다.
termcapinfo xterm* ti@:te@
이 정보가 필요한 경우 터미널 제목으로 설정 해보십시오 ( termcapinfo
)
"Ubuntu 16.04.2 LTS"를 사용할 때의 솔루션은 다음과 같습니다.
ㅏ). 업데이트 $ home/.screenrc 이전 답변이 지정된대로 :
termcapinfo xterm* ti@:te@
비). "설정"을 사용하십시오. "선호하는 응용 프로그램"은 드롭 다운 목록에서 "x 터미널"을 선택하여 기본 터미널을 Xterm으로 변경합니다.
불필요한 노트
"lxterminal"설치를 포함한 다른 터미널 중 어느 것도 "xterm*"대신 용어 카페인 라인을 "*"로 변경하더라도 나에게 효과가 없었습니다.
화면의 왼쪽 상단 코너에서 메뉴 버튼을 클릭하면 오른쪽 하단에서 세 번째 아이콘을 사용하여 설정 대화 상자를 얻을 수 있습니다.