Membuat ITerm untuk menerjemahkan 'meta-key' dengan cara yang sama seperti pada OS lainnya

179

Dalam bash shell dengan emacs key-binding, Anda dapat menggunakan kombinasi tombol seperti Mf, Mb untuk memajukan satu kata ke depan atau ke belakang pada prompt shell. Biasanya, kunci meta dipetakan ke tombol Alt pada Windows dan Linux. Namun, di iTerm, saya tidak dapat menemukan cara untuk memetakan kunci meta ini ke tombol Option atau Command di MacBook Pro saya.

Tampaknya di OS X, kunci meta secara default dipetakan ke kunci ESC. Jadi Anda bisa menggunakan ESC-f, ESC-b di iTerm. Namun, kunci ESC tampaknya tidak praktis untuk digunakan. Selain itu, iTerm memang memiliki opsi yang memungkinkan Anda untuk memodifikasi pemetaan untuk meta key (Bookmark> Profil> Profil Keyboard> Global> Option Key as ...), pengaturan ini sepertinya tidak berfungsi sama sekali.

Karena itu, jika ada yang tahu apa solusi untuk masalah ini, beri tahu saya.

Saya telah memutakhirkan ke rilis terbaru, 0.9.6.1012, dan perilaku ini masih berlanjut.

Sunting: Beberapa klarifikasi untuk pertanyaan saya. Ikatan kunci yang saya bicarakan adalah untuk bash shell, bukan di emacs. Kebetulan, secara default, bash shell juga menggunakan key-binding yang sama dengan emacs.

ejel
sumber
Setelah mengacaukan masalah ini untuk sementara waktu dan tidak dapat menemukan solusi. Saya menyerah dan beralih ke Terminal sekarang.
ejel
2
jangan lupa bahwa iterm2 sudah ada dan semuanya baik-baik saja di sana =)
holms

Jawaban:

207

Cmd+., Profiles, KeysDan pilihLeft option Key acts as: +Esc .

Bekerja untuk saya di emacs, walaupun saya tidak yakin apakah itu akan memiliki efek lain yang tidak diinginkan.

Sorin
sumber
Saya sudah mencoba Option Key sebagai ... dengan semua pilihan tetapi tidak ada yang berfungsi untuk saya dalam bash shell. Itu hanya menunjukkan "?" setiap kali saya menekan kombinasi tombol meta.
ejel
2
Sepertinya bahasa input Anda harus AS untuk opsi + ESC untuk bekerja. + ESC tidak bekerja untuk saya ketika saya memilih metode input Jepang / Romaji, tetapi mulai bekerja setelah saya mengalihkan bahasa input ke AS
Dominic Cooney
2
Preferensi, Profil, Tombol dan pilih opsi Kiri Kunci bertindak sebagai: + Esc. Maka Anda akan memiliki kedua tombol opsi kiri DAN tombol Esc sebagai kunci meta. Itulah yang terjadi dalam kasus saya.
cgl
Dengan iTerm 2 ini tampaknya menjadi opsi yang disarankan.
ejel
4
Untuk keyboard eksternal saya, saya harus mengatur tombol opsi kiri dan kanan untuk digunakan Esc+, meskipun saya menggunakan tombol opsi kiri itu masih akan mencetak karakter aneh. Ini mungkin terjadi karena saya menggunakan opsi Pengubah Keyboard di pengaturan Keyboard Mac untuk mengubah tombol.
grego
130

Buka Bookmark> Kelola Profil . Kemudian pilih Keyboard Profiles> Global dan pilih Option Key sebagai Meta . Ini berfungsi untuk saya dalam versi 0.9.6.1201.

Dag Høidahl
sumber
2
Saya harus mengubah entri xterm (OS X) daripada global, tetapi sekarang berfungsi.
Jason Axelson
Saya tidak tahu mengapa pada mesin saya pengaturannya rusak pada 0.9.6.1201 dan beberapa build lainnya saya coba. Ini bekerja, bagaimanapun, dengan versi 0.9.6 terbaru dan 0.10. Jadi itu seharusnya tidak menjadi masalah sekarang.
ejel
11
di iTerm2 ini bekerja hanya setelah saya mendefinisikan kembali Tombol Shortcut Profil untuk alt+ ->dan alt+ <-untuk masing-masing Kirim Urutan Escape + f/ b.
amirnissim
Saya harus membuka sesi baru untuk memulai
Skurpi
@SridharRatnakumar Bekerja untuk ITerm juga
Krzysztof Wende
31

Di bilah Menu Iterm2 => Preferensi => Profil pilih tab tombol dan pilih

kiri Kunci opsi bertindak sebagai + Esc

masukkan deskripsi gambar di sini

