क्या टर्मिनल का उपयोग करते समय घर और अंतिम कुंजियों को मैप किया जा सकता है?


76

homeऔर endपर एक मैकबुक प्रो कुंजी fn + बायाँ तीर या fn + दायाँ तीर के साथ नकल करते जा सकता है। या जब कुछ सेटिंग्स बदल जाती हैं, तो fn के बजाय कमांड (Apple) कुंजी के साथ।

टर्मिनल में इनमें से कोई भी काम नहीं करता है।

जैसा कि मुझे बार-बार पंक्ति के आरंभ या अंत में जाने की आवश्यकता होती है और शब्द के द्वारा आगे या पीछे कूदना भी पसंद करेंगे।

मैं टर्मिनल में एक लाइन पर कैसे कूद सकता हूं?

जवाबों:


64

टर्मिनल में END + HOME के ​​लिए और + के लिए control+ का उपयोग करें ।acontrole

इसके अलावा का उपयोग esc+ fकी शुरुआत करने के लिए ले जाने के लिए अगले शब्द और esc+ bकी शुरुआत करने के लिए ले जाने के लिए वर्तमान शब्द। (आप वर्तमान और अगले के बारे में सावधान रहना चाहिए)


2
उत्तम! शब्द के माध्यम से कूदने के बारे में क्या? (ctrl-left और ctrl-right विंडोज़ में)
at01

@ at01 मैंने अपना उत्तर अपडेट किया।
Am1rr3zA

40
टर्मिनल के लिए कुंजियों को किसने बनाया है?!?!?
at01

4
मैं शब्दों की शुरुआत में जाने के लिए विकल्प + बाएँ तीर और विकल्प + दाएँ तीर का उपयोग करना पसंद करता हूँ
एलन Jikamu

2
Ctrl + a और Ctrl + e ने मेरे लिए काम किया, लेकिन यहां इतने सारे के रूप में प्रस्तावित कीस्ट्रोक्स का पुन: मैपिंग करने का सहारा लिए बिना, मैं Shift + Home और Shift + End (Shift + Fn + बाएँ तीर और Shift + Fn) का अल्फाफ़ाइटर विकल्प पसंद करता हूँ। लाइन की शुरुआत और अंत के लिए मैकबुक प्रो कीबोर्ड पर + सही तीर।
जॉन रिक्स

70

लाइन की शुरुआत या अंत कैसे प्राप्त करें, इसके बारे में किसी को जवाब देने के लिए, यह प्रतीत होता है कि डिफ़ॉल्ट टर्मिनल द्वारा इन कुंजियों को मैप किया जाता है:

  • शिफ्ट + होम → सामान्य टर्मिनलों में "होम" कुंजी के बराबर लाइन की शुरुआत
  • सामान्य टर्मिनलों में "अंत" कुंजी के बराबर पंक्ति का अंत + अंत → अंत

यदि आप "सामान्य" तरीके से काम करने के लिए घर और अंत चाहते हैं (और शिफ्ट की आवश्यकता नहीं है), तो [टर्मिनल मेनू] → प्राथमिकताएं → प्रोफाइल टैब (या ओएस एक्स के कुछ संस्करणों पर सेटिंग्स) → कीबोर्ड उप-टैब पर जाएं।

