iTerm 2: Klavye kısayollarını satırın başına / sonuna atlamak için nasıl ayarlanır?


395

Ctrl+ left/ rightÇizginin başına / sonuna atladığını görebiliyorum . Bunu Cmd+ left/ olarak nasıl değiştirebilirim right arrow?

Alabilmek için Alt+ left/ right arrowkelime atlama için düzgün çalışmasını izleyin bu yazıyı .



1
Bu kısayolların VIM'de de çalışmasını istiyorsanız şu yanıta bakın: stackoverflow.com/a/9611698/991068
Razvan Grigore

Yanıtlar:


735

İTerm2'ye aşağıdaki Profil Kısayol Tuşlarını ekleyin

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

İşte ihtiyacı olanlar için bir görsel

iTerm anahtar görsel ekle


3
Command + Delete için kod / dizinin ne olduğunu biliyor musunuz? (istemi temizle)
Steven Lu

10
İlk yorumumu başka bir yerde yanıtladım, temelde hex kodu 0x15, satırı temizleyen Ctrl + U verir. Ancak 0x01 Ctrl + A, Tmux kullanımını engellemek için buluyorum. Bu nedenle onu Ana tuşla eşleştirmeyi planlıyorum (Mac klavyesinde Fn + Sol ile aynı işlevler).
Steven Lu