bekerja untuk saya juga di irssi.

anquegi
sumber
Luar biasa, ini juga berfungsi dalam kombinasi iTerm2 + tmux
TheJavaGuy-Ivan Milosavljević
5

Saya menggunakan iTerm2 , dan bagi saya, jawaban ini hanya menyelesaikan sebagian masalah saya:

Cmd+ ,=> Profil => Kunci dan pilih opsi Kiri Kunci bertindak sebagai: + Esc .

masukkan deskripsi gambar di sini

Selain itu, saya harus pergi ke Cmd+ ,=> Profiles >> Kunci dan dalam daftar Pemetaan Kunci menemukan kedua Kombinasi Kunci s:masukkan deskripsi gambar di sini dan masukkan deskripsi gambar di sini, klik dua kali dan ubah pintasannya sebagai berikut:

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

* Pastikan untuk memilih tindakan Kirim Escape Sequence .

M. Demianchuk
sumber
Ini sangat membantu. Terima kasih banyak kawan!
LeOn - Han Li
4

Pergi semua kebangkitan zombie di sini, tapi demi keturunan -

Posting ini membuatnya berfungsi sesuai keinginan Anda untuk saya, untuk Mb dan Mf, sambil mempertahankan set 'Option Key as Meta' sehingga Anda tidak mengorbankan pengubah (saya punya pemetaan vim menggunakan meta, secara pribadi).

Singkatnya, di Profil Papan Ketik Global Anda, tambahkan dua pemetaan baru dengan pengaturan:

  1. Kunci sebagai kode hex, nilai 62 untuk b, 66 untuk f (man ascii )
  2. Pengubah sebagai Opsi
  3. Tindakan seperti mengirim urutan pelarian, nilai b atau f

Satu-satunya hal yang saya masih lewatkan dari Terminal.app adalah Opt-Backspacemenghapus dengan kata. Ada solusi lain untuk itu, tetapi saya hanya mencoba melatih diri untuk menggunakannya Ctrl-w.

ches
sumber
Mungkin fitur baru sejak jawaban ini, tetapi Anda dapat memetakan Pintasan Kunci Global untuk dikirim Ctrl-wsaat Opt-Backspaceditekan.
Steve Buzonas
4

Lebih mudah di iTerm2. Pergi ke preferensi-> bookmark-> keyboard dan pilih Opsi mengirim + ESC. Di iTerm2 Anda dapat mengkonfigurasi tombol opsi kiri dan kanan secara terpisah, jadi ingatlah untuk mengubah keduanya jika itu yang Anda inginkan. Tautan untuk iTerm2: http://sites.google.com/site/iterm2home/

George
sumber
2

Buka Bookmark> Kelola Profil. Kemudian pilih Keyboard Profiles> Global dan pilih Option Key sebagai + ESC.

Bekerja di iTerm Build 0.9.5.0611 & Build 0.9.6.20090415


sumber
Hmm. Pengaturan tampaknya rusak pada mesin saya dengan dua versi ini juga. Namun, 0.9.6.20090928 dan 0.10 terbaru berfungsi seperti yang diharapkan.
ejel
2

Saya menemukan beberapa solusi pada stackoverflow juga, cukup buka profil keyboard dan di "Global" ubah "Option key sebagai" + ESC

yang bekerja untuk saya dengan sempurna =) btw ada beberapa patch iterm juga lihat di sini: http://www.emacswiki.org/emacs/EmacsForMacOS

holms
sumber
0

Coba "ekspor LANG = C". Saya bukan ahli emacs, tetapi saya menemukan ini memungkinkan emacs pada OS X untuk mengenali kunci Opsi sebagai kunci Meta di iTerm,


sumber
0

Saya tidak tahu tentang ITerm, tetapi Anda bisa melakukan ini di Terminal. Instruksi dapat ditemukan di sini:

Emacs pada binding kunci Mac OS X Leopard

Kyle Cronin
sumber
Terima kasih. Saya sadar bahwa saya dapat melakukannya di Terminal. Saya hanya ingin mencapai hasil yang sama di iTerm. Ngomong-ngomong, yang saya cari adalah kunci-mengikat di bash shell, bukan di emacs. Kebetulan bash shell juga menggunakan kunci emacs.
ejel
0

Inilah yang berfungsi untuk saya: Bookmark> Kelola Profil> Profil Keyboard> Global / xterm> Tombol Pilihan sebagai + Esc. Dengan ini, saya dapat menggunakan Option + Enter di Midnight Commander dan nama file / direktori yang dipilih saat ini muncul di string perintah, sebagaimana mestinya. Option Key sebagai Meta tidak bekerja untuk saya. Membangun iTerm saya adalah 0,10.

Mikhail di YugaByte
sumber