tmux / स्क्रीन ctrl + एरो (दाएँ से बाएँ) SSH पर काम नहीं करता है


2

मैंने tmuxCtrl + दाएँ / बाएँ शब्दों को छोड़ने के लिए कॉन्फ़िगर किया है :

set-window-option -g xterm-keys on

यह ठीक काम करता है, लेकिन जैसा कि मैं SSH करता हूं, यह काम नहीं करता है और प्रिंट ;5Dया ;5C।।

एक ही समस्या तब हुई जब मैंने उपयोग किया screen, क्या एसएसएच पर tmux/ के लिए कुछ विशिष्ट कॉन्फ़िगरेशन है screen?


UNIX & Linux पर भी पोस्ट किया गया: unix.stackexchange.com/questions/186964
JdeBP

जवाबों:


5

यह tmux नहीं है और न ही स्क्रीन है कि "शब्दों को छोड़ देता है"; पाठ इनपुट आपके शेल द्वारा प्रदान किया गया है । इसलिए आपको यह पता लगाना होगा कि Ctrl + तीर किस कुंजी अनुक्रम को उत्पन्न करता है, और आपके शेल को सिखाता है कि इसका अर्थ है "एक शब्द छोड़ें"। अन्यथा, यह मध्य अनुक्रम की व्याख्या करना बंद कर देगा क्योंकि यह मान्यता प्राप्त नहीं है।

यदि आप बैश का उपयोग कर रहे हैं, तो यह ncurses / termfo, और अन्य से "इनपुट आर्क" फाइल की कुछ प्रमुख परिभाषाएँ लेता है। तो पहले सुनिश्चित करें कि आपके पास ncurses टर्मिनल परिभाषाएँ स्थापित हैं ("ncurses-term" या समान)। और यदि आपके पास कोई रिवाज है ~/.inputrc, तो इसका उपयोग करके सिस्टम-वाइड एक को आयात करने के लिए कहें:

$include /etc/inputrc

यदि वह मदद नहीं करता है, तो अपने ~ / .inputrc फ़ाइल (सर्वर पर, निश्चित रूप से) में एक कस्टम मैपिंग जोड़ें:

  1. बाश में, प्रेस CtrlV("शब्दशः इनपुट" कुंजी), उसके बाद Ctrl। आप "Ctrl + दायाँ" पलायन क्रम को सादे पाठ के रूप में सम्मिलित देखेंगे:

    ^[[1;5C
    

    ^[एक "ईएससी" चरित्र का मतलब है; बाकी सादे पाठ हैं। तो यह है ESC [ 1 ; 5 C

  2. में man bash, inputrc ( "ReadLine") आदेश एक शब्द लंघन के लिए लगता है। (यह forward-word)

  3. में ~/.inputrc, कुंजी क्रम और कमांड दोनों को जोड़ें। ("ईएससी" के रूप में लिखा गया है \e।)

    "\e[1;5C": forward-word
    
  4. उसी के लिए दोहराएं Ctrl

  5. बंद करें ssh, फिर फिर से कनेक्ट करें और देखें कि क्या यह काम करता है।

ध्यान दें कि अधिकांश वितरण में पहले से ही इन विशेष मैपिंग हैं /etc/inputrc


मैं सर्वर पर कुछ भी संपादित नहीं कर सकता। "\e[1;5C": forward-word`~ / .Inputrc` (मेरे सिस्टम पर) को जोड़ना मदद नहीं करता है।
सगईलो

1
@SagiLow: निश्चित रूप से यह मदद नहीं करता है - सर्वर यह नहीं देख सकता कि ग्राहक के पास कौन सी फाइलें हैं ... वास्तव में कुछ भी नहीं है जो ग्राहक इसे ठीक करने के लिए कर सकता है, वैसे भी।
ग्रैविटी

मेरे सहयोगी जो उबंटू 12 का उपयोग करते हैं, वे इसे ठीक से प्रबंधित करते हैं, यहां तक ​​कि उसी रिमोट सिस्टम से कनेक्ट होने पर भी। मुझे नहीं लगता कि यह नहीं किया जा सकता है
SagiLow

bash टर्मिनल डेटाबेस से विस्तारित कुंजी-परिभाषाओं में से कोई भी उपयोग नहीं करता है (जैसे कि प्रश्न में "ctrl + एरो")। उसके लिए, यह विशेष रूप से उपयोगकर्ता की .inputrcफ़ाइल पर निर्भर करता है ।
थॉमस डिकी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.