मैं टर्मिनल के लिए होम / एंड कॉम्बो के लिए do ← और I → कैसे काम करता हूं?


21

क्यों fn- - (या अन्य) टर्मिनल में एक घर / अंत करते हैं लेकिन एक - हर जगह काम करता है?

तो बस यह स्पष्ट होना चाहिए कि टर्मिनल टेक Command+ और होम एंड एंड कैसे बनाया जाए?

जवाबों:


21

जितना सुविधाजनक होगा, टर्मिनल आसानी से आपके द्वारा मांगी गई कार्यक्षमता प्रदान नहीं कर सकता है।

कारण यह है कि टर्मिनल के अंदर चलने वाले प्रोग्रामों में कर्सर को लाइन के आरंभ / अंत तक ले जाने के अलग-अलग नियम होते हैं, उदाहरण के लिए:

  • bash(और अन्य गोले) का उपयोग करें CtrlAऔरCtrlE
  • viउपयोग 0और $/Shift4

अन्य प्रोग्राम अन्य कुंजियों का उपयोग कर सकते हैं। लाइन की शुरुआत / अंत में कर्सर की स्थिति के लिए एक सार्वभौमिक कुंजी संयोजन नहीं है।

बेशक, टर्मिनल कई आम कार्यक्रमों के लिए प्रमुख संयोजनों की एक सूची बनाए रख सकता है, जांचें कि क्या चल रहा है और आपके लिए सही कुंजी भेजें, या यह एक मेनू आइटम प्रदान कर सकता है जैसे Move Cursor to Beginning of Line Inside Shell ⌘ maintain और फिर भेजें CtrlAपरदे के पीछे। लेकिन मुझे लगता है कि Apple इंजीनियरों ने सोचा था कि यदि आप सीएलआई क्षेत्र में उद्यम करते हैं तो आपको इसकी पहचान के बारे में पता है।

साइड नोट के रूप में, टर्मिनल प्रदान करता है Optionऔर Optionजो व्यवहार करता है bashजैसा कि आप उम्मीद करते हैं और कर्सर को पिछले / अगले शब्द की शुरुआत में ले जाता है। क्योंकि इन कुंजी संयोजन का उल्लेख किया जाता है कि के Escbऔर Escb(देखें man bash, अनुभाग में अधिक जानकारी के लिए "से ले जाने के लिए आदेश")। में vi, उदाहरण के लिए, केवल बाद (एक तरह से) काम करता है (इस जवाब के अंत में मैं दिखाता हूँ कैसे कॉन्फ़िगर करने के लिए viसाथ काम करने के लिए Optionऔर Option)।

लेकिन स्वचालक, AppleScript और बैश अन्य नामों पर धन्यवाद आप प्राप्त कर सकते हैं और साथ काम करने के लिए bash(और संभवतः अन्य गोले) और vi

पहला कदम मैप करने के लिए है और करने के लिए CtrlAऔर CtrlE। दूसरे चरण में, मैं आपको दिखाता हूं कि viसम्मान के लिए कॉन्फ़िगर कैसे करें CtrlAऔर CtrlE(जो, परिणामस्वरूप, viके साथ संगत बना देगा और )।

मैप और , CtrlAऔरCtrlE

  1. टर्मिनल में, प्राथमिकताएँ पर जाएँ ...> सेटिंग्स> [आपकी सक्रिय प्रोफ़ाइल]> कीबोर्ड: यहां छवि विवरण दर्ज करें

  2. प्रेस करें +, "कर्सर लेफ्ट", "कंट्रोल-शिफ्ट" को संशोधक और क्रिया "टेक्स्ट भेजें:" चुनें। फिर दबाएं CtrlA( \001पाठ क्षेत्र में दिखाई देगा) और इसके साथ पुष्टि करें OK: यहां छवि विवरण दर्ज करें

    (इस उत्तर के पिछले संस्करण में मैंने एक संशोधक के रूप में "शिफ्ट" का उपयोग किया था। मैंने देखा है कि यह सेटिंग के साथ टकराव होता है shift, जो पिछले टर्मिनल टैब को दिखाता है, अगर आप तुरंत जाने नहीं देते हैं "कंट्रोल-शिफ्ट" का उपयोग करते हुए। ठीक करता है।)

  3. अब "कर्सर दाएं" के लिए एक महत्वपूर्ण संयोजन जोड़ें, लेकिन प्रेस CtrlE( \005पाठ क्षेत्र में दिखाई देगा)। के साथ पुष्टि करें OK

  4. ओपन ऑटोमेटर (उदाहरण के लिए, spaceस्पॉटलाइट लाने के लिए हिट और ऑटोमेटर टाइप करें), फ़ाइल> नया चुनें और चुनें Service:

    यहां छवि विवरण दर्ज करें

  5. Run AppleScriptदाएँ फलक पर खींचें : यहां छवि विवरण दर्ज करें

  6. निम्न स्क्रिप्ट टाइप करें:

    on run {input, parameters}
        tell application "System Events"
            tell application process "Terminal"
                key code 123 using {shift down, control down}
            end tell
        end tell
    end run

    और इस रूप में सहेजें Move Cursor to Beginning of Line:

    यहां छवि विवरण दर्ज करें

  7. इस स्क्रिप्ट के साथ चरण 4 से 6. दोहराएं:

    on run {input, parameters}
        tell application "System Events"
            tell application process "Terminal"
                key code 124 using {shift down, control down}
            end tell
        end tell
    end run

    और इस रूप में सहेजें Move Cursor to End of Line:

    यहां छवि विवरण दर्ज करें

  8. यह वही है जो टर्मिनल> सेवाएं अब जैसा दिखता है:

    यहां छवि विवरण दर्ज करें

viसम्मान CtrlAऔर करने के लिए कॉन्फ़िगर करेंCtrlE

  1. .bashrcअपने पसंदीदा संपादक के साथ खोलें और इस पंक्ति को जोड़ें:

    alias vi='vim -c "map <C-A> 0" -c "map <C-E> $" -c "map <Esc>b B" -c "map <Esc>f E"'

    पहले दो mapकमांड vimव्याख्या ControlEऔर के ControlAरूप में बताते हैं $और 0, जो कर्सर को क्रमशः लाइन के आरंभ या अंत में ले जाते हैं।

    अंतिम दो mapकमांड vimएक बार में कर्सर को एक शब्द में स्थानांतरित करने के लिए कहते हैं, जैसा कि आप दबाए जाने पर optionऔर उम्मीद करते हैं Option

चेतावनियां

आप देखेंगे कि आपके द्वारा दबाए जाने वाले क्षण या कर्सर के वास्तव में हिलने के बीच एक छोटी देरी है।

यह ध्यान रखें कि यह केवल उन कार्यक्रमों के लिए काम करेगा जो सम्मान CtrlA/ करते हैं CtrlE, इसलिए आप अभी भी टर्मिनल में उपयोग किए जाने वाले प्रत्येक प्रोग्राम के विशिष्ट कुंजी संयोजनों को सीखना चाह सकते हैं।

(MacOS Sierra 10.12.4 पर परीक्षण किया गया)


3
विस्तृत जवाब के लिए धन्यवाद, क्या सिर्फ एक याचिका है जिसमें Apple ने अगले रीडिजाइन :-) पर एक होम / एंड बटन शामिल किया है
जैकी

मैं खुश हूं कि मैं मदद कर सका।
Jaume

वाह .. यह सब एक शानदार शॉर्टकट पाने के लिए
levesque

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

1
यह एक महान चाल है। मैं "होम" और "एंड" के लिए कीकोड भेजकर AppleScript चलाने में भी कामयाब रहा: "कुंजी कोड 115" और "कुंजी कोड 119" "
Keymon

2

अवश्य ही यह संभव है।

सबसे पहले, आप मुफ्त टूल "DoubleCommand" का उपयोग कर सकते हैं यदि आपके पास घर का बना कीबोर्ड है जिसमें होम / END कीज़ के साथ मेक मी की तरह व्यवहार किया जाता है, जैसे उन्हें (शुरुआत / पंक्ति के अंत में) करना चाहिए।

दूसरे, टर्मिनल के लिए विशेष रूप से, वरीयताओं पर जाएं, कीबोर्ड, आइकन / कुंजी को संपादित करें जो एक तीर की तरह दिखता है जो बाईं ओर इंगित करता है, "पाठ भेजें" चुनें और टाइप करें ctrl + a। किया हुआ!

अंत बटन के लिए भी ..

यदि आपके पास पीसी कीबोर्ड नहीं है, तो आप अन्य प्रमुख संयोजनों के साथ भी ऐसा कर सकते हैं।

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