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.
Jawaban:
Kode hex tersebut hanya urutan byte. Misalnya memetakan kombinasi tombol untuk
0x66 0x6f 0x6f
membuatnya dimasukkanfoo
.0xc3 0xa4
akan memasukkan ä jika Anda menggunakan UTF-8.0x1b 0x1b 0x5b 0x43
berartiescape 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):
Anda dapat membuat ⌥⌦ menghapus kata ke depan dengan menugaskannya ke
\ed
:Mengubah ⌥ ← dan ⌥ → ke
\eb
dan\ef
dalam preferensi iTerm juga akan mengubahnya dalam program yang tidak mendukung readline atau ikatan kunci gaya emacs. Pilihan lain adalah menambahkan ini ke ~ / .inputrc :Anda dapat menjalankan
read
dan menekan kombinasi tombol untuk melihat karakter apa yang mereka masukkan. Misalnya ⌥ ← sisipan^[^[[D
secara default, di mana^[
melarikan diri dalam notasi tanda sisipan .Lihat juga http://code.google.com/p/iterm2/wiki/Keybindings .
sumber
Ctrl+Alt+<char>
dengan<char>
menjadii
,j
,k
,l
danu
)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 ...Buka aplikasi dan tekan
Ctrl-D
Kembali di iTerm 2, tambahkan pintasan Unicode di iTerm> Preferences> Keys
Catatan: Jangan menyalin dan menempelnya, cukup ketik Unicode tanpa spasi.
sumber
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 0x4
mana0x840101
pengubah 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.
sumber
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.
sumber