Bash में ctrl + T का उपयोग किया गया?


47

मैंने देखा कि बैश में ctrl+ के लिए एक छोटा कट है Tजो कर्सर से पहले अंतिम दो अक्षरों को स्वैप करता है।

मैं सोच रहा हूं कि इंजीनियरों ने इसे शामिल करने का फैसला क्यों किया।

  • क्या यह पिछले सम्मेलन से विरासत में मिला था?
  • या वहाँ एक व्यावहारिक उद्देश्य है कि यह आमतौर पर के लिए प्रयोग किया जाता है?

13
उत्तर नहीं, लेकिन यह ऐसा नहीं है bash, लेकिन readline(जो प्रॉम्प्ट पर इनपुट के लिए उपयोग करता है)। आपका बैश की emacs-बाइंडिंग का उपयोग कर रहा है ; आप अगर अपने एक संपादक युद्धों vi कुंजी-बाइंडिंग पक्षपातपूर्ण को बदल सकते हैं;) sanctum.geek.nz/arabesque/vi-mode-in-bash वहाँ के लिए "धोखा-शीट" की एक जोड़ी है readlineयहां: readline.kablamo.org/emacs .html और readline.kablamo.org/vi.html
जॉन एन

13
ऐतिहासिक रूप से, Emacs शैली कमांड लाइन संपादन सुविधाओं शुरू में बैश में विकसित किए गए, और फिर एक अलग पुस्तकालय में बदल गया - लेकिन यह है कि 1989 में पहले ही प्रवेश में पहली रिलीज होने से पहले हुआ इस पर संकेत। तो मूल रूप से शॉर्टकट को बैश में ही संभाला गया था, भले ही संक्षिप्त रूप में निकाला गया हो - लेकिन शॉर्टकट को Emacs से बैश में आया (मुझे नहीं पता कि यह Emacs में आविष्कार किया गया था या कहीं और से आया था)। readline ChangeLogreadline
स्टीफन किट

जवाबों:


27

यह GNU Emacs से विरासत में मिला है (रीडलाइन द्वारा), जो उपयोग करता है control- Tट्रांसपोज़िंग वर्णों के लिए:

https://www.gnu.org/software/emacs/manual/html_node/emacs/Transpose.html

ध्यान दें कि बैश की लाइन एडिटर Emacs मोड में डिफॉल्ट करती है, लेकिन आप चाहें तो इसे vi मोड में भी स्विच कर सकते हैं।


63

टाइपो को जल्दी ठीक करने के लिए यह बहुत उपयोगी है:

sl

हो जाता है

ls

एक के साथ CtrlT

आप AltTशब्दों को स्वैप करने के लिए भी उपयोग कर सकते हैं ( जैसे कि जब serviceऔर systemctl... के बीच स्विच करना )।

ऐतिहासिक रूप से, इस CtrlTफीचर ने सभी संभावना में एमएसीएस से बैश में आ गया। संभवतः इसे किसी अन्य संपादक से Emacs में कॉपी किया गया था; यह 1980 तक स्टैनफोर्ड के ई संपादक ( एसेंशियल ई पेज 13 देखें) में मौजूद था, और रिचर्ड स्टालमैन (जैसा फ्री में फ्रीडम में वर्णित है ) पर ई का जोरदार प्रभाव था । इसे बैश के बहुत शुरुआती संस्करणों में लागू किया गया था, 1989 में इसकी पहली रिलीज से पहले, जब इसे readlineलाइब्रेरी में निकाला गया था, जहां यह आज रहता है ( readline ChangeLogइस पर संकेत में पहली प्रविष्टि )।


2
गमागमन शब्द कुछ नया और बहुत मददगार था
मोंगरेल

Alt + T को एक संख्यात्मक तर्क प्रदान करना, उस शब्द से पहले n -th शब्द के साथ कर्सर को (या उससे पहले) शब्द स्थानांतरित करता है। उदाहरण के लिए: Alt + 2 Alt + T संशोधित word1 word2 word3किया जाएगा word3 word2 word1यदि पर प्रदर्शन किया है word3
CRW

@crw अच्छा होगा लेकिन alt + T मेरे टर्मिनल पर शब्दों को स्वैप नहीं करता है। मैं सिर्फ मेनू आइटम 'सेट शीर्षक' खोलता हूं।
फिलिप किर्कब्राइड

@PhilipKirkbride यह शर्म की बात है, आपका टर्मिनल एमुलेटर आपको एक बहुत ही उपयोगी शॉर्टकट से वंचित कर रहा है ...
स्टीफन किट

@PhilipKirkbride में मेनू एक्सेस कीज़ को डिसेबल करने के लिए टर्मिनल एमुलेटर का विकल्प होना चाहिए
Joril

15

यह कुंजी संयोजन, जो emacsसंपादक से विरासत में मिला है , के कारण पंक्ति के अंत में टाइप किए जाने वाले अंतिम 2 वर्णों को पंक्ति के मध्य में उपयोग किया जाता है, यह वर्ण को कर्सर के बाईं ओर और एक के नीचे स्वैप करता है कर्सर रखें।

यह शायद ही कभी इस्तेमाल की जाने वाली विशेषता के लिए बाध्यकारी हो, जो कुछ अधिक महत्वपूर्ण स्ट्रोक के साथ आसानी से हासिल की जा सकती है। पुराने समय जैसे कि मैं इसे काफी बार उपयोग करता हूं और यह कुछ प्रसारण समय को 300 बॉड मोडेम के दिनों में, 70 के दशक के उत्तरार्ध में, विशेष रूप से लंबी लाइनों के बीच में सहेजता था।

एक समान और अधिक उपयोगी कमांड, Alt+ से बंधा Tहुआ, बाईं ओर और कर्सर के दाईं ओर शब्दों को स्थानांतरित करता है।

Tचुना गया था क्योंकि यह संक्रमण का प्रारंभिक पत्र है । समान मूल वाले अन्य बाइंडिंग में शामिल हैं:

  • Ctrl+ B, पिछड़े के लिए , कर्सर को एक स्थिति में छोड़ देता है,
    • Alt+ Bकर्सर को एक शब्द छोड़ देता है,
  • Ctrl+ F, आगे के लिए , कर्सर को एक स्थिति में ले जाता है,
    • Alt+ Fकर्सर को एक शब्द पर ले जाता है,
  • Ctrl+ A, Anfang या ante के लिए , कर्सर को लाइन की शुरुआत में ले जाता है,
  • Ctrl+ E, अंत के लिए , कर्सर को लाइन के अंत तक ले जाता है,
  • Ctrl+ N, के लिए अगले ,, अगली पंक्ति को पुन: प्राप्त
  • Ctrl+ P, पिछली के लिए , अगली पंक्ति को पुनः प्राप्त करता है,
  • Ctrl+ D, के लिए हटाने , कर्सर के तहत चरित्र को हटा देता है,
    • Alt+ Dकर्सर के तहत शब्द को हटाता है,
  • Ctrl+ K, मारने के लिए , लाइन के अंत में कटौती,
  • Ctrl+ Y, के लिए झटका , क्लिपबोर्ड की सामग्री चिपकाता है,

जीएनयू रीडलाइन पैकेज में लागू किए गए ये बाइंडिंग, इसलिए सभी कार्यक्रमों में उपलब्ध हैं जो इसका उपयोग उपयोगकर्ता इनपुट के लिए करते हैं, जैसे बैश , लेकिन जीडीबी , बीसी , ...

कुछ अन्य परिवेशों में भी उपलब्ध हैं: फ़ायरफ़ॉक्स यूआरएल इनपुट लाइन, ओएस / एक्स ग्राफिकल इंटरफ़ेस में पाठ इनपुट फ़ील्ड और कई एक्स-आधारित विंडो प्रबंधक।

vim उपयोगकर्ता एक पर्यावरण चर के माध्यम से संबंधित बाइंडिंग का चयन कर सकते हैं।


हां, यह हमारे जैसे उन लोगों के लिए बहुत अच्छा है जो कभी-कभी भूल जाते हैं कि हम Emacs के बजाय टर्मिनल में टाइप कर रहे हैं; फ़ायरफ़ॉक्स के टेक्स्टारिया विजेट्स (जैसे यह अब) का उपयोग करते समय मैं अभी भी पकड़ा जाता हूं, जो इन महत्वपूर्ण बाइंडिंग को याद कर रहे हैं। :-(
टोबी स्पाइट

क्या कोई ऐसा तरीका है जिससे आप अपने विवरण में संबंधित कमांड के चरित्र और शब्द संस्करणों को जोड़ सकते हैं? जब आप समझते हैं कि यह वास्तव में स्मृति में मदद करता है Altऔर Ctrlउन कीस्ट्रोक्स के संस्करणों के लिए एक सुसंगत तरीके से जुड़े हुए हैं।
टोबी स्पाइट

@TobySpeight GTK + एक वैकल्पिक Emacs- शैली की कीबाइंडिंग थीम का समर्थन करता है ताकि आप फ़ायरफ़ॉक्स में इनमें से कुछ कीबाइंडिंग का उपयोग कर सकें। C-tहालांकि कुछ भी नहीं करने के लिए लगता है। wiki.archlinux.org/index.php/GTK%2B#Emacs_keybindings
कैंडी गमड्रॉप

@TobySpeight क्या आपने कभी यह सब पाठ की कोशिश की है ! ? यह आपको अपनी पसंद के संपादक में पाठ्यसामग्री की सामग्री को संपादित करने की अनुमति देता है।
स्टीफन किट

धन्यवाद @ स्टेफ़ेन - मैंने इसके बारे में सुना है, लेकिन इसकी कोशिश नहीं की है (अभी तक)। मैं इसका पालन करूंगा ...
टोबी स्पाइट

10

यह प्रक्षालित स्माइली टायफोस वीहर यूओ हेव के आकस्मिक रूप से लेट्रेस के ट्राईनस्पोज्ड पियारस के लिए उपयोगी है।

(दोनों कलाई में गंभीर आरएसआई होने पर, मैं इसे व्यक्तिगत रूप से उपयोग कर रहा हूं ...)


2
मेरी आँखों से खून बह रहा है
बेसिक

4

एक बहुत जल्दी टाइपो को ठीक करता है। दरबार से पहले तत्काल 2 सुधारक ब्लॉक को प्रभावित करता है।

यदि आपने टाइप किया है ls-और आप ls& हाइफ़न के बीच का स्थान चाहते हैं तो आप Ctrl+ का उपयोग कर सकते हैंT

यह काम करता है यदि आपके पास हाइफ़न के बाद एक जगह है और फिर Ctrl+ करेंT

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