GNU 화면에서 스크롤 휠 사용


254

마우스 스크롤 휠이 스크롤 백 버퍼에서 스크롤되도록 GNU 화면을 어떻게 설정합니까? 나는 이것에 대해 Google에 시도했지만 대부분의 인기는 화면 내부의 응용 프로그램이 스크롤 휠을 사용하도록 허용하는 방법에 관한 것이었다.


JesperE-선택한 답변을 변경할 수 있습니까? 나는 혼란스러워했고 의견은 옳았다. 다른 대답은 훨씬 나아졌다.
Geoff

요즘에는 화면을 사용하지 않지만 공감대는 설득력이 있습니다. :)
JesperE

답변:


359

나는 당신이 당신에게 ~/.screenrc다음 과 같은 줄을 추가 할 수 있다고 생각합니다 :

termcapinfo xterm* ti@:te@

여기서 "xterm *"은 현재 TERM과 일치합니다. 작동하는지 확인하려면 ^ 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

28
Pistos의 제안을 따랐으며 부분적으로 작동합니다. 그가 설명했듯이 (화면을 스크롤하기에 충분한 출력을 생성하기 위해) 몇 가지 명령을 입력 한 다음 마우스 휠을 사용하여 이전 줄을 다시 스크롤 할 수 있습니다. 사실, KDE에서 Konsole을 통해 screen을 사용하고 있으며 (기본적으로 xterm으로 탭 표시됨) Konsole 창의 스크롤 막대는 동일한 방식으로 작동합니다. 그러나 문제가 있습니다. 화면의 창 (^ An, ^ Ap)간에 전환하면 스크롤 백 버퍼가 엉망이됩니다. 전환 한 창의 내용은 스크롤 백 버퍼에 꽂혀 있습니다. 정말 줄어 듭니다.
Ryan B. Lynch

22
그러나 이것은 명령 기록에서 스크롤됩니다. 출력 버퍼를 스크롤하고 싶습니다.
JesperE

15
@JesperE : 명령 기록도 스크롤하는 것을 경험했습니다 (Ubuntu의 GNOME 터미널을 사용하고 있습니다). 편집-> 프로필 환경 설정-> 스크롤로 이동하여 "대체 화면에서 스크롤하기 위해 키 입력 사용"을 선택 취소하여 수정했습니다. 여전히 Pistos의 수정 프로그램을 사용해야했습니다.
Michael Krebs

2
OS X Lion에서 작업하는 것 외에도 퍼티, iSSH 및 프롬프트 (패닉 별)에서도 작동합니다. 이 줄은 모든 .screenrc 파일에 있어야합니다!
funroll 2016 년

20
이것은 스크린 세션에서 스크롤되지 않는 터미널에서의 스크롤을 가능하게합니다. 즉, 분할 영역으로 작업하거나 창을 전환하면이 영역에서 다시 스크롤 할 수 없으며 대신 터미널 출력에서 ​​다시 스크롤하여 영역을 분할하거나 창을 변경하기 전의 출력을 볼 수 있습니다 .
g_daniel

69

화면에서 먼저 "스크롤 백 모드"(또는 "복사 모드")를 스크롤 백 버퍼를 스크롤 할 수 있도록 입력해야합니다 : 키 콤보를 Ctrl- a Esc또는 Ctrl- a Ctrl- [. 그런 다음 위로 및 아래로 키를 사용하여 기록을 스크롤 할 수 있습니다 (또는 Ctrl- b, Ctrl- f를 사용하여 페이지 이동).

이 모드에서는 다른 응용 프로그램에서 작동하는 경우 마우스 휠도 작동해야합니다. 로 "스크롤 백 모드"를 종료합니다 Esc.

먼저 스크롤 백 모드로 들어 가지 않고 스크롤 백 버퍼를 스크롤하는 경우 화면을 수정하지 않으면 불가능할 수 있습니다. 스크롤 백 모드와는 별도로 스크롤 백 버퍼에 액세스하는 방법을 들어 본 적이 없습니다.


21
예, 스크롤 백 모드에 대해 알고 있습니다. 마우스를 사용하기 위해 수동으로 스크롤 백 모드를 시작할 필요가 없기를 바랐습니다. 감사.
JesperE

4
"스크롤 백 모드"는 IMHO라는 비공식 용어입니다. :) Ctrl + a Esc복사 모드로 들어 갑니다 . 이 모드의 주요 목적은 텍스트를 앞뒤로 복사 할 수 있도록하는 것이므로 항상이 모드라고합니다. 복사 모드에서 마우스 휠로 스크롤 할 수있는 가능성 (nb. 나에게는 효과가 없음)은 일종의 "추가 특수 효과"로 볼 수 있지만이 모드의 주요 목적은 아닙니다.
syntaxerror

