iTerm 2: लाइन की शुरुआत / समाप्ति पर जाने के लिए कीबोर्ड शॉर्टकट कैसे सेट करें?


394

मैं देख सकता हूं कि लाइन के आरंभ / अंत में वह Ctrl+ left/ rightकूदता है। इसे Cmd+ left/ में कैसे बदलें right arrow?

आदेश प्राप्त करने के लिए Alt+ left/ right arrowशब्द कूद के लिए सही ढंग से काम का पालन करें इस लेख


मैंने इसे यहाँ वर्णित किया है: github.com/nikoloza/articles/blob/master/devtools/…
nikoloza

1
अगर आप चाहते हैं कि वे शॉर्टकट VIM में भी काम करें, तो इस उत्तर को देखें: stackoverflow.com/a/9611698/991068
Razvan Grigore

जवाबों:


735

ITerm2 में निम्न प्रोफ़ाइल शॉर्टकट कुंजियाँ जोड़ें

FOR  ACTION         SEND
⌘←  "SEND HEX CODE"      0x01 
⌘→  "SEND HEX CODE"      0x05
⌥←  "SEND ESC SEQ"  b
⌥→  "SEND ESC SEQ"  f

यहां उन लोगों के लिए एक दृश्य है जिन्हें इसकी आवश्यकता है

iTerm कुंजी दृश्य जोड़ें


3
क्या आप जानते हैं कि Command + Delete के लिए कोड / अनुक्रम क्या है? (शीघ्र पता लगाएँ)
स्टीवन लू

10
मैंने अपनी पहली टिप्पणी का जवाब कहीं और दिया, मूल रूप से हेक्स-कोड 0x15 Ctrl + U देता है जो लाइन को साफ करता है। हालाँकि मुझे Txux उपयोग में हस्तक्षेप करने के लिए 0x01 Ctrl + A मिल रहा है। इसलिए मैं इसे होम कुंजी के बजाय मैप करने का इरादा रखता हूं (मैक कीबोर्ड पर Fn + Left की समान कार्यक्षमता)।
स्टीवन लू

