Bagaimana cara mendapatkan nama kunci yang akan dikodekan untuk keymap di vimrc?

10

Dalam Emacs, saya dapat menekan Ctrl-h, k, untuk menggambarkan kunci. Saya bisa mendapatkan nama kuncinya walaupun tidak ditentukan, misalnya,

C-x <C-M-end> is undefined

Jadi, saya jadi tahu nama kuncinya C-x <C-M-end>.

Tetapi bagaimana Anda bisa mendapatkan nama kunci untuk Vim?

Saya ingin mengatur keymap untuk Ctrl-Shift-Vdan Shift-Insert, tetapi kode apa yang harus saya gunakan?

Apakah mungkin untuk mendapatkan nama kunci dengan cepat?

Xiè Jìléi
sumber

Jawaban:

2

Yang paling dekat saya dapat temukan describe-key( Ctrl+ H, K) adalah :mapperintah. Ini akan mendaftar semua pemetaan.

Anda juga dapat menjalankan :map <key name>, tetapi Anda harus menentukan <key>menggunakan sintaks khusus yang tercantum dalam
notasi kunci .

Atau Anda dapat mencoba :mapCtrl+ V<key>, yang seharusnya membiarkan Anda cukup menekan tombol daripada perlu menggunakan sintaks khusus.

Jadi untuk mengikat Ctrl+ Shift+ V, coba ini:

:map <C-S-v> whatever

atau

:mapCtrl+ V Ctrl+ Shift+V whatever

Tetapi pastikan program terminal Anda belum menggunakan ini untuk sesuatu yang spesial seperti tempel, jika tidak Vim tidak akan pernah melihat tombol tekan.

Juga lihat kunci-alt-peta , yang membantu menjelaskan apakah Altkunci Anda harus ditulis sebagai <M-x>atau <A-x>.

Mikel
sumber
Itu Ctrl-h, k, bukan Ctrl-X, k yang berarti kill buffer.
Xiè Jìléi
Maaf, perbaiki itu.
Mikel
Saya tidak yakin apakah akan dipetakan Matau Atidak Alt. Tapi <M-h>, <M-l>tidak berhasil. Saya tidak tahu apakah nama kunci tidak valid, atau acara utama belum dikirim ke Vim. Tidak ada log, tidak ada petunjuk.
Xiè Jìléi
Ya, Altsulit, karena sebagian besar terminal mengirim ESClalu xketika Alt+xditekan, dan bagaimana Vim tahu Anda tidak menekan ESCitu x. Pada dasarnya Althanya berfungsi di Gvim.
Mikel
5

Untuk mengetahui apa yang dihasilkan oleh kombinasi tombol atau kunci di Vim, saya biasanya membuka buffer kosong dengan " :enew", masuk ke mode penyisipan, tekan control-v, lalu kombinasi tombol atau tombol yang ingin saya identifikasi. Trik control-v ini juga dapat bekerja pada: -command line, jadi mendefinisikan pemetaan untuk pengujian cukup mudah. Misalnya, " :map ", control-vdan kombinasi tombol, " :echo 'it works'".

Heptite
sumber
0

Cukup ketik Ctrl+ sambil Vjalan dan tombol yang ingin Anda tekan. Jika Anda tidak menemukan hasil yang diharapkan (seperti misalnya <c-space>, <c-cr>, <M-i>, ...) itu hanya berarti Anda menggunakan vim dan tidak gvim. Cara vim memahami kunci yang diketik terkait dengan konfigurasi terminal Anda. gvim menggunakan definisi sendiri, sehingga tidak ada yang perlu dikonfigurasi.

Luc Hermitte
sumber