फिर इन कुंजियों को संशोधित / जोड़ दें निम्नलिखित होने के लिए "शेल को स्ट्रिंग भेजें"

  • घर: \033[H
  • समाप्त: \033[F

\033यदि आप इसे जोड़ना चाहते हैं, तो आप संपादित संवाद इनपुट के भीतर भागने की कुंजी दबाकर भाग प्राप्त कर सकते हैं ।

फिर घर और अंत सामान्य (फिर से) की तरह काम करेंगे।

यह भी ध्यान दें कि टर्मिनल मैप में लेफ्ट और वर्ड राइट में डिफ़ॉल्ट रूप से "alt + ←" और "alt + →", याद रखने के लिए एक और आसान कॉम्बो।

मैक ओएस एक्स के बाद के संस्करणों में, यदि टर्मिनल स्क्रीन ऊपर या नीचे की ओर शिफ्ट हो जाती है जब आप घर / समाप्ति कुंजी दबाते हैं, तो घर की कुंजी को आपके इच्छित परिणाम प्राप्त \033[1~करने के \033[4~लिए और अंतिम कुंजी सेट करने की आवश्यकता हो सकती है (कोई शिफ्ट की आवश्यकता नहीं) ।

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


5
घर और अंत के लिए \ 033 [एच और \ 033 [एफ मेरे लिए काम नहीं किया; हालाँकि, \ 001 और \ 005 किया था। आप इन कोड्स को ctrl-A और ctrl-E दबाकर एडिट डायलॉग में दर्ज कर सकते हैं। मैं zsh का उपयोग कर रहा हूं, मुझे यकीन नहीं है कि इससे कोई फर्क पड़ता है।
जेडब्ल्यू।

शिफ्ट + होम / एंड ने काम किया
isaias-b

1
कुछ समय के लिए यह पता लगाने की कोशिश कर रहा है, यह मुझे बचा लिया!
पॉल ग्रे

यह तब काम करता है जब आप स्थानीय स्तर पर वास्तविक टर्मिनल एप्लिकेशन में हों। हालाँकि, जब आप macOS मशीन में ssh'd हैं, तो ये काम नहीं करते हैं। कैसे इस के आसपास पाने के लिए ?!
एहि

2
@ अहिंसा एसएसएच एक टर्मिनल सत्र का एक कनेक्शन है, न कि टर्मिनल एमुलेटर का कनेक्शन। इनपुट विकल्प हमेशा जो भी टर्मिनल एमुलेटर आप उपयोग कर रहे हैं द्वारा परिभाषित किया गया है।
बछसौ

39

ऐसा लगता है कि आप रीडलाइन और बैश का उपयोग करते हुए कुछ मदद की तलाश कर रहे हैं, यहाँ से संशोधित कीबोर्ड सामान की एक पागल सूची है: http://www.math.utah.edu/docs/info/features_7.html#SEC45

Ctrla लाइन की शुरुआत करने के लिए ले जाएँ।
Ctrle पंक्ति के अंत में जाएं।
Escf एक शब्द आगे बढ़ाएं।
Escb एक शब्द पीछे हटो।
Ctrll स्क्रीन को साफ़ करें, शीर्ष पर वर्तमान रेखा को पुन: प्रदर्शित करता है।

Ctrlk वर्तमान कर्सर स्थिति से पंक्ति के अंत तक पाठ को मारें।
Escd कर्सर से वर्तमान शब्द के अंत तक, या यदि शब्दों के बीच में, अगले शब्द के अंत तक।
EscDel कर्सर को पिछले शब्द की शुरुआत से मारें, या यदि शब्दों के बीच, पिछले शब्द की शुरुआत तक।
Ctrlw कर्सर को पिछले व्हाट्सएप पर मारें। यह भिन्न है EscDelCtrla क्योंकि शब्द सीमा अलग है।

Ctrld कर्सर के नीचे का वर्ण हटाएं।
Ctrl_ आखिरी काम जो आपने किया था, उसे पूर्ववत करें। आप एक खाली लाइन पर वापस जा सकते हैं।

और, यहां बताया गया है कि टेक्स्ट को लाइन में वापस कैसे लें। यांकिंग का अर्थ है कि किल-बफर से सबसे हाल ही में मारे गए पाठ को कॉपी करना।

Ctrly Yank ने हाल ही में कर्सर पर बफर में वापस पाठ मारा।
Escy किल-रिंग घुमाएं, और नए शीर्ष को हिलाएं। आप केवल यह कर सकते हैं यदि पूर्व कमांड है Ctrlyया Escy


यह अमूल्य है - धन्यवाद - काश यह कहीं प्रिंट करने योग्य फ़ाइल के रूप में उपलब्ध होता!
मैट बी

मुझे लगता है कि यह काफी "अनुकूलित" नहीं है, लेकिन; फ़ाइल -> प्रिंट करें?
जेसन सलज

वाह, ये linux पर शब्द की तुलना में सुपर अजीब हैं .. इस बकवास को हटाने का कोई तरीका?
btk

हां, बैश मैन पेज ट्राई करें। (मुझे नहीं पता कि यह कैसे करना है।)
सिल्वरवुल्फ

6

उन लोगों के लिए जो तीर कुंजी का उपयोग करना पसंद करते हैं, मार fnShift+ Left Arrowआपको कमांड लाइन पर घर ले जाएंगे। इसी तरह, fnShift+ Right Arrowआपको अंत तक ले जाएगा।


6

आप एक शब्द को option+ leftऔर option+ के साथ एक समय में स्थानांतरित कर सकते हैं right

उपयोग करने के बारे में homeऔर end, टर्मिनल के डिफ़ॉल्ट बाइंडिंग निम्नलिखित हैं:

  • shift+ home→ लाइन की शुरुआत करने के लिए कूद
  • shift+ end→ लाइन के अंत तक कूदें
  • home → स्क्रॉल-बैक बफर के शीर्ष पर स्क्रॉल करें
  • end → स्क्रॉल-बैक बफर के नीचे स्क्रॉल करें

कई अन्य टर्मिनल ऐप्स (कई प्लेटफार्मों पर), उन संशोधित और असंशोधित जोड़े उलट कर रहे हैं (यानी नग्न homeऔर endवर्तमान पंक्ति और संशोधित संस्करण (चाहे से आस-पास जाएं उपयोग किया जाता है shiftस्क्रॉल वापस बफर नेविगेट करने के लिए उपयोग किया जाता है या कुछ और) )। आप टर्मिनल की बाइंडिंग को उस तरह से काम करने के लिए उलट सकते हैं यदि आप निम्न कार्य करके चाहें तो:

टर्मिनल मेनू → वरीयताएँ → सेटिंग्स / प्रोफ़ाइल टैब → कीबोर्ड उप-टैब पर जाएं।

फिर निम्नलिखित होने के लिए की-एक्शन जोड़े को संशोधित करें:

  • :: पाठ भेजें: \ 033 [एच
  • Top: ऊपर स्क्रॉल करें
  • :: पाठ भेजें: \ 033 [एफ
  • Bottom: नीचे तक स्क्रॉल करें

नोट: \ 033 एस्केप कुंजी दबाकर एडिट डायलॉग में टेक्स्ट-टू-बी-भेजा बॉक्स में दर्ज किया गया है।

वहां, आप समान रूप से संशोधित और अनमॉडिफाइड की बाइंडिंग स्वैप कर सकते हैं , page upऔर page downचीजों को लगातार बनाए रखने के लिए: shiftटर्मिनल के साथ एक नेविगेशन कुंजी दबाने से टर्मिनल पर ही कमांड का प्रतिनिधित्व होता है (स्क्रॉल-बैक बफर नेविगेट करने के लिए), बिना एक को दबाए जो कुछ भी चल रहा है करने के लिए के माध्यम से प्रमुख प्रेस भेजता भीतर (उदाहरण के लिए यह bash, less, nano, screen, आदि)। इसके लिए की-एक्शन जोड़े हैं:

  • :: पाठ भेजें: \ 033 [5 ~
  • Up: पेज को स्क्रॉल करें
  • :: पाठ भेजें: \ 033 [6 ~
  • Down: पेज डाउन स्क्रॉल करें

4

अन्य उत्तर महान और अधिक पोर्टेबल हैं, लेकिन यहां एक नियमित कीबोर्ड के लिए "ओएस एक्स तरीका" है (जो कई अन्य टर्मिनलों के विपरीत है)। निम्नलिखित प्रयास करें:

ShiftHome- लाइन की शुरुआत - लाइन का
ShiftEndअंत

से http://www.greenend.org.uk/rjk/tech/macbits.html


4

मानचित्रण homeऔर endचाबियाँ आपके वांछित कार्यक्षमता के साथ आसानी से समस्या को हल करेंगे।

कई उत्तर पोस्ट किए गए हैं, लेकिन यदि आप उपयोग कर रहे हैं zsh, तो आप निम्न पर सेट कर सकते हैं home:

\001

और इसके लिए सेट endकरें:

\005

वरीयता - प्रोफाइल - कीबोर्ड पर क्लिक करके


मैंने इसे भी आजमाया, लेकिन फिर यह घर और अंत में टूट गया :( आप उन्हें अल्फ्रेडो कार्डिग्लिआनो के सुझाव के अनुसार मैप कर सकते हैं: कुंजी:: क्रिया: \ 033OH कुंजी:: क्रिया: \ 033OF
कर्लिंग

यह पूरी तरह से मेरे लिए काम किया! मैं केवल नैनो का उपयोग करता हूं, इसलिए यहां कोई समस्या नहीं है।
स्टर्लिंग बॉर्न

हां, यह काम कर रहा है, लेकिन समस्या को सामान्य रूप से हल नहीं कर रहा है। मैं बैश से zsh में चला गया और मुझे FN-SHIFT-LEFT / RIGHT का उपयोग किया गया .. इससे मेरी समस्या हल हो गई: stackoverflow.com/questions/8638012/…
vlk

1

यह काम करने के लिए सबसे प्रभावी तरीका है। टर्मिनल पर जाएँ -> प्राथमिकताएँ -> प्रोफ़ाइल -> कीबोर्ड और जोड़ें:

कुंजी:: क्रिया: \ 033OH

कुंजी: ↗ क्रिया: \ 033OF


1

मैं इस समस्या का एक वैकल्पिक समाधान प्रदान करना चाहता हूं। यदि आप vi उपयोगकर्ता हैं तो यह बहुत अच्छा काम करता है। टर्मिनल में विम कुंजी बाइंडिंग आपके टर्मिनल को विम शैली में उपयोग करने का एक तरीका प्रदान करता है। आप इसे set -o viटर्मिनल में टाइपिंग के माध्यम से कर सकते हैं और .bash_profileयदि आप चाहें तो इसे बेझिझक डाल सकते हैं। इसके बाद, आपका टर्मिनल प्रभावी रूप से एक विम संपादक है। आप escकमांड मोड में जाने और महत्वपूर्ण तरीके से घूमने के लिए कुंजी का उपयोग कर सकते हैं । उदाहरण के लिए, 0आपको शुरुआत में ले $जाता है और अंत तक ले जाता है। तुम भी उपयोग कर सकते हैं Iऔर Aशुरुआत और अंत करने के लिए जाने के लिए और संपादन मोड में जाएं तुरंत करने के लिए। wऔर bआप एक शब्द से आगे और पीछे चलते हैं। और यदि आप दबाने से दृश्य मोड में जाने की कोशिश करते हैंv, आपको एक विम एडिटर दिया जाएगा और आपके पास जब आप इस एडिटर को छोड़ेंगे तो टर्मिनल में निष्पादित किया जाएगा।

सलाह दी जाती है कि यह विम कुंजी बाध्यकारी उन सभी हॉटकीज़ को स्पष्ट कर देगी जो आपने अन्य उत्तरों से सीखी हैं।


0

वांछित के रूप में यहाँ मुद्रण योग्य रूप में सूची है :)

http://pastebin.com/uCqwn7qs

मैंने विवरण में एक "बग" भी तय किया। यह वही है जो आप मूल रूप से निर्देशों में पढ़ सकते हैं:

ESC-d पिछले शब्द के प्रारंभ में कर्सर से मारें, या यदि शब्द के बीच, तो।

यह एक कट-एंड-पेस्ट गलती की तरह बुरी तरह से बदबू आ रही है, क्योंकि दोनों आंशिक वाक्य एक ही बात बताते हैं। सीधे-सादे तर्क से कहा जाए, तो पहले आधे को "कर्सर से वर्तमान शब्द की शुरुआत" तक पढ़ना चाहिए।


0

... शब्द के बारे में कूदने के बारे में क्या? (विंडोज़ में ctrl-left और ctrl-right)

# in ~/.inputrc
"\033[5C": forward-word
"\033[5D": backward-word
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.