7
घर के लिए भागने का क्रम है [1 ~ और अंत के लिए भागने का क्रम है [४ ~
स्टीवन लू

3
एक आकर्षण की तरह काम करता है, कमाल!
जूटो

25
सही बाइंडिंग ⌘← "SEND ESC SEQ" OHहोम और ⌘→ "SEND ESC SEQ" OFएंड के लिए है (जो अपरकेस के शून्य नहीं हैं)। यह वास्तव में होम एंड एंड कीज़ को दबाने का अनुकरण करता है, और जैसे कि बैश, विम, आदि में काम करेगा
टिमोथी ज़ोर्न

432

ITerm2 में शब्दों के बीच कूदने और लाइनों के शुरू / अंत करने के लिए नीचे दिए गए दो समाधानों में से एक चुनें ।

1. सरल समाधान (अनुशंसित)

  1. प्राथमिकताएँ खोलें
  2. "प्रोफ़ाइल" टैब पर क्लिक करें
  3. बाईं ओर सूची में एक प्रोफ़ाइल चुनें (उदाहरण के लिए "डिफ़ॉल्ट") और "कुंजी" टैब पर क्लिक करें
  4. "प्रीसेट्स" डाउंडाउन पर क्लिक करें और "नेचुरल टेक्स्ट एडिटिंग" चुनें

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


2. मैन्युअल रूप से मानचित्रण कुंजी (उन्नत)

यदि आप ऊपर वर्णित "प्राकृतिक पाठ संपादन" प्रीसेट का उपयोग नहीं करना चाहते हैं, तो आप उन कुंजियों को मैप कर सकते हैं जिनकी आपको मैन्युअल रूप से आवश्यकता है:

  1. प्राथमिकताएँ खोलें
  2. "कुंजी" टैब पर क्लिक करें
  3. [+]आइकन पर क्लिक करें

अब आप निम्नलिखित कीबोर्ड शॉर्टकट जोड़ सकते हैं:

कर्सर को एक शब्द छोड़ दें

  • कीबोर्ड शॉर्टकट: +
  • क्रिया: हेक्स कोड भेजें
  • कोड: 0x1b 0x62

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

कर्सर को एक शब्द सही करें

  • कीबोर्ड संयोजन: +
  • क्रिया: हेक्स कोड भेजें
  • कोड: 0x1b 0x66

कर्सर को लाइन की शुरुआत में ले जाएं

  • कीबोर्ड संयोजन: +
  • क्रिया: हेक्स कोड भेजें
  • कोड: 0x01

लाइन के अंत में कर्सर ले जाएँ

  • कीबोर्ड संयोजन: +
  • क्रिया: हेक्स कोड भेजें
  • कोड: 0x05

शब्द हटाओ

  • कीबोर्ड संयोजन: +←Delete
  • क्रिया: हेक्स कोड भेजें
  • कोड: 0x1b 0x08

डिलीट लाइन

  • कीबोर्ड संयोजन: +←Delete
  • क्रिया: हेक्स कोड भेजें
  • कोड: 0x15

पूर्ववत करें

  • कीबोर्ड संयोजन: +z
  • क्रिया: हेक्स कोड भेजें
  • कोड: 0x1f

पिछली बाइंडिंग निकालना न भूलें :

  • "प्रोफाइल" टैब खोलें
  • उप-टैब "कुंजी" पर क्लिक करें
  • कुंजी संयोजन के लिए मैपिंग निकालें + और +

2
इसने iTerm2 में मेरे लिए अच्छा काम किया और बहुत आसान था, धन्यवाद!
नाट्रेट्रोन

3
बस यह स्पष्ट करना कि ind the के लिए मूल बाइंडिंग क्या हैं? मैं इसे देखता हूं Says send Hex Codes: 0x1b 0x1b 0x5b 0x44। यह जानना अच्छा होगा कि लोग इसे हटाना नहीं चाहते।
अगस्त

5
लाइन की शुरुआत और अंत के लिए कूद मेरे लिए zsh का उपयोग करके काम नहीं किया। "हेक्स कोड" "0x01" / "0x05" का उपयोग करते हुए, जैसा कि शीर्ष उत्तर द्वारा सुझाया गया है, मेरे लिए काम किया।
फ्लिप

2
लाइन के आरंभ और अंत में कूदना मेरे लिए भी कारगर नहीं था। शीर्ष उत्तर ने काम किया।
हिसाबिंबोला

3
क्या iTerm के पास पूर्व निर्धारित करने के लिए हमें बंडल करने का एक तरीका है? मैन्युअल रूप से टाइप करने के लिए कष्टप्रद लगता है लेकिन यह मेरे लिए काम करता है और भयानक था। धन्यवाद एक lto!
अगस्त

259

मैं देख रहा हूं कि पहले से ही बहुत सारे अच्छे उत्तर हैं, लेकिन यह केवल आपके शेल से अधिक में संभव के रूप में देशी OSX कार्यक्षमता के निकटतम प्रदान करना चाहिए। मैंने सत्यापित किया कि यह ZSH, बैश, नोड, पायथन-आई, आईईएक्स और आईआरबी / प्राइ सत्र (रीडलाइन के लिए आरबी-रीडलाइन रत्न का उपयोग करके, लेकिन सभी के लिए काम करना चाहिए) में काम करता है।

ITerm प्राथमिकताएं खोलें + ,और Profilesटैब पर जाएं ( Keysटैब का उपयोग किया जा सकता है, लेकिन आपकी प्रोफ़ाइल में कीबाइंडिंग जोड़ने से आप अपनी प्रोफ़ाइल को सहेज सकते हैं और इसे कई कंप्यूटरों में सिंक कर सकते हैं) और keysउप-टैब और निम्नलिखित दर्ज कर सकते हैं:

कर्सर के बचे सभी वर्णों को हटा दें

+ ←Deleteहेक्स कोड भेजें:

0x15अधिक संगत, लेकिन कार्यक्षमता कभी-कभी केवल वर्ण के बाईं ओर के बजाय पूरी पंक्ति को हटाने के लिए है। मैं व्यक्तिगत रूप से इसका उपयोग करता हूं और फिर ^Uकर्सर के बाईं ओर केवल सामान को हटाने के लिए अपने zsh बिंडकी को अधिलेखित करता हूं (नीचे देखें)।

या

0x18 0x7fकम संगत, नोड में काम नहीं करता है और डिफ़ॉल्ट रूप से zsh में काम नहीं करेगा, ठीक करने के लिए नीचे देखें zsh (bash / irb / pry ठीक होना चाहिए), वांछित कार्यक्षमता करता है जब यह काम करता है।

कर्सर के सभी वर्णों को हटाएं

+ fn+ ←Deleteया + Delete→हेक्स कोड भेजें:0x0b

कर्सर के बाईं ओर एक शब्द हटाएं

+ ←Deleteहेक्स कोड भेजें:

0x1b 0x08 एलिक्जिर के आईईएक्स में ब्रेक, हर जगह ठीक काम करता है

या

0x17 हर जगह काम करता है, लेकिन आईआरबी में सामान्य शब्द ब्रेक पर नहीं रुकता है और जब तक यह शाब्दिक स्थान नहीं देखता है, तब तक इसे हटा देगा।

कर्सर के दाईं ओर एक शब्द हटाएं

+ fn←Deleteया + Delete→हेक्स कोड भेजें:0x1b 0x64

कर्सर को लाइन के सामने ले जाएं

+ हेक्स कोड भेजें:0x01

कर्सर को लाइन के अंत में ले जाएं

+ हेक्स कोड भेजें:0x05

कर्सर को एक शब्द छोड़ दें

+ हेक्स कोड भेजें:0x1b 0x62

कर्सर को एक शब्द सही करें

+ हेक्स कोड भेजें:0x1b 0x66

पूर्ववत करें

+ zहेक्स कोड भेजें:0x1f

Redo आमतौर पर bash, zsh या readline में बाध्य नहीं होता है, इसलिए हम इसे अप्रयुक्त हेक्सकोड में सेट कर सकते हैं जिसे हम फिर से zsh में ठीक कर सकते हैं

+ + Zया + yहेक्स कोड भेजें:0x18 0x1f

अब किसी भी काम को कैसे ठीक किया जाए

Zsh के लिए, आप बाइंडिंग को अभी तक कार्यात्मक नहीं + ←Deleteऔर + + Z/ + के लिए बाइंडिंग सेटअप कर सकते हैं y:

# changes hex 0x15 to delete everything to the left of the cursor,
# rather than the whole line
$ echo 'bindkey "^U" backward-kill-line' >> ~/.zshrc

# binds hex 0x18 0x7f with deleting everything to the left of the cursor
$ echo 'bindkey "^X\\x7f" backward-kill-line' >> ~/.zshrc

# adds redo
$ echo 'bindkey "^X^_" redo' >> ~/.zshrc

# reload your .zshrc for changes to take effect
$ source ~/.zshrc

मैं बैश या रीडलाइन में रीडो जोड़ने के लिए एक समाधान खोजने में असमर्थ हूं, इसलिए यदि किसी को उन दोनों में से कोई एक समाधान पता है, तो कृपया नीचे टिप्पणी करें और मैं उन्हें जोड़ने का प्रयास करूंगा।

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


2
यह वास्तव में उपयोगी है, बहुत फर्क पड़ता है! मैं इसे इंगित करना चाहूंगा कि कुछ लोग $सामने वाले के साथ भ्रमित हो सकते हैं echo(बस इसे हटा दें?)। इसके अलावा, यह एकदम सही है। धन्यवाद।
एडमंडो

1
@ क्रिस्तोपे तो ऐसा लग रहा है कि कुंजी बाध्यकारी है जैसे कि यह होना चाहिए। या तो आपने हेक्स मानों को जोड़ने में गलती की या बैकवर्ड-वर्ड के लिए कीबाइंडिंग को ओवरराइट किया जा रहा है। दौड़ें bindkey | grep "\^\[b"और वह आपको बताएंगे कि क्या कुछ और सेट होने के बाद उसे ओवरराइट कर रहा है। इसे ही लौटना चाहिए#=> "^[b" backward-word । यदि यह अधिलेखित किया जा रहा है, तो आपको यह खोजना होगा कि इसका अधिलेखित होना कहाँ है और इसे हटा दें। यदि यह संभव नहीं है, तो आप इसे चला सकते हैं, echo 'bindkey "^[b" backward-word' >> ~/.zshrcयह आपकी अंतिम पंक्ति में जोड़ देगा .zshrc, फिर iTerm को पुनः आरंभ करें और यह काम करना चाहिए
ट्रैविस

2
@Christophe keysiTerm वरीयताओं में टैब की जाँच करें यह देखने के लिए कि क्या यह कुछ के लिए + मैपिंग भी है। यदि ऐसा है तो इसे हटा दें। आप परीक्षण कर सकते हैं कि क्या आपका bकाम जल्दी से सही तरीके से escजारी करके काम कर रहा है , फिर दबाकर b। कि एक शब्द को बाईं ओर कूदना चाहिए। वैकल्पिक रूप से, आप + से हेक्स 0x1b 0x42 या मैप कर सकते हैं 0x1b 0x5b 0x31 0x3b 0x35 0x44। मैंने सत्यापित किया कि वे दोनों मेरे लिए काम करते हैं। मैं वास्तव में लगता है कि तुम है + iTerm में ओवरराइट किया जा रहा है, हालांकि, या तो अपने में profile keysटैब या keysटैब।
ट्रैविस

3
गजब का! बस यहाँ से Undo plus Redo बाइंडिंग के बारे में सीखा।
इब्रोडी

3
मैंने इसे मैन्युअल रूप से किया और मुझे लगा कि ऐसा करने के लिए मैं एक प्रोफ़ाइल क्यों आयात नहीं कर सकता? फिर मैंने इन निर्देशों के आधार पर GabLeRoux / iterm2-macos-dynamic-profile बनाया । यह
त्रुटिपूर्ण रूप से

48

Iterm2 में अपनी प्रमुख वरीयताओं को स्थापित करने के लिए ऊपर दिए गए ट्यूटोरियल का पालन करें ।

  1. एक नया shorcut कुंजी बनाएँ
  2. कार्रवाई के रूप में "भागने के क्रम भेजें" चुनें
  3. फिर, नीचे दिए गए पाठ में, cmd-left सेट करने के लिए :
    • लाइन स्टार्ट OR के[H लिए दर्ज करें
    • लाइन अंत के[F लिए दर्ज करें

1
F ने मेरे iterm2 में केवल एक ही शब्द उछाला
मथायस

1
ITerm => प्राथमिकताएं => कुंजी
pfrank

इसे प्रेम करें! दूसरे उपाय मेरे काम नहीं आए। मैं घंटे बिताता हूं कि मैं इटर्म 2 में ctrl + a और ctrl + e का उपयोग नहीं कर सका। लेकिन मैं इसके लिए मछली छोड़ना नहीं चाहता था। यह पूरी तरह से काम करता है धन्यवाद!
FLY

अन्य समाधान मेरे लिए भी काम नहीं करते थे, लेकिन यह एक ने किया।
ब्रहम स्नाइडर

42

ITerm 3.0.12 में आप Natural Text Editingपूर्व निर्धारित करने के लिए स्विच कर सकते हैं :

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

iTerm → वरीयताएँ → प्रोफ़ाइल → कुंजी

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


2
क्या आप अपने उत्तर को अधिक विस्तृत कर सकते हैं? जैसा कि, उस पूर्व निर्धारित में क्या शामिल है और अधिलेखित हो सकता है?
कार्ल्स अल्कोली

जवाब के लिए धन्यवाद। इसके अलावा इसमें चुमिंग करना संभवत: अपनी खुद की कस्टम प्रोफाइल पर लागू करने का सबसे अच्छा तरीका है कि आप डिफॉल्ट से पंगा नहीं ले रहे हैं और प्रोफाइल को एक प्राकृतिक टेक्स्ट एडिटिंग "मोड" के रूप में टॉगल कर सकते हैं
अगस्त

29

जो भी व्यक्ति iTerm2 में लाइन के अंत में जाना चाहता है या लाइन शुरू करना चाहता है, उसके त्वरित संदर्भ के लिए उपरोक्त लिंक http://hackaddict.blogspot.com/2007/07/skip-to-next-or-prepret-word- iTerm2 में यह iterm.html नोट करता है:

  • Ctrl+ A, लाइन की शुरुआत के लिए कूदता है, जबकि
  • Ctrl+ E, पंक्ति के अंत में कूदता है।

यह उत्तर शीर्ष पर क्यों नहीं है?
गंगाधर JANNU

1
@ गंगाधरजनु: पूरी तरह से सहमत हैं। यह सीधे चींटियों के पास जाता है। शीर्ष पर होना चाहिए।
कैटलिफ्ट्स

10

मैंने ट्रैविस उत्तर का उपयोग किया और मैंने एक गतिशील प्रोफ़ाइल बनाई जिसे आप इसके निर्देशों के आधार पर आयात कर सकते हैं।

GabLeRoux / iterm2-MacOS-गतिशील प्रोफ़ाइल

निर्देश रीडमी में हैं और इसे बहुत तेजी से आयात करना है क्योंकि यह उन सभी को मैन्युअल रूप से जोड़ना है। मैंने इसे @ gooli के अनुरोध के अनुसार उत्तर दिया क्योंकि यह एक टिप्पणी में छिपा हुआ था। आशा है कि आप इस 🍻 का आनंद लेंगे


2
एक साल बाद यहाँ वापस आया और इसको पाकर बहुत खुश!
एलिफिनर

9

बस किसी को भी इस मुद्दे पर मदद करने के लिए, लेकिन विशेष रूप से iTerm 2 के साथ Zsh खोल का उपयोग करने के लिए। यह पता चला है कि Zsh ठीक से नहीं पढ़ता /etc/inputrcहै , और इसलिए आप वरीयताओं के माध्यम से स्थापित किसी भी महत्वपूर्ण बाइंडिंग को समझने में विफल रहते हैं!

इसे ठीक करने के लिए, आपको अपनी .zshrcफ़ाइल में कुछ प्रमुख बाइंडिंग जोड़ने की आवश्यकता है , जैसे:

# key bindings
bindkey "\e[1~" beginning-of-line
bindkey "\e[4~" end-of-line

"ई" से पहले ऊपर दिए गए उदाहरण में बैकस्लैश पर ध्यान दें, लिंक किए गए लेख उन्हें नहीं दिखाते हैं, इसलिए .zshrcबाइंडिंग जोड़ते समय उन्हें अपनी फ़ाइल में जोड़ें ।


4

पुराने फ़ैशन ईमैक बाइंडिंग अभी भी iterm2 और os x टर्मिनल में काम कर सकते हैं:

प्राथमिकताएं -> प्रोफाइल -> कुंजी (प्रोफाइल में उप टैब)

  • सेट Left/Right option <kbd>⌥</kbd> key acts as +Esc(ओएस एक्स टर्मिनल में समान)

यह सक्षम होना चाहिए alt - fऔर alt- bशब्दों द्वारा शब्दों को स्थानांतरित करने के लिए। (फिर भी ctrl- aऔर ctrl- eहमेशा हमेशा की तरह काम करते हैं)

यदि metaउन पुराने बाइंडिंग के रूप में सेट किया जाता है , जबकि कुछ iterm2 बाइंडिंग अनुपलब्ध हैं।


2

जैसा कि यहां बताया गया है , आप इसे सरल चरणों के साथ कर सकते हैं:

डिफ़ॉल्ट रूप से, शब्द जंप (विकल्प + → या umps) और शब्द विलोपन (विकल्प + बैकस्पेस) काम नहीं करते हैं। इन्हें सक्षम करने के लिए, "iTerm → वरीयताएँ → प्रोफ़ाइल → कुंजी → लोड पूर्व निर्धारित करें ... → प्राकृतिक पाठ Ed → → बूम! हेड विस्फोट!"


2

लाइन की शुरुआत और अंत में जाने के लिए काम करने वाली एकमात्र चीजें हैं

⌘← "SEND ESC SEQ" OH- लाइन की शुरुआत करने के लिए
⌘→ "SEND ESC SEQ" OF- लाइन के अंत तक जाने के लिए


1

bind -p आपके शेल में बंधी हुई बची हुई कुंजियों की एक सूची दिखाएगा, जो आपको अधिक विचार / खोज शब्द देने में मदद कर सकती है।


5
bind -pकेवल बॉश गोले (bash, sh) में zsh, csh tcsh, उपयोग के लिए काम करता है bindkey
ट्रैविस


0

मेरे लिए, निम्नलिखित संयोजन ने काम किया:
| Key Action Esc+ End result | |-----------------------------------------------------| | Send Escape Sequence a Send ^[ a | | Send Escape Sequence e Send ^[ e |

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