1
@syntaxerror : 글쎄, 문서는 이것을 "복사 / 스크롤 백 모드"라고 부르고 "스크롤 백 버퍼"( gnu.org/software/screen/manual/screen.html#Copy-and-Paste )를 언급합니다. 다시 오른쪽 :-). 어쨌든 대답에 "복사 모드"를 추가했습니다.
sleske

큰! 나는 이것도하고 싶었지만, 그런 오래된 답변을 엉망으로 만들기 전에 먼저 묻는 것으로 유명합니다 (SO / SE 규칙이 그것을 규정하지 않는다는 것을 알고 있지만; 그것은 기록되지 않은 규칙을 가진 것입니다.)
syntaxerror

이것은 공식적인 대답이었습니다. 감사합니다 :)
Linh

24

Jon Z가 언급 한 훌륭한 기사는 더 이상 사용할 수 없지만 Google 캐시에서 텍스트 전용 버전을 찾을 수있었습니다. Google이 앞으로도 삭제 할 경우를 대비하여 여기에 저장하고 있습니다. 원래 게시물은 Mikael Ståldal이 작성 했으므로 신용이 필요한 신용입니다.

-

GNU 화면에서 마우스 휠을 사용하는 방법

GNU Screen은 스크롤 백을 지원하지만 기본적으로 어색한 키를 사용하여 사용해야합니다. xterm에서와 마찬가지로 Shift-PageUp, Shift-PageDown 및 마우스 휠을 사용하여 스크롤하고 싶습니다.

이를 위해 화면을 구성하는 것은 쉽지 않았으며 터미널 에뮬레이터와의 협력이 필요합니다. 그러나 마침내 마침내 잘 작동하는 솔루션을 달성했습니다. 이것을 ~ / .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에서 일반 스크롤링 지원을 비활성화합니다. Screen을 사용할 때만 스크롤 할 수 있습니다. 항상 Screen을 사용하기 위해 xterm을 다음과 같이 시작할 수 있습니다.

xterm -e screen


11

그리고 GNU Screen 내부의 VIM에서 스크롤 휠을 사용하려면 :

[.vimrc]

set mouse=a             " hold shift to copy xterm
set ttymouse=xterm2     " necessary for gnu screen & mouse

굉장합니다. awesomewm을 사용하고 터미널이 제 삶이었던 이래로 screenrc 트릭과
함께이

7

를 눌러 Ctrl+는 a다음에[

이제 터미널의 제목 표시 줄에 복사 모드가 표시되어야합니다.

이제 화살표 키와 마우스 휠이 예상대로 작동합니다.

정상으로 돌아가려면 Esc 키를 누르거나 Enter를 두 번 누르십시오.


5

설정 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

설명 된 (화면을 실행하기 전에) 환경 변수 TERM을 설정하면 나에게 도움이되었습니다. "export TERM = vt100"을 입력하는 것만 큼 간단합니다. 고마워 추신 : 저는 Mac에 있고 Linux 상자에 ssh하고 화면을 실행합니다.
Daniel K.

위에서 언급했듯이 이것은 의도 한대로 작동하지 않습니다. 예, 스크롤 할 수는 있지만 창을 변경할 때 스크롤 버퍼가 재정의됩니다.
Halsafar

매우 과소 평가 된 솔루션
MolbOrg

4

Cygwin과 Putty에서 모두 다음과 같이 작동했습니다. .screenrc 편집 및 추가

terminfo xterm* ti=:te=

3

위의 답변이 효과가 없다면 .screenrc에 캡션 이나 alwayslastline 옵션이 설정되어 있지 않은지 확인하십시오 . 당신이 그들을 가지고 있다면, 이것은 작동하지 않을 것입니다 :

termcapinfo xterm* ti@:te@

이 정보를 필요로하는 경우에, 당신은 (당신의 터미널의 제목에서 설정을 시도 할 수 있습니다 termcapinfo)


0

"Ubuntu 16.04.2 LTS"를 사용할 때의 해결책은 다음과 같습니다.

ㅏ). 이전 답변에서 지정한대로 $ HOME / .screenrc 를 업데이트하십시오 .

termcapinfo xterm* ti@:te@

비). 드롭 다운 목록에서 "X 터미널"을 선택하여 "설정". "기본 응용 프로그램"을 사용하여 기본 터미널을 xterm으로 변경하십시오.

불필요한 메모

  • "lxterminal"설치를 포함한 다른 터미널은 termcapinfo 행을 "xterm *"대신 "*"로 변경 한 경우에도 효과가 없었습니다.

  • 화면 왼쪽 상단에서 메뉴 버튼을 클릭하면 오른쪽 하단에서 세 번째 아이콘을 사용하여 설정 대화 상자를 얻을 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.