क्या मैक टर्मिनल में कमांड लाइन कमांड के पहले भाग में कूदने का एक तरीका है?


9

मैं अक्सर अपने आप को बैश शेल में लंबी कमांड लिखते हुए पाऊंगा - कई तर्कों, वेब एड्रेस, मार्गों, आदि के साथ चीजें। इतनी बार मुझे एहसास होगा कि मैं कमांड की शुरुआत में अपना "बंडल एग्ज़ॅम" डालना भूल गया, या कुछ गलत कहने या उद्धरण भूल गया। या "विम" के बजाय "सीडी" डालने के रूप में कुछ।

इस प्रकार बाएं तीर कुंजी रखने की थकाऊ प्रक्रिया शुरू होती है जब तक कि मैं कमांड की शुरुआत में वापस नहीं आता।

क्या फिर से लाइन की शुरुआत में कूदने का कोई तरीका है?


2
आप डिफॉल्ट टर्मिनल ऐप से छुटकारा पा सकते हैं, और
क्लेमेंट हेरेमैन

क्यों? मैंने अभी-अभी जाँच की है, और यह बहुत ही समान व्यवहार करता है। (घर की चाबी काम करती है, अब, लेकिन जब से मेरे पास अन्य कुंजी है जो वास्तव में मायने नहीं रखती है)। यह क्या पेशकश करता है जो इसे मेरी सभी सेटिंग्स और कॉन्फ़िगरेशन और कार्यों और व्हाट्सएप को फिर से लोड करने के लायक बना देगा?
ग्लिफ़ग्राफ

यह कुछ ऐसा लगता है जैसे आप .inputrc
Rob

इसके अलावा, एक समय में एक शब्द को कूदने के लिए, क्रमशः forthB और toF का उपयोग करके आगे और पीछे कूदें।
फिडेली

@fideli, लेकिन केवल तभी जब आपने "मेटा विकल्प के रूप में उपयोग विकल्प" सक्षम किया हो। ध्यान दें कि Mac OS X Lion 10.7 के रूप में, टर्मिनल के डिफॉल्ट कीबोर्ड सेटिंग्स मैप ऑप्शन-लेफ्ट एरो / राइट एरो से Esc-b / f इसलिए कोई कॉन्फ़िगरेशन की जरूरत नहीं है।
क्रिस पेज

जवाबों:


12

^ ए और ^ ई के अलावा, आप कर सकते हैं

  • Esc- bवापस एक शब्द कूदने के लिए
  • Esc- fएक शब्द को आगे बढ़ाने के लिए
  • Ctrl- bएक चरित्र को वापस ले जाने के लिए
  • Ctrl- fएक चरित्र को आगे बढ़ाने के लिए

आगे बढ़ने के लिए कमांड के लिए बैश मैनुअल देखें ।


ध्यान देने वाली बात - यह Emacs से है, और emacsअपने गोले के विकल्प को जोड़कर आप कुछ और प्राप्त कर सकते हैं।
TC1

6

आप Emacs कमांड का उपयोग कर सकते हैं, जैसे:

  • ctrl-आदेश लाइन की शुरुआत में जाने के लिए
  • ctrl-आदेश लाइन के अंत में जाने के लिए

यह बैश है, मैक के लिए विशिष्ट नहीं है।


3
set -o vi

फिर उसके Escबाद

^$लाइन के bएक छोर की शुरुआत एक शब्द पीछे wएक शब्द के आगे


मैं विम का बहुत बड़ा प्रशंसक हूं, इसलिए आपके उत्तर का सिद्धांत मेरे द्वारा बहुत अच्छा है, लेकिन मोडल कमांड लाइन का संपादन ओपी के लिए थोड़ा भ्रामक हो सकता है, विशेष रूप से बिना किसी उल्लेख के कैसे वापस टाइप करने में सक्षम हो सकता है! iकर्सर के aबाद टाइप करने के लिए कर्सर (एपेंड) से पहले टाइप (इन्सर्ट) करने के लिए इन्सर्ट मोड पर लौटें ।
कैस्केबेल

मैं दशकों से अपने प्राथमिक पाठ संपादक के रूप में vi का उपयोग कर रहा हूं, लेकिन मैं अभी भी अपने शेल के लिए emacs कुंजी बाइंडिंग पसंद करता हूं।
कीथ थॉम्पसन

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

