Apakah ada cara untuk melihat kunci yang saat ini dipetakan di Vim?

183

Pada dasarnya, saya ingin melihat semua peta kunci yang dibuat di buffer saat ini oleh semua plugin, vimrc, dll, di buffer saat ini. Apakah ada cara untuk melakukan ini?

Paul Wicks
sumber

Jawaban:

238

Anda dapat melakukannya dengan :mapperintah. Ada juga varian lainnya.

  • :nmap untuk pemetaan mode normal
  • :vmap untuk pemetaan mode visual
  • :imap untuk memetakan pemetaan mode

Daftar di atas tidak lengkap. Mengetik :help mapdi Vim akan memberi Anda lebih banyak informasi.

mattr-
sumber
10
Hanya untuk memperjelas, saya percaya :map, seperti yang ditanyakan oleh pertanyaan awal, hanya menunjukkan pemetaan yang dibuat oleh plugin, vimrc, dll. Jika Anda ingin melihat ikatan kunci default di vim, gunakan:index
Von
28
@ Von, maksudmu mungkin :help index.
Lqueryvg
2
ini hanya memberi Anda pemetaan yang ditentukan pengguna, bukan ikatan bawaan (bawaan)
Tyler Durden
1
Apakah mungkin untuk menulisnya ke file untuk memeriksanya nanti?
Anton Daneyko
@AntonDaneyko Anda dapat menggunakan github.com/AndrewRadev/bufferize.vim untuk tujuan itu.
radlan
86
:redir! > vim_keys.txt
:silent verbose map
:redir END

Ini menampilkan cara pintas, dengan di mana mereka didefinisikan, ke file teks.

Ivan
sumber
1
Saya percaya bahwa Anda bermaksud menggunakan :redirperintah, bukan :remapperintah.
Aaron Hays
1
Terima kasih terima kasih terima kasih!!! Akhirnya menemukan bahwa MacVim sedang memetakan ulang perintah <A-Up> saya. Diperbaiki dengan menambahkan let macvim_skip_cmd_opt_movement = 1
RichS
54

Selain jawaban tentang :maptanpa argumen: jangan lewatkan bentuk verbose ( :verbose map) yang menunjukkan di mana pemetaan didefinisikan (lihat :help map-verbose).

Ves
sumber
13

Sederhananya, jalankan :map varian tanpa argumen.

:map
:imap
:vmap
Michael Berkowski
sumber
13

:mapdan teman-temannya adalah kuncinya, :verbosemenambahkan info dan :redirmemungkinkan perbaikan pasca-pencarian.

Mereka adalah campuran yang sempurna untuk menunjukkan perintah apa yang mengikat pintasan dan sebaliknya, tetapi jika Anda ingin mencari beberapa kunci dan menghindari file temp setiap kali Anda perlu mencari pemetaan, lihat skrip dan :Verboseperintah.

Ini adalah pembungkus aktif :verboseuntuk menampilkan hasil di jendela pratinjau.

dengan cara ini Anda dapat mencari apa pun yang Anda inginkan di dalam hasil tanpa menggunakan file temp

ketik :Verbose mapdan gunakan / ?seperti biasa.

Albfan
sumber
4

Cara lain adalah dengan menyimpan sesi ke file dan kemudian mengedit file ini karena berisi semua pemetaan dan pengaturan.

:mks[ession] [file] - Tulis skrip Vim yang mengembalikan sesi penyuntingan saat ini.

Fernando Rodriguez
sumber