Memetakan kembali kunci di iterm2

15

Saya mencoba memetakan ulang beberapa kombinasi tombol default di iTerm2, dan ingin memahami apa yang terjadi ketika saya mengikat kunci ke "Kirim Kode Hex".

Posting sebelumnya membantu saya memulai dengan memetakan kembali kombo kunci ctrl-a dan ctrl-e ke cmd-kiri dan cmd-kanan, masing-masing, tetapi saya juga ingin memetakan kembali kombo kunci lainnya. ( Tautan ke pos Stackoverflow sebelumnya ).

Saya memiliki pemahaman yang samar-samar bahwa ada kode hex yang terlibat, tetapi saya berada pada titik di mana saya tidak tahu ke mana harus pergi selanjutnya untuk memahami apa yang terjadi atau apa yang harus dilakukan.

Komunitas
sumber
Tidak ada hubungannya dengan bash. Tag yang dihapus.

Jawaban:

16

Kode hex tersebut hanya urutan byte. Misalnya memetakan kombinasi tombol untuk 0x66 0x6f 0x6fmembuatnya dimasukkan foo. 0xc3 0xa4akan memasukkan ä jika Anda menggunakan UTF-8. 0x1b 0x1b 0x5b 0x43berarti escape escape [ C.

Beberapa urutan byte seperti ANSI escape sequence dan bahkan byte tunggal seperti karakter kontrol ASCII memiliki makna khusus di terminal.

Untuk membuat ⌘ ← dan ⌘ → pergi ke awal dan akhir baris, Anda dapat menetapkan mereka ke 0x01 (^ A dalam notasi caret) dan 0x05 (^ E dalam notasi caret):

  • ⌘ ←: Kirim Kode Hex: 0x01
  • ⌘ →: Kirim Kode Hex: 0x05

Anda dapat membuat ⌥⌦ menghapus kata ke depan dengan menugaskannya ke \ed:

  • ⌥⌦: Kirim ^ [d

Mengubah ⌥ ← dan ⌥ → ke \ebdan \efdalam preferensi iTerm juga akan mengubahnya dalam program yang tidak mendukung readline atau ikatan kunci gaya emacs. Pilihan lain adalah menambahkan ini ke ~ / .inputrc :

"\e\e[D": backward-word
"\e\e[C": forward-word

Anda dapat menjalankan readdan menekan kombinasi tombol untuk melihat karakter apa yang mereka masukkan. Misalnya ⌥ ← sisipan ^[^[[Dsecara default, di mana ^[melarikan diri dalam notasi tanda sisipan .

Lihat juga http://code.google.com/p/iterm2/wiki/Keybindings .

Lri
sumber
Terima kasih. Saya menemukan jawaban ini ketika mencari solusi untuk pertanyaan saya di sini . Bagaimana saya bisa mencari kode hex untuk kombinasi tombol tertentu? (dalam kasus saya saya tertarik dalam kombinasi Ctrl+Alt+<char>dengan <char>menjadi i, j, k, ldan u)
Amelio Vazquez-Reina
6

Saya sarankan untuk menginstal Kode Kunci ($ 0) oleh Banyak Trik dan cari sendiri pintasannya.

Misalnya jika Anda ingin memetakan ulang pintasan default untuk (meneruskan) menghapus charcter - yaitu Ctrl-D ( ⌃D) - sesederhana menekan tombol hapus maju ( ), Anda harus ...

  1. Buka aplikasi dan tekan Ctrl-D

    Contoh Kode Kunci

  2. Kembali di iTerm 2, tambahkan pintasan Unicode di iTerm> Preferences> Keys

    iTerm Kirim Kode Hex

Catatan: Jangan menyalin dan menempelnya, cukup ketik Unicode tanpa spasi.

patrick
sumber
2

Cara terbaik yang saya temukan adalah dengan mengirim kode kunci (seperti yang dijelaskan oleh @pulus atau menggunakan binding kunci vim.

Catatan pada kode kunci: Sebenarnya Anda tidak dapat membuatnya bekerja dengan mengirim string unicode seperti yang dijelaskan di atas, Anda perlu mengirim pengubah dan kunci untuk mendapatkan dalam kasus Control+ DAnda perlu mengirim ini sebagai kode: di 0x840101 0x4mana 0x840101pengubah kunci kontrol dan dapat diperoleh melalui Kode Kunci .

Catatan tentang pengiriman sebagai urutan vim : Seperti dijelaskan dalam dokumentasi iTerm2 , Anda dapat mengirim kode kunci dalam format vim-binding seperti \<C-d>untuk mengirim Control+ D(catatan yang \penting).

Saya pribadi lebih suka vim key binding karena lebih mudah dibaca dan nantinya Anda akan mengerti apa yang telah Anda lakukan.

ExistMe
sumber
1

Lihat Karabiner .

Di dalam alat ini Anda dapat membuat pemetaan khusus utama yang khusus untuk aplikasi. Itu datang dengan beberapa alat untuk membantu dengan itu.

bdecaf
sumber