ฉันจะตั้งค่าหน้าจอ GNU เพื่อให้ล้อเลื่อนของเมาส์เลื่อนไปรอบ ๆ ในบัฟเฟอร์การเลื่อนได้อย่างไร ฉันพยายาม Google เกี่ยวกับเรื่องนี้ แต่ความนิยมส่วนใหญ่เกี่ยวกับวิธีการอนุญาตให้แอปพลิเคชันภายในหน้าจอใช้ล้อเลื่อน
ฉันจะตั้งค่าหน้าจอ GNU เพื่อให้ล้อเลื่อนของเมาส์เลื่อนไปรอบ ๆ ในบัฟเฟอร์การเลื่อนได้อย่างไร ฉันพยายาม Google เกี่ยวกับเรื่องนี้ แต่ความนิยมส่วนใหญ่เกี่ยวกับวิธีการอนุญาตให้แอปพลิเคชันภายในหน้าจอใช้ล้อเลื่อน
คำตอบ:
ฉันเชื่อว่าคุณสามารถเพิ่มบรรทัดแบบนี้ใน~/.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
ในหน้าจอแรกคุณต้องเข้าสู่โหมด "scrollback" (หรือ "โหมดถ่ายสำเนา") เพื่อให้สามารถเลื่อนไปรอบ ๆ ในบัฟเฟอร์ scrollback นี้: คำสั่งผสมที่สำคัญCtrl- a EscหรือCtrl- -a Ctrl [จากนั้นคุณสามารถเลื่อนดูประวัติโดยใช้ปุ่มขึ้นและลง (หรือCtrl- b, Ctrl- fเพื่อเลื่อนหน้า)
ในโหมดนั้นล้อเลื่อนของคุณควรทำงานถ้าทำงานในแอพอื่น ๆ คุณท้ายโหมด "scrollback" Escกับ
สำหรับการเลื่อนบัฟเฟอร์การเลื่อนโดยไม่ต้องเข้าสู่โหมดการเลื่อนครั้งแรกซึ่งอาจเป็นไปไม่ได้หากไม่มีการแก้ไขหน้าจอ ฉันไม่เคยได้ยินวิธีเข้าถึงบัฟเฟอร์การเลื่อนนอกเหนือจากโหมดการเลื่อน
บทความที่ยอดเยี่ยมที่ Jon Z อ้างถึงไม่สามารถใช้งานได้อีกต่อไป แต่ฉันสามารถตกปลาในแคชข้อความของ Google ในรูปแบบข้อความอย่างเดียวได้ ฉันบันทึกไว้ที่นี่ในกรณีที่ Google ลดขนาดลงเช่นกันในอนาคต โพสต์ต้นฉบับคือโดย Mikael Ståldalดังนั้นเครดิตที่ถึงกำหนดเครดิต
-
วิธีใช้เมาส์วีลในหน้าจอ GNU
หน้าจอ GNU มีการรองรับ scrollback แต่โดยค่าเริ่มต้นคุณต้องใช้ปุ่มที่น่าอึดอัดใจเพื่อใช้งาน ฉันต้องการใช้ 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 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-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 สองสามครั้ง
การตั้งค่า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
ต่อไปนี้ใช้ได้กับฉันทั้งใน Cygwin และ Putty: แก้ไข. screenrc และเพิ่ม
terminfo xterm* ti=:te=
หากคำตอบดังกล่าวข้างต้นจะไม่ได้ทำงานสำหรับคุณให้แน่ใจว่าคุณไม่ได้มีคำบรรยายใต้ภาพหรือalwayslastlineชุดตัวเลือกใน .screenrc ของคุณ หากคุณมีพวกเขาสิ่งนี้จะไม่ทำงาน:
termcapinfo xterm* ti@:te@
หากคุณต้องการข้อมูลนี้คุณสามารถลองตั้งค่าในชื่อของเครื่องของคุณ (ด้วยtermcapinfo
)
วิธีแก้ปัญหาเมื่อใช้ "Ubuntu 16.04.2 LTS" เป็นดังนี้:
ก) อัปเดต$ HOME / .screenrcตามคำตอบก่อนหน้านี้ที่ระบุไว้:
termcapinfo xterm* ti@:te@
ข) ใช้ "การตั้งค่า" "แอปพลิเคชันที่ต้องการ" เพื่อเปลี่ยนเทอร์มินัลเริ่มต้นเป็น xterm โดยเลือก "X Terminal" อันใดอันหนึ่งในรายการแบบหล่นลง
บางบันทึกฟุ่มเฟือย
ไม่มีเทอร์มินัลอื่นใดรวมถึงการติดตั้ง "lxterminal" ใช้งานได้สำหรับฉันแม้ว่าฉันจะเปลี่ยนบรรทัด termcapinfo เป็น "*" แทน "xterm *"
ด้วยการคลิกปุ่มเมนูที่มุมบนซ้ายของหน้าจอคุณจะได้รับกล่องโต้ตอบการตั้งค่าโดยใช้ไอคอนที่ 3 จากมุมขวาล่าง