Saya mencoba memetakan Ctrl dan tanda tambah bersama. Inilah yang saya coba di vimrc saya:
nnoremap <C-=> : echo "Hello" <CR>
Namun sepertinya pemetaan tidak dipicu. Adakah saran tentang kesalahan saya? Saya menggunakan macvim.
Saya mencoba memetakan Ctrl dan tanda tambah bersama. Inilah yang saya coba di vimrc saya:
nnoremap <C-=> : echo "Hello" <CR>
Namun sepertinya pemetaan tidak dipicu. Adakah saran tentang kesalahan saya? Saya menggunakan macvim.
Jawaban:
Sayangnya, tidak ada cara pemetaan yang andal Ctrl-=.
Karena cara ctrl+key
chord berinteraksi dengan terminal dan diwakili secara internal, satu-satunya pemetaan-Ctrl yang dijamin dapat dideteksi oleh Vim adalah yang didefinisikan dalam standar ASCII. Berikut adalah daftar lengkap ctrl+key
kombinasi tersebut, dan byte masing-masing mewakili.
Ctrl-@ 0x00 NUL
Ctrl-A to Ctrl-Z 0x01 to 0x1A
Ctrl-a to Ctrl-z 0x01 to 0x1A
Ctrl-[ 0x1B ESC
Ctrl-\ 0x1C
Ctrl-] 0x1D
Ctrl-^ 0x1E
Ctrl-_ 0x1F
Ctrl-? 0x7F DEL
Namun, perhatikan bahwa sebagian besar sudah memiliki fungsi dalam Vim, dan beberapa pada dasarnya identik dengan / tidak dapat dibedakan dari penekanan tombol lainnya. mis. CTRL-M
memiliki kode kunci yang sama dengan Enter
, jadi jika Anda memetakan salah satu dari mereka Anda juga tidak dapat memetakan yang lain.
Sumber: Vim-FAQ
Anda mungkin dapat mengatasi batasan di atas dengan mengkonfigurasi terminal Anda untuk mengirim urutan byte tertentu untuk pemetaan Anda, seperti di thread stack-overflow ini , tetapi itu pasti akan merepotkan. Secara pribadi, saya lebih suka memilih pemetaan yang berbeda.
Ini mungkin akhirnya diperbaiki, tetapi itu tidak mungkin, karena Vim bergantung pada terminal yang digunakan. Namun, ada kemungkinan bagus ini akan bekerja di Neovim. Saya tidak tahu apakah itu berfungsi sekarang atau tidak.