जीएनयू स्क्रीन में स्क्रॉलव्हील का उपयोग करना


254

मैं स्क्रॉल के बफर में माउस के स्क्रॉलव्हील को चारों ओर स्क्रॉल करने की अनुमति देने के लिए जीएनयू स्क्रीन कैसे सेट कर सकता हूं? मैंने इस बारे में Google को कोशिश की, लेकिन सबसे हिट इस बात पर था कि स्क्रोलव्हील का उपयोग करने के लिए स्क्रीन के अंदर अनुप्रयोगों को कैसे अनुमति दी जाए।


जेस्पर - क्या आप चुने हुए उत्तर को बदल सकते हैं? मैं भ्रमित हो गया, और टिप्पणियाँ सही हैं, अन्य उत्तर बेहतर है।
ज्योफ

आजकल स्क्रीन का उपयोग नहीं कर रहे हैं, लेकिन upvotes काफी आश्वस्त लग रहे हैं। :)
जेस्पर

जवाबों:


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
मैंने पिस्टोस के सुझाव का पालन किया, और यह आंशिक रूप से काम करता है। जैसा कि वह वर्णन करता है, मैं कुछ कमांड दर्ज कर सकता हूं (स्क्रीन को स्क्रॉल करने के लिए पर्याप्त आउटपुट का उत्पादन करने के लिए), और फिर पूर्ववर्ती लाइनों के माध्यम से वापस स्क्रॉल करने के लिए माउस-व्हील का उपयोग करें। वास्तव में, मैं केडीई के माध्यम से केडीई में स्क्रीन का उपयोग कर रहा हूं (मूल रूप से xterm), और कोनो कंसोल विंडो के लिए स्क्रॉलबार उसी तरह काम करता है। लेकिन एक समस्या है: यदि आप स्क्रीन की खिड़कियों (^ An, ^ Ap) के बीच स्विच करते हैं, तो आपका स्क्रॉलबैक बफर गड़बड़ हो जाता है। आपके द्वारा स्विच की गई किसी भी विंडो की सामग्री बस आपके स्क्रॉलबैक बफर में 'टक' हो जाएगी। यह वास्तव में इसे कम कर देता है।
रयान बी लिंच

22
लेकिन यह कमांड इतिहास में चारों ओर स्क्रॉल करता है। मैं आउटपुट बफर के माध्यम से स्क्रॉल करना चाहता हूं।
जेस्पर ई

15
@ जेस्पर: मैंने अनुभव किया कि यह कमांड हिस्ट्री को भी स्क्रॉल कर रहा है (मैं उबंटू के GNOME टर्मिनल का उपयोग कर रहा हूं)। मैंने इसे Edit -> Profile Preferences -> स्क्रॉलिंग, और अनचेक करने के लिए "वैकल्पिक स्क्रीन पर स्क्रॉल करने के लिए कीस्ट्रोक्स का उपयोग करें" पर जाकर तय किया। ध्यान दें कि मुझे अभी भी पिस्टोस के फिक्स का उपयोग करने की आवश्यकता है।
माइकल क्रेब्स

2
OS X Lion में काम करने के अलावा, यह पुट्टी, iSSH और प्रॉम्प्ट (पैनिक द्वारा) में भी काम करता है। यह लाइन सभी .rcrc फाइलों में मौजूद होनी चाहिए!
20

20
यह स्क्रीन सत्र में टर्मिनल में स्क्रॉल नहीं करने में सक्षम बनाता है। Ie यदि आप विभाजित क्षेत्रों के साथ काम करते हैं या एक खिड़की स्विच करते हैं तो आप इस क्षेत्र में वापस स्क्रॉल करने में सक्षम नहीं होंगे और इसके बजाय आप टर्मिनल आउटपुट में वापस स्क्रॉल करेंगे और क्षेत्र को विभाजित करने या खिड़की को बदलने से पहले आउटपुट को देखेंगे। ।
g_daniel

69