7
Ev için kaçış dizisi [1 ~ ve End için kaçış dizisi [4 ~
Steven Lu

3
Bir cazibe gibi çalışır, harika!
Juto

25
Doğru ciltleme ⌘← "SEND ESC SEQ" OHEv ve ⌘→ "SEND ESC SEQ" OFUç içindir (bunlar büyük harf sıfır değildir). Bu Simülasyonu yapılan aslında Ev ve Bitiş tuşlarına basarak, vb bash böyle irade işin vim gibi
Timothy Zorn

433

Kelimeler arasında geçiş yapmak ve iTerm2'deki satırların başlangıcı / bitişi için aşağıdaki iki çözümden birini seçin .

1. Basit çözüm (önerilir)

  1. Açık Tercihler
  2. "Profil" sekmesini tıklayın
  3. Soldaki listeden bir profil seçin (örn. "Varsayılan") ve "Tuşlar" sekmesini tıklayın
  4. "Ön Ayarlar" aşağı bağlantısını tıklayın ve "Doğal Metin Düzenleme" yi seçin

resim açıklamasını buraya girin


2. Anahtarları manuel olarak eşleme (Gelişmiş)

Yukarıda belirtilen "Doğal Metin Düzenleme" ön ayarını kullanmak istemiyorsanız, ihtiyacınız olan tuşları manuel olarak eşleyebilirsiniz:

  1. Açık Tercihler
  2. "Anahtarlar" sekmesini tıklayın
  3. [+]Simgeyi tıklayın

Şimdi aşağıdaki klavye kısayollarını ekleyebilirsiniz:

İmleci bir sözcük sola taşıma

  • Klavye kısayolu: +
  • Eylem: Onaltılı Kod Gönder
  • Kod: 0x1b 0x62

resim açıklamasını buraya girin

İmleci bir kelime sağa taşıma

  • Klavye Kombinasyonu: +
  • Eylem: Onaltılı Kod Gönder
  • Kod: 0x1b 0x66

İmleci satır başına götür

  • Klavye Kombinasyonu: +
  • Eylem: Onaltılı Kod Gönder
  • Kod: 0x01

İmleci satır sonuna taşıma

  • Klavye Kombinasyonu: +
  • Eylem: Onaltılı Kod Gönder
  • Kod: 0x05

Kelimeyi sil

  • Klavye Kombinasyonu: +←Delete
  • Eylem: Onaltılı Kod Gönder
  • Kod: 0x1b 0x08

Satırı sil

  • Klavye Kombinasyonu: +←Delete
  • Eylem: Onaltılı Kod Gönder
  • Kod: 0x15

Geri alma

  • Klavye Kombinasyonu: +z
  • Eylem: Onaltılı Kod Gönder
  • Kod: 0x1f

Önceki bağlantıları kaldırmayı unutmayın :

  • “Profiller” sekmesini açın
  • ”Tuşlar” alt sekmesini tıklayın
  • + Ve + tuş kombinasyonları için eşlemeleri kaldırın

2
Bu iTerm2 benim için iyi çalıştı ve takip etmek çok kolay oldu, teşekkürler!
Natetronn

3
Sadece ⌥ ← için orijinal ciltleri ne açıklığa kavuşturmak? Anlıyorum Says send Hex Codes: 0x1b 0x1b 0x5b 0x44. İnsanların bunu kaldırmak istememesi durumunda bilmek iyi olurdu.
Ağustos

5
Satır başına ve sonuna atlamak zsh kullanarak benim için çalışmadı. "Onaltılı Kod" kullanarak "0x01" / "0x05", üst cevap tarafından önerildiği gibi benim için çalıştı.
Flip

2
Satır başına ve sonuna atlamak benim için de işe yaramadı. En iyi cevap çalıştı.
hisabimbola

3
İTerm'in bunları yükleyebileceğimiz bir önayarda birleştirmenin bir yolu var mı? Elle yazmak için sinir bozucu görünüyor ama bu benim için çalıştı ve harikaydı. Teşekkürler!
Ağustos

259

Gördüğüm kadarıyla çok iyi cevaplar var, ancak bu, yerel OSX işlevselliğine, kabuğunuzdan daha fazlası içinde mümkün olan en yakın şeyi sağlamalıdır. Bunun ZSH, Bash, düğüm, python -i, iex ve irb / pry oturumlarında çalıştığını doğruladım (readline için rb-readline gem kullanarak, ancak herkes için çalışmalı).

Aç iTerm tercihleri + ,ve gezinme Profilessekmesi ( Keyssekme kullanılır, ancak ekleyerek profilinize keybinding yapmanıza olanak verir edilebilir Profilinizi kaydetmek birden bilgisayarlara ve senkronizasyon) ve keysalt sekmesinde ve aşağıdakileri girin:

İmlecin solundaki tüm karakterleri sil

+ ←DeleteOnaltılık Kod Gönder:

0x15Daha uyumludur, ancak işlevsellik bazen imlecin solundaki karakterler yerine tüm satırı silmektir. Ben şahsen bunu kullanın ve sonra ^Usadece imlecin solundaki şeyleri silmek için benim zsh bindkey üzerine yazmak (aşağıya bakın).

veya

0x18 0x7fDaha az uyumludur, düğümde çalışmaz ve varsayılan olarak zsh'da çalışmaz, zsh'ı düzeltmek için aşağıya bakın (bash / irb / pry iyi olmalıdır), çalışırken istediğiniz işlevselliği gerçekleştirir.

İmlecin sağındaki tüm karakterleri sil

Onaltılık Kod Gönder + fn+ ←Deleteveya + Delete→:0x0b

İmlecin solundaki bir kelimeyi sil

+ ←DeleteOnaltılık Kod Gönder:

0x1b 0x08 Elixir'in IEX'deki molaları, her yerde iyi çalışıyor gibi görünüyor

veya

0x17 Her yerde çalışır, ancak IRB'deki normal kelime sonlarında durmaz ve bunun yerine gerçek bir alan görene kadar siler.

İmlecin sağındaki bir kelimeyi sil

+ fn←Deleteveya + Delete→Onaltılık Kod Gönder:0x1b 0x64

İmleci satırın önüne taşıma

+ Onaltılık Kod Gönder:0x01

İmleci satırın sonuna taşıma

+ Onaltılık Kod Gönder:0x05

İmleci bir sözcük sola taşıma

+ Onaltılık Kod Gönder:0x1b 0x62

İmleci bir kelime sağa taşıma

+ Onaltılık Kod Gönder:0x1b 0x66

Geri alma

+ zOnaltılık Kod Gönder:0x1f

Yeniden biz sonra zsh içinde düzeltebilecek bir kullanılmamış Hexcode olarak ayarlayın, böylece tipik bash, zsh veya taleb bağlı olmayan

+ + Zveya +yOnaltılık Kod Gönder :0x18 0x1f

Şimdi işe yaramayanları nasıl düzeltebilirim

Zsh için, henüz işlevsel olmayan + ←Deleteve + + Z/ + için bağlayıcıyı çalıştırarak ayarlayabilirsiniz 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

Bash veya readline'a yineleme eklemek için bir çözüm bulamıyorum, bu yüzden bunlardan herhangi biri için bir çözüm biliyorsanız, lütfen aşağıya yorum yapın ve bunları eklemeye çalışacağım.

Anahtar dizileri onaltılı dönüştürmek için arama tablosu arayan herkes için, bu tablo çok yararlı buluyorum .


2
Bu gerçekten faydalı, çok fark yaratıyor! Bazı insanların $önünde karıştırabileceğini belirtmek isterim echo(sadece kaldır?). Bunun dışında mükemmel. Teşekkür ederim.
edmundo

1
@Christophe Öyle görünüyor ki anahtar bağlama olması gerektiği gibi orada. Ya onaltılık değerleri eklerken bir hata yaptınız veya geriye doğru sözcük için tuş bağlama üzerine yazılıyor. Çalıştırdığınızda bindkey | grep "\^\[b", başka bir şey ayarlandıktan sonra üzerine yazılıp yazılmadığını anlarsınız. Bu olmalıdır yalnızca dönmek #=> "^[b" backward-word. Üzerine yazılıyorsa, üzerine yazıldığı yeri bulmanız ve kaldırmanız gerekir. Bu mümkün değilse, çalıştırabilir ve echo 'bindkey "^[b" backward-word' >> ~/.zshrconu son satırınıza ekler .zshrc, sonra iTerm'i yeniden başlatır ve çalışmalıdır
Travis

2
@Christophe keys, iTerm tercihlerindeki sekmeyi + da bir şeyle eşleştirip eşlemediğini kontrol edin . Varsa çıkarın. Serbest bırakma bdüğmesine escve ardından düğmesine basarak doğru çalışıp çalışmadığınızı test edebilirsiniz b. Sola bir kelime atlamalý. Alternatif olarak, + işaretini onaltılık 0x1b 0x42 veya ile eşleştirebilirsiniz 0x1b 0x5b 0x31 0x3b 0x35 0x44. Her ikisinin de benim için çalıştığını doğruladım. Ben gerçekten senin sekmesinde veya sekmesinde iTerm olsa üzerine + yazıldığını düşünüyorum . profile keyskeys
Travis

3
İnanılmaz! Undo artı Redo bağlarını buradan öğrendim.
ecbrodie

3
Bunu manuel olarak yaptım ve bunu yapmak için neden bir profili içe aktaramıyorum? Sonra bu talimatlara dayanarak GabLeRoux / iterm2-macos-dynamic-profile oluşturdum . Kusursuz çalışıyor, teşekkürler Gab
GabLeRoux

48

İterm2'de temel tercihlerinizi ayarlamak için yukarıda listelenen öğreticiyi izleyin .

  1. Yeni bir kısayol tuşu oluşturma
  2. İşlem olarak "Kaçış dizisi gönder" i seçin
  3. Ardından, cmd-sola ayarlamak için aşağıdaki metinde için:
    • Satır başlangıcı[H için girin
      VEYA
    • Satır sonu[F için girin

1
F benim iterm2 içinde sadece bir kelime atlar
Matthias

1
ITerm => Tercihler => Tuşlar
pfrank

Bunu sev! diğer çözümler benim için işe yaramadı. I Saatleri iterm2'de ctrl + a ve ctrl + e kullanamadığım için sinirliyim. Ama bunun için balıktan vazgeçmek istemedim. Bu tamamen işe yarıyor teşekkürler!
FLY

Diğer çözümler de benim için işe yaramadı, ama bu işe yaradı.
Braham Snyder

42

İTerm 3.0.12'de Natural Text Editingön ayara geçebilirsiniz :

resim açıklamasını buraya girin

iTerm → Tercihler → Profiller → Tuşlar

Uyarı Bir ön ayar olduğundan, daha önce bağladığınız tuşları geçersiz kılabilir. Bu nedenle, bir ön ayar uygulamadan önce geçerli anahtar bağlarınızı kaydetmek daha iyidir.


2
Cevabınızı daha ayrıntılı açıklayabilir misiniz? İçinde olduğu gibi, bu ön ayar neleri içerir ve üzerine yazabilir?
Carles Alcolea

Cevap için teşekkürler. Ayrıca o şıngırdayan muhtemelen en iyi uygulama yolu varsayılanlarla vidalama değildir ve "mod" düzenleyerek doğal bir metin olarak profil geçiş yapabilirsiniz kendi özel profiline bu uygulama var
aug


10

Travis yanıtını kullandım ve talimatlarına göre içe aktarabileceğiniz dinamik bir profil oluşturdum .

GabLeRoux / iterm2-macos-dinamik profilli

Talimatlar benioku dosyasındadır ve bunu içe aktarmak, hepsini manuel olarak eklemekten çok daha hızlıdır. Ben bir yorum gizli çünkü @ gooli isteğine göre bu bir cevap yaptı. Umarım bundan hoşlanırsın 🍻


2
Bir yıl sonra buraya geldi ve bunu bulmak çok mutlu!
elifiner

9

Sadece aynı sorunu yaşayan ama iTerm 2 ile Zsh kabuğu kullanan herkese yardım etmek. Zsh düzgün okumuyor çıkıyor/etc/inputrc ve böylece tercihleriyle ayarlanmış herhangi tuş bağları anlamakta başarısız!

Bunu düzeltmek için, .zshrcdosyanıza bazı önemli bağlamalar eklemeniz gerekir , örneğin:

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

Yukarıdaki örnekte "e" den önce ters eğik çizgilere dikkat edin, bağlantılı makale bunları göstermez, bu nedenle .zshrcciltleme eklerken bunları dosyanıza ekleyin .


4

Eski moda emacs bağlamaları hala iterm2 ve os x terminalinde çalışabilir:

Tercihler -> Profiller -> Tuşlar (profillerdeki alt sekme)

  • Set Left/Right option <kbd>⌥</kbd> key acts as +Esc(os x terminaline benzer)

Bu, kelimeleri kelimelere göre taşımayı etkinleştirmeli alt- fve alt- olmalıdır b. (Hala ctrl- ave ctrl- eher zamanki gibi çalışır)

metaBu eski bağlantılar olarak ayarlanırsa, bazı iterm2 bağlantıları kullanılamazken çalışır.


2

İçinde açıklar gibi burada , basit adımları takip ederek yapabilirsiniz:

Varsayılan olarak, kelime sıçramaları (seçenek + → veya ←) ve kelime silme işlemleri (seçenek + geri silme) çalışmaz. Bunları etkinleştirmek için "iTerm → Tercihler → Profiller → Tuşlar → Hazır Ayarı Yükle ... → Doğal Metin Düzenleme → Boom! Head patlar" bölümüne gidin.


2

Hattın başına ve sonuna gitmek için çalışan tek şey

⌘← "SEND ESC SEQ" OH- satırın başına gitmek için
⌘→ "SEND ESC SEQ" OF- satırın sonuna gitmek için


1

bind -p kabuğunuzda size daha fazla fikir / arama terimi sunmanıza yardımcı olabilecek ilişkili çıkış karakterlerinin bir listesini gösterir.


5
bind -psadece zsh, csh tcsh, kullanım için Bourne kabuklarında (bash, sh) çalışır bindkey.
Travis


0

Benim için aşağıdaki kombinasyon işe yaradı:
| Key Action Esc+ End result | |-----------------------------------------------------| | Send Escape Sequence a Send ^[ a | | Send Escape Sequence e Send ^[ e |

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.