Memetakan Ctrl dengan tanda sama dengan


10

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.



1
Tampaknya pertanyaan seperti ini semakin sering terjadi: VIM cara memetakan kunci kombinasi: ctrl + shift + w +,
mMontu

@ Montu Ya, itu pertanyaan yang sangat umum. Saya bertanya-tanya apakah itu akan menjadi ide yang baik untuk menulis posting kanonik pada representasi karakter internal vim, termcodes, dan apa yang vim dapat / tidak bisa petakan.
James

Jawaban:


17

Sayangnya, tidak ada cara pemetaan yang andal Ctrl-=.

Karena cara ctrl+keychord 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+keykombinasi 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-Mmemiliki 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.


1
Bagus, saya akan menghubungkan orang-orang dengan ini di masa depan.
Tumbler41
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.