स्क्रीन में, आपको पहले "स्क्रॉलबैक मोड" (या "कॉपी मोड") को स्क्रॉलबैक बफर में चारों ओर स्क्रॉल करने में सक्षम होना चाहिए: कुंजी कॉम्बो Ctrl- a Escया Ctrl- a Ctrl- [। फिर आप ऊपर और नीचे कीज (या Ctrl- b, Ctrl- fएक पेज को स्थानांतरित करने के लिए) का उपयोग करके इतिहास के आसपास स्क्रॉल कर सकते हैं ।

उस मोड में, आपके माउसव्हील को भी काम करना चाहिए, अगर वह अन्य ऐप्स में काम करता है। आप के साथ "स्क्रॉलबैक मोड" समाप्त करते हैं Esc

स्क्रॉलबैक मोड में प्रवेश किए बिना स्क्रॉलबैक बफर को स्क्रॉल करने के लिए, जैसा कि स्क्रीन को संशोधित किए बिना संभव नहीं है। मैंने कभी भी स्क्रोलबैक बफर तक पहुंचने का कोई तरीका नहीं सुना है, इसके अलावा स्क्रॉलबैक मोड भी।


21
हां, मैं स्क्रोलबैक मोड के बारे में जानता हूं। मुझे उम्मीद थी कि माउस का उपयोग करने के लिए मुझे मैन्युअल रूप से स्क्रॉलबैक मोड में प्रवेश नहीं करना होगा। धन्यवाद।
जेसपेरे

4
"स्क्रॉलबैक मोड" बल्कि एक अनौपचारिक शब्द IMHO है। :) Ctrl + एक Esc कॉपी मोड में प्रवेश करेगा ; इस विधा को हमेशा कहा जाता रहा है, क्योंकि इसका प्राथमिक उद्देश्य पाठ को कॉपी करना और फ्रोजन बनाना संभव है। कॉपी मोड में माउस व्हील के साथ स्क्रॉल करने की संभावना (nb। मेरे लिए काम नहीं करता है) को एक तरह के "अतिरिक्त नौटंकी" के रूप में देखा जाना चाहिए, लेकिन इस मोड के मुख्य उद्देश्य के रूप में नहीं।
वाक्यविन्यास

1
@syntaxerror: ठीक है, डॉक्स इसे "कॉपी / स्क्रॉलबैक मोड" कहते हैं, और "स्क्रॉलबैक बफर" ( gnu.org/software/screen/manual/screen.html#Copy-and-Paste ) का उल्लेख करते हैं , इसलिए मुझे लगता है कि हम ' दोनों सही :-) वैसे भी, मैंने अपने जवाब में "कॉपी मोड" जोड़ा।
15

महान! मैं ऐसा करना चाहता था, लेकिन इस तरह के पुराने उत्तरों में गड़बड़ करने से पहले, मैं पहले पूछने के लिए जाना जाता हूं (भले ही मुझे पता है कि एसओ / एसई नियम इसे निर्धारित नहीं करते हैं; लेकिन यह अलिखित नियमों के साथ बात है।)
वाक्यविन्यास

यह आधिकारिक उत्तर होना चाहिए था। धन्यवाद :)
Linh

24

जॉन जेड जिस उत्कृष्ट लेख का जिक्र कर रहे हैं वह अब उपलब्ध नहीं है, लेकिन मैं Google कैश से इसके केवल-पाठ संस्करण को ही प्राप्त कर सका। यदि Google भविष्य में भी ड्रॉप करता है, तो मैं इसे यहाँ सहेज रहा हूँ। मूल पोस्ट Mikael Ståldal द्वारा था, इसलिए क्रेडिट जहां क्रेडिट देय है।

-

जीएनयू स्क्रीन में मूसवेल का उपयोग कैसे करें

जीएनयू स्क्रीन में स्क्रॉलबैक के लिए समर्थन है, लेकिन डिफ़ॉल्ट रूप से आपको इसका उपयोग करने के लिए अजीब कुंजी का उपयोग करना होगा। मैं शिफ्ट-पेजअप, शिफ्ट-पेजडाउन और मूसवेल को स्क्रॉल करने में सक्षम होना चाहूंगा, जैसे आप 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

फिर इसे अपनी ~ / .rcrc फ़ाइल में जोड़ें:

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

13

ओएस एक्स (हिम तेंदुआ) के लिए, निम्नलिखित ने मेरे लिए काम किया:

http://slaptijack.com/system-administration/mac-os-x-terminal-and-gnu-screen-scrollback/

संक्षेप में, इसमें दूरस्थ होस्ट पर ~ / .rcrc को जोड़ना शामिल है (आप जिस पर स्क्रीन चला रहे हैं):

defscrollback 5000
termcapinfo xterm* ti@:te@

11

और GNU स्क्रीन के अंदर VIM में स्क्रॉलव्हील का उपयोग करने के लिए:

[.Vimrc]

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

बहुत बढ़िया, यह स्क्रीनकेक ट्रिक के साथ संयोजन में मेरा दिन बना है क्योंकि मैं
एसेसोमम

7

इसके बाद Ctrl+ दबाएंa[

आपके टर्मिनल के शीर्षक बार को अब कॉपी मोड कहना चाहिए।

अब तीर कुंजी और माउस व्हील को उम्मीद के मुताबिक काम करना चाहिए।

सामान्य प्रेस Esc पर लौटने के लिए या एक-दो बार एंटर करें।


5

रनिंग स्क्रीन से पहले के बजाय TERMपरिवर्तनशील सेटिंग भी काम करती है। मैं लंबे समय से इसका उपयोग कर रहा हूं, एक आकर्षण की तरह काम करता है।vt100xterm

इसे अपने में जोड़ें .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 की स्थापना (स्क्रीन चलाने से पहले) मेरे लिए काम की। यह "निर्यात अवधि = vt100" में कुंजीयन जितना सरल है। बहुत बहुत धन्यवाद। PS: मैं एक मैक पर हूं, एक लिनक्स बॉक्स में ssh और वहां मैं स्क्रीन चलाता हूं।
डैनियल के।

जैसा कि ऊपर बताया गया है कि यह उद्देश्य के अनुसार काम नहीं करता है। हाँ जब आप विंडो बदलते हैं तो आप अपने स्क्रॉल बफर को ओवरराइड कर सकते हैं।
हलसफार

बहुत कम समाधान
मोलबोर्ग

4

निम्नलिखित ने मेरे लिए साइग्विन और पुट्टी दोनों में काम किया: एडिट .screenrc और जोड़ें

terminfo xterm* ti=:te=

3

जवाब ऊपर आप के लिए काम नहीं करते हैं, तो आप एक की जरूरत नहीं है यह सुनिश्चित करने के शीर्षक या alwayslastline अपने .screenrc में विकल्प सेट। यदि आपके पास है, तो यह काम नहीं करेगा:

termcapinfo xterm* ti@:te@

यदि आपको इस जानकारी की आवश्यकता है, तो आप इसे अपने टर्मिनल के शीर्षक में सेट करने का प्रयास कर सकते हैं (साथ में termcapinfo)


0

"Ubuntu 16.04.2 LTS" का उपयोग करते समय समाधान निम्नानुसार है:

ए)। पिछले जवाबों के अनुसार $ HOME / .rcrc अपडेट करें :

termcapinfo xterm* ti@:te@

ख)। ड्रॉप-डाउन सूची में "X टर्मिनल" एक का चयन करके, xterm में डिफ़ॉल्ट टर्मिनल को बदलने के लिए "पसंदीदा अनुप्रयोग" का उपयोग करें।

कुछ शानदार नोट

  • "Lxterminal" को स्थापित करने सहित अन्य किसी भी टर्मिनल ने मेरे लिए काम नहीं किया, यहां तक ​​कि जब मैंने "xterm *" के स्थान पर termcapinfo लाइन को "*" में बदल दिया।

  • स्क्रीन के ऊपरी-बाएँ कोने में स्थित मेनू बटन पर क्लिक करके, आप नीचे दाएं कोने से तीसरे आइकन का उपयोग करके सेटिंग संवाद प्राप्त कर सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.