ALT + तीर zsh और iTerm2 में शब्दों के बीच बढ़ना


19

मैंने होस्टिंग प्रदाता सर्वरों में से एक पर लॉग इन किया और जीएलयू स्क्रीन में शेल प्रॉम्प्ट में शब्दों के बीच ALT + बाएँ और ALT + दाएं को स्थानांतरित किया।

मुझे अपने स्थानीय OS X zsh को iTerm2 में चलाने के लिए किस प्रकार के प्रमुख बाइंडिंग को कॉन्फ़िगर करने और कहां करने की आवश्यकता है?


इस प्रश्न में रुचि रखने वाले लोग यह जानने के लिए भी इच्छुक हो सकते हैं कि zsh शब्द bash शब्द नहीं हैं। FOO=BARएक शब्द zsh है और 2 शब्द बाश करने के लिए। इसी तरह, यदि आप अपने कर्सर को अंत तक सेट करते हैं foo --barऔर alt + backspace करते हैं, तो bash में आपके पास foo --और zsh में आपके पास होगा foo । Zsh बहुत सारी सुविधाओं को जोड़ता है, लेकिन इसमें बहुत सारे पागल चूक भी होते हैं।
weberc2

जवाबों:


28

मैं यहाँ समाधान नहीं मिला: https://coderwall.com/p/h6yfda । लिंक के नीचे चले जाने की स्थिति में, इसके सबसे महत्वपूर्ण हिस्सों की नकल करेंगे।

  1. प्राथमिकताएं, प्रोफ़ाइल, कुंजी पर जाएं।
  2. बच चरित्र के रूप में कार्य करने के लिए अपनी बाईं your कुंजी सेट करें।
  3. निम्न सेटिंग्स के साथ current ← के लिए वर्तमान शॉर्टकट का पता लगाएँ या एक नया बनाएं:
    • कीबोर्ड शॉर्टकट: ⌥ ⌥
    • क्रिया: एस्केप सीक्वेंस भेजें
    • Esc +: b
  4. निम्नलिखित सेटिंग्स के साथ for → कीबोर्ड शॉर्टकट के लिए दोहराएं:
    • कीबोर्ड शॉर्टकट:। →
    • क्रिया: एस्केप सीक्वेंस भेजें
    • एस्क +: एफ

1
यह ध्यान देने योग्य है कि यह एक विशेष टर्मिनल एमुलेटर के लिए विशिष्ट है - सामान्य रूप से ज़श के लिए नहीं।
हाय-एंजेल

7

आप खोजशब्दों के लिए देख रहे हैं backward-wordऔर forward-word। इसलिए यदि आप एक ऐसे शेल पर हैं जहां कीबाइंडिंग यह bindkey -L | grep backward-wordजांचने की कोशिश नहीं कर रही है कि क्या वे कॉन्फ़िगर किए गए हैं। इसके बारे में अधिक जानकारी zshzle (1) में है

आप कुछ इस तरह टाइप करके कीबाइंडिंग को मैन्युअल रूप से सेट कर सकते हैं:

bindkey ' Ctrl+ v Alt+ Right' फॉरवर्ड-शब्द

bindkey ' Ctrl+ v Alt+ Left' पिछड़ा-शब्द

मुझे कीबाइंडिंग से भी कुछ परेशानी थी और यह समस्या लगभग हमेशा थी कि ऑप्शन / Alt कुंजी ने अपेक्षित मेटा / एस्केप से कुछ अलग भेजा।


तुम भी उपयोग कर सकते हैं emacs-forward-wordऔर emacs-backward-word। अंतर यह है कि आप शब्द के अंत में आगे की ओर कूदते हैं और शब्द के भीगने पर हमेशा कूदने के बजाय शब्द के भीगने पर पीछे जाते हैं।
एलेक्सी गैबी सेप

यह सबसे मजबूत और साफ समाधान है। यह विभिन्न प्रकार की कुंजी मैपिंग और / या सभी प्रकार के ssh-tmux-zsh संयोजन के लिए अनुकूल हो सकता है। अन्य समाधान जिसमें हार्ड-कोडेड एस्केप सीक्वेंस शामिल हैं, केवल कुछ विशेष प्रणाली में कुछ मामलों को हल करते हैं।
HKTonyLee

3

मैं iTerm के लिए बात नहीं कर सकता, लेकिन ये कीबाइंडिंग हैं जिनका उपयोग मैंने गनोम टर्मिनल के तहत इस समस्या को हल करने के लिए किया था, फेडोरा 19 पर, ओएचएस-माय-जेडश के साथ ज़ेडएस 5.0.7 चल रहा है:

bindkey "\e[1;3C" forward-word
bindkey "\e[1;3D" backward-word

जहाँ \e== एस्केप-की-सीक्वेंस ( धारा 4.1.1 के तहत प्रलेखित )

और [== O(अपरकेस के रूप में; धारा 4.2.1 के तहत दस्तावेज के रूप में), कुछ मामलों में। उदाहरण के लिए इसके तहत tmuxप्रतिस्थापन मेरे लिए आवश्यक है, हालांकि इसके बिना tmuxयह आवश्यक है कि कोई प्रतिस्थापन न किया जाए और [==[

एक अनुक्रम के लिए कुंजी कोड catवांछित अनुक्रम का उपयोग करके और प्राप्त किया जा सकता है । उदाहरण के लिए दबाने के परिणामों की <Alt+Right>व्याख्या इस प्रकार की जानी चाहिए:

$ cat
^[[1;3C

^[== \e== बच-कुंजी-अनुक्रम

[== [बिना tmuxOR [== O(अपरकेस ओ) के साथtmux

1;3 == मैं इस बारे में निश्चित नहीं हूं, लेकिन इसका तार्किक अर्थ होना चाहिए <Alt>

C == सही तीर कुंजी

तो फिर इस क्रम को दिया जाता है bindkeyमें ~/.zshrcपहले तर्क के रूप में, दृढ़ता के लिए फ़ाइल, और है बाध्य , जिसका अर्थ है कि तर्क में कीस्ट्रोक (zsh मामले में या विजेट) एक विशेष संपादक आदेश पर अमल करेंगे, विजेट के लिए, जो पहले में उपरोक्त उदाहरण की लाइन है forward-word

~/.zshrcफिर से sourced किया जाना चाहिए के बाद इन दोनों आदेशों के साथ यह करने के लिए जोड़ दिए जाते हैं:

$ source ~/.zshrc

अब मेरे सिस्टम पर एक झुंझलाहट यह है कि इस विशेष संयोजन के कारण टर्मिनल एमुलेटर को हर बार जब बीप जारी किया जाता है, तो मैंने इसे निष्क्रिय कर दिया

'Edit'->'Profile Preferences'->'Terminal Bell' चेकबॉक्स।


2

ITerm2 की कमांड लाइन नेविगेशन को मेरे लिए अधिक सहज बनाने के संबंध में मेरे लिए सबसे अच्छा काम क्या हुआ (मैं एक युवा वयस्क हूं जो कमांड लाइन पर बड़ा नहीं हुआ, लेकिन मैंने पाठ संपादकों और आईडीई में बहुत समय बिताया है) सेवा:

  • प्राथमिकताएं -> प्रोफ़ाइल -> कुंजी पर जाएं
  • कुंजी मैपिंग की सूची के तहत प्रीसेट (कॉम्बो बॉक्स) जोड़ने या हटाने के लिए एक बॉक्स है
  • Natural Text Editingप्रीसेट ड्रॉप डाउन में विकल्प चुनें ।

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


0

मेरा सुझाव है कि आप zkbdकीबाइंडिंग को कॉन्फ़िगर करने के लिए उपयोग करें। मैं इसका उपयोग करता हूँ और iTerm2 पर Alt+ Left/ Alt+ Rightठीक काम करता है। zshcontrib(1)Zkbd पर विवरण के लिए देखें ।

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