@ कीथ थॉम्पसन: मैं भी यही सोचता था। मुझे लगा कि शेल इस मोड स्विचिंग सामान (जैसे vवि मोड में परेशान कुंजी) के साथ अच्छी तरह से मिश्रण नहीं करता है । लेकिन थोड़ी देर के बाद मुझे सिर्फ संक्रमण हुआ, इसलिए मेरा सुझाव है कि आप इसे आजमाएं: P
kizzx2

1

यह आपके प्रश्न का उत्तर नहीं देता है लेकिन यह आपकी समस्या को कुछ मामलों में हल कर सकता है।

में टोकन अपने पिछले आदेश के साथ दिया जाता है। इसलिए यदि आप कमांड (जैसे ) की शुरुआत में कुछ जोड़ना भूल जाते हैं , तो आप ऐसा कुछ कर सकते हैंbash!!sudo

# ./super_secret_command --with-args
=> ACCESS DENIED

# sudo !!
sudo ./super_secret_command --with-args
=> ACCESS GRANTED

0

आप Ctrl/Opt+Left/Rightटर्मिनल में उपयोग के लिए नियमित शॉर्टकट कॉन्फ़िगर कर सकते हैं । इस तरह, जब आप टर्मिनल का उपयोग कर रहे होते हैं, तो आपको सब कुछ त्यागना नहीं पड़ता है।

टर्मिनल खोलें »प्राथमिकताएं» »सेटिंग्स» (एक प्रोफ़ाइल का चयन करें) »कीबोर्ड

वहां, निम्नलिखित शॉर्टकट असाइन करें:

  • Control + Cursor Left: शेल को स्ट्रिंग भेजें\033[1~
  • Control + Cursor Right: शेल को स्ट्रिंग भेजें\033[4~
  • Option + Cursor Left: शेल को स्ट्रिंग भेजें\033[5D
  • Option + Cursor Right: शेल को स्ट्रिंग भेजें\033[5C

मुझे भी निम्नलिखित पसंद है ( Fn + Left/Right):

  • Home: शेल को स्ट्रिंग भेजें\033[1~
  • End: शेल को स्ट्रिंग भेजें\033[4~

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


शेर पर ⌥ ← और ⌥ → करने के लिए बाध्य कर रहे हैं M-bऔर M-fडिफ़ॉल्ट रूप से। और And cuts और ⌃ → रिक्त स्थान बदलने के लिए डिफ़ॉल्ट शॉर्टकट हैं।
Lri

0

मुझे साइगविन में इसकी आवश्यकता थी, मैक की नहीं, लेकिन निम्नलिखित को जोड़ने से ~/.inputrcभी मदद मिल सकती है:

"\e[1;5C": forward-word   # ctrl + right
"\e[1;5D": backward-word  # ctrl + left 

0

मैं एक मैक उपयोगकर्ता नहीं हूँ, लेकिन Homeकुंजी के बारे में क्या ? यह लिनक्स टर्मिनल पर ठीक काम करता है।


1
नहीं, वह टर्मिनल विंडो के शीर्ष पर स्क्रॉल करता है।
ग्लिफ़ग्रिफ़

डिफ़ॉल्ट रूप से, होम एंड एंड दृश्य को स्क्रॉल करते हैं, जो मानक मैक व्यवहार है। डिफ़ॉल्ट रूप से Shift-Home और Shift-End क्रमशः "ESC [H" और "ESC [F" भेजें। ये सभी टर्मिनल> वरीयताएँ> सेटिंग्स> [प्रोफ़ाइल]> कीबोर्ड में अनुकूलन योग्य हैं ।
क्रिस पेज

0

Mac Os X में कमांड लाइन के चारों ओर घूमने का सबसे अच्छा तरीका मेरी प्रोफ़ाइल का उपयोग करना है: https://github.com/lingtalfi/mac-terminal-shortcuts

यह निम्नलिखित (सहज) शॉर्टकट प्रदान करता है:

ALT-left: move one word backward
ALT-right: move one word forward
CTRL-left: move to the beginning of the line
CTRL-right: move to the end of the line
ALT-backspace: kill one word backward
ALT-del: kill one word forward
ALT-up: set word after cursor to uppercase
ALT-down: set word after cursor to lowercase
home: move to the beginning of the line
end: move to the end of the line    
CTRL-backspace: Same as ALT-backspace
CTRL-del: Same as ALT-del
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.