Cara Memetakan Kekunci dalam Vim

Cara Memetakan Kekunci Dalam Vim



Dalam Vim, pemetaan kunci ialah proses memberikan set kunci atau arahan kepada kunci tertentu untuk melaksanakan tugas tertentu. Sebagai contoh, untuk memilih semua baris dalam fail yang anda gunakan ggVG perintah, dan anda perlu menekan empat kekunci untuk melakukannya. Bagaimana pula dengan melakukannya dengan satu ketukan kekunci sahaja? Di sinilah pemetaan kunci Vim berguna. Pemetaan utama ialah cara mengautomasikan banyak tugas yang kerap dilakukan dalam Vim. Dan, anda pasti pernah mendengarnya; jika anda melakukan sesuatu lebih daripada dua kali, automatikkannya!

Dalam panduan komprehensif ini, saya akan menerangkan cara memetakan kekunci dalam Vim untuk mengautomasikan operasi. Daripada mencipta peta kunci asas kepada pemetaan kunci lanjutan, bersama-sama dengan proses menjadikannya kekal dan mengalih keluarnya.

Sintaks

Untuk memetakan kunci dalam Vim, sintaks berikut digunakan:







peta



Dalam sintaks di atas:



peta nmap, imap, vmap, xmap, cmap atau omap
* , , , , dan
Bahagian kiri mengandungi kunci atau set kekunci untuk dipetakan
Bahagian sebelah kanan mengandungi satu set kekunci atau arahan yang akan dilaksanakan oleh kekunci sebelah kiri

Pada asasnya, ialah kunci atau set kunci yang akan melaksanakan arahan atau operasi pada .





*Dalam sintaks di atas, bahagian adalah pilihan.

Argumen Khas Vim

Argumen Khas Vim ialah teg yang digunakan untuk memberikan fungsi tambahan kepada peta kunci. Argumen ini muncul selepas perintah :map, dan sebelum {rhs} dan {lhs}.



Contohnya, untuk membuat peta khusus penimbal, gunakan hujah khas dengan cara berikut:

: peta < penampan > < C-a > ggVG
Untuk menyekat mesej bergema daripada peta kekunci
Untuk menjadikan peta penampan khusus (unik kepada penimbal semasa)
Untuk menunjukkan bahawa peta adalah sebahagian daripada skrip atau pemalam
*Ia digunakan untuk menentukan kekunci khas untuk pemetaan menggunakan tatatanda <> (Kekunci fungsi, kawalan, anjakan dan kekunci bukan abjad lain)
Ia menunjukkan bahagian kiri pemetaan ialah ungkapan dan itu perlu dinilai untuk mendapatkan bahagian kanan
Untuk menjadikan peta unik di kalangan peta tempatan dan global
Untuk melangkau menunggu aksara arahan seterusnya dalam peta

Notasi kunci khas Vim disebut dalam imej berikut.

Contohnya, jika anda ingin menggunakan kekunci ruang dalam pemetaan kunci, tatatanda akan digunakan.

Mencipta Peta Kunci Asas dalam Vim

Mari fahami pemetaan kunci Vim dengan contoh asas. Saya ingin memetakan arahan pilih semua baris ( ggVG ) kepada ctrl+a kunci. Untuk memetakan kekunci ctrl+a, saya akan menjalankan arahan berikut dalam Vim.

: peta < C-a > ggVG

di sini, menandakan ctrl dan a kunci, manakala ggVG ialah arahan untuk memilih semua baris dalam fail. The : peta kata kunci adalah untuk pemetaan mod biasa secara lalai, bagaimanapun, :nmap juga boleh digunakan secara eksplisit untuk biasa mod.

Begitu juga, untuk memetakan fungsi togol nombor baris dengan F1 penggunaan kunci:

: peta < F1 > : tetapkan nombor !

Sekarang, apabila anda menekan kekunci F1 nombor talian akan didayakan, dan menekannya sekali lagi menyahdayakannya.

Ambil perhatian bahawa kaedah ini hanya akan memetakan kekunci dalam penimbal semasa dan akan dialih keluar apabila menutup penimbal.

Menyenaraikan Peta Kunci

Untuk menyenaraikan semua pemetaan utama mod biasa, visual dan operator belum selesai, gunakan arahan :map.

: peta

Untuk menyenaraikan pemetaan utama bagi masukkan dan baris arahan mod, gunakan :map! Perintah.

: peta !

Untuk menyenaraikan pemetaan kunci mod tertentu, hanya taip huruf awal mod sebelum kata kunci peta.

:nmap Untuk memaparkan peta mod biasa
:imap Untuk memaparkan peta mod sisipan
:vmap Untuk memaparkan peta mod visual dan pilih
:smap Untuk memaparkan peta mod pilih
:xmap Untuk memaparkan peta mod visual
:cmap Untuk memaparkan peta mod baris arahan
: peta Untuk memaparkan peta mod pengendali belum selesai

Selain itu, untuk menyenaraikan semua peta termasuk peta pemalam dengan laluan, gunakan : peta bertele-tele perintah.

: peta bertele-tele

Untuk kunci tertentu, sebut sahaja kunci dalam arahan ( : peta bertele-tele ).

Menjadikan Peta Kunci Kekal

Peta kekunci yang disebut dalam bahagian di atas akan memetakan kunci dalam penimbal semasa sahaja. Untuk menjadikan pemetaan kunci Vim kekal, peta perlu diletakkan dalam fail vimrc.

Ambil perhatian bahawa semasa meletakkan peta kekunci dalam vimrc fail, jangan tambah titik bertindih (:) sebelum fail peta perintah.

Selepas meletakkan peta kunci dalam vimrc fail, simpan dan berhenti menggunakan perintah :wq atau menggunakan kekunci shift+zz. Peta kekunci yang diletakkan di dalam vimrc fail akan menjadi global dan boleh digunakan dalam semua sesi Vim. Walau bagaimanapun, peta kekunci tertentu boleh dilumpuhkan buat sementara waktu jika ia menjejaskan kerja dalam sesi semasa, lihat Cara Alih Keluar Peta Kunci dalam bahagian Vim di bawah.

The vimrc ialah fail tetapan Vim yang mengandungi pelbagai arahan dan tetapan. Ia hadir dalam /usr/share/vim/ direktori pada macOS dan /etc/vim pada Linux. Adalah penting untuk diperhatikan bahawa vimrc fail dalam direktori yang disebutkan adalah fail khusus sistem. Anda boleh mengedit fail ini juga untuk pemetaan kunci, tetapi saya akan mengesyorkan membuat khusus pengguna vimrc fail dalam direktori rumah.

Mengelakkan Rekursi

Sebelum bergerak ke hadapan, adalah penting untuk mengetahui tentang rekursi dalam pemetaan kunci Vim. Kelemahannya dan cara mencegahnya. Ia boleh difahami melalui penggunaan contoh.

: peta dd 3jdd

Dalam contoh di atas, saya telah memetakan dd kekunci untuk bergerak ke bawah sebanyak 3 baris dan memadamkan garisan di bawah kursor. Sekarang, apabila saya menekan butang dd , ia akan cuba melaksanakan peta 3jdd . Vim akan mentafsirkan dd arahan sebagai peta dan laksanakan peta berulang kali, seperti yang ditunjukkan dalam imej berikut.

Catatan : Rekursi boleh membekukan editor Vim. Untuk menyahbekukannya, tekan ctrl+c kunci.

Untuk mengelakkan pengulangan, gantikan peta kata kunci dengan noremap , di mana ' tiada ā€™ bermaksud bukan rekursif . Saya akan menggantikan peta kata kunci dengan noremap untuk membetulkan rekursi dalam peta kekunci di atas.

:noremap dd 3jdd

Saya akan mengesyorkan menggunakan noremap bukannya peta untuk mengelak mencipta pemetaan rekursif secara tidak sengaja.

Mencipta Peta Kunci Khusus Mod

Vim telah menjadikan pemetaan kunci sangat serba boleh sehinggakan peta kunci mod tertentu pun boleh dibuat dengan mudah. Sebagai contoh, jika anda telah membuat peta kekunci untuk mod sisip menggunakan a F1 kunci, maka anda boleh memetakan perkara yang sama F1 masukkan mod lain untuk operasi baharu sepenuhnya.

Dalam contoh berikut, saya telah memetakan F1 kunci untuk memadam 3 baris dalam biasa mod dan tarik 3 baris dalam masukkan mod.

:nmap < F1 > 3hb
:imap < F1 > < C-t >

Peta pertama memadamkan tiga baris dalam mod biasa apabila menekan kekunci F1, manakala peta kedua menambah satu lekukan dalam baris semasa apabila dalam mod sisip menggunakan kekunci yang sama. Sekarang, mari kita fahami pemetaan dalam setiap mod.

Pemetaan Mod Biasa

Untuk menggunakan peta dalam mod biasa, gunakan sahaja nmap kata kunci. Sebagai contoh, untuk menyalin semua baris dalam fail menggunakan ctrl+c kunci, saya akan menggunakan arahan berikut.

:nmap < C-c > ggVGy

Seperti yang dibincangkan sebelum ini, adalah amalan terbaik untuk menggunakan kaedah bukan rekursif untuk memetakan kunci, oleh itu, saya akan menggantikan nmap dengan noremap kata kunci.

:noremap < C-c > ggVGy

Letakkannya tanpa titik bertindih (:) dalam vimrc fail untuk menjadikannya peta kunci kekal.

saya akan guna noremap bukannya peta dalam contoh berikut.

Sisipkan Pemetaan Mod

Untuk memetakan kekunci untuk mod sisip, hanya gunakan i bukannya n . Contohnya, dalam mod sisip, ctrl+p dan ctrl+n kekunci digunakan untuk melengkapkan perkataan secara automatik berdasarkan padanan ke belakang dan ke hadapan. Untuk memetakan ctrl+p kekunci dengan kekunci tab, saya akan menggunakan arahan berikut.

:inoremap < Tab > < C-p >

Lebih penting, jika anda ingin memetakan mod menunggu operator arahan dalam mod masukkan , maka anda perlu memasukkan kekunci di sebelah kanan untuk keluar dari mod sisip untuk melaksanakan arahan tersebut. Sebagai contoh, dalam peta kekunci berikut, saya ingin memadam 3 baris menggunakan ctrl+x kekunci dan masukkan semula mod sisip.

:inoremap < C-x > 3ddi

Sekarang, apabila saya menekan butang ctrl+x kunci, ia akan mencetak 3ddi perintah bukannya melaksanakannya.

Untuk membetulkannya, saya akan memasukkan sebelum itu 3ddi perintah.

:inoremap < C-x > < Esc > 3ddi

Sekarang, arahan itu akan melaksanakan keep me dalam mod sisipan.

Banyak komputer riba mini kekurangan Esc kunci, yang penting untuk keluar dari mod semasa. Jadi, untuk memetakan Esc kunci untuk keluar dari mod sisipan, pemetaan kunci boleh digunakan. Dalam contoh berikut, saya menggunakan ex kekunci untuk keluar ke mod biasa.

:inoremap ex < Esc >

Apabila anda cepat menekan butang ex kekunci mod sisip akan keluar, sekali gus memasuki mod biasa.

Pemetaan Mod Visual

Mod visual ialah mod yang sangat penting untuk memilih teks dalam editor Vim. Selain daripada pemilihan asas, mod visual mempunyai mod lain yang berbeza seperti garis visual dan mod blok visual.

Dalam mod visual, tilde (~) digunakan untuk menogol kes itu. Untuk menggunakan tilde (~), anda perlu menekan dua kekunci (anjakan+~) . Dalam contoh berikut, saya memetakan kunci c mod visual untuk memilih perkataan di bawah kursor dan menukar huruf besarnya.

:vnoremap c iw~

Sekarang, tekan v untuk memasuki mod visual dan tekan kekunci c untuk menogol perkataan di bawah kursor seperti yang ditunjukkan dalam GIF berikut.

Pemetaan Mod Baris Perintah

Banyak arahan penting Vim berfungsi dalam mod baris arahan sahaja. Seperti, untuk menyimpan fail : Dalam arahan digunakan, sama, untuk menyimpan dan berhenti :wq arahan digunakan. Semua tab dan operasi split juga dilakukan dalam mod baris arahan. Sebagai contoh, untuk membuat tab baharu, tab : bawahan arahan digunakan. Nah, untuk membuat tab dengan cepat, ctrl+t kunci sudah memadai.

:cnoremap < C-t > subjek < CR >

Sekarang, tekan titik bertindih (:) untuk memasuki mod baris arahan dan kemudian ctrl+t untuk membuka tab baharu; ia lebih cepat daripada menaip keseluruhannya subjek perintah dan Kembali kunci.

Mencipta Perintah Tersuai Vim
Memasuki mod arahan untuk melaksanakan peta kelihatan kurang berguna. Tetapi anda boleh membuat arahan tersuai anda sendiri dalam Vim menggunakan :perintah pilihan. Ciri ini agak menyerupai pemetaan kunci Vim. Sebagai contoh, untuk mencipta arahan pantas untuk menetapkan nombor baris dan lebar teks kepada 80, gunakan arahan berikut.

:perintah Mycmd :tetapkan nombor lebar teks = 80

Sekarang, masukkan mod arahan dan laksanakan :Mycmd perintah.

Pemetaan Mod Menunggu Operator

Mod operator belum selesai ialah mod di mana Vim menunggu arahan gerakan selepas kekunci operator ditekan. Pengendali biasa ialah y, d, dan c. Sebagai contoh, untuk memadam baris semasa dan 3 baris berikut, anda akan menggunakan operator d dengan 3j gerakan (d3j). Anda tidak boleh menekan kekunci ini serentak, untuk mencapai operasi yang diingini.

Mod biasanya digunakan untuk memetakan gerakan. Mari petakan gerakan yang akan memilih garis semasa dan 3 garisan diikuti olehnya.

:onoremap < F2 > 3j

Sekarang, untuk menarik baris semasa dan 3 baris diikuti dengannya gunakan theF2 kunci, dengan cara yang sama, yang d operator juga boleh digunakan.

Satu lagi perkara penting yang perlu diingat ialah jika anda menambah kiraan pada gerakan dipetakan di atas, katakan 2 , peta akan mengambilnya sebagai 23j, bukan 6j. Untuk membetulkannya, ungkapan daftar ā€œ= boleh digunakan. Peta di atas boleh diubah suai sebagai @=ā€™3jā€™ .

:onoremap < F2 > @ ='3j' < CR >

Cara Memetakan Peristiwa Tetikus

Walaupun Vim ialah penyunting teks tertumpu papan kekunci yang boleh disesuaikan sepenuhnya, ketersediaan fungsi tetikus menjadikannya lebih baik. Selain daripada kekunci papan kekunci biasa, semua acara tetikus juga boleh dipetakan dalam Vim. Sebagai contoh, jika anda ingin memetakan klik dua kali kanan dan klik dua kali kiri untuk melompat tanda ke hadapan dan ke belakang masing-masing, gunakan pemetaan berikut.

:noremap < 2 -Tetikus Kanan > ] `
:noremap < 2 -LeftMouse > [ `

Peristiwa tetikus lain yang boleh dipetakan diberikan dalam jadual berikut.

<2-LeftMouse>
<2-Tetikus Kanan>
<3-LeftMouse>
<3-Tetikus Kanan>
<4-LeftMouse>
<4-Tetikus Kanan>

Cara Memetakan dengan Kunci Pemimpin dalam Vim

Pemetaan Vim tidak lengkap tanpa kunci pemimpin. Kunci ketua ialah kunci lalai yang boleh digunakan untuk memetakan kunci, walaupun ia dipetakan untuk melakukan beberapa tugas lain. Sebagai contoh, jika anda telah memetakan d kekunci untuk memadam semua baris, maka kita boleh memetakan kekunci yang sama untuk memadam hanya 5 baris menggunakan kekunci ketua.

Bagi mereka yang tidak mempunyai kebiasaan, dengan kunci pemimpin Vim. Ia adalah kunci yang diawali dengan kunci lain atau set kunci untuk perintah atau operasi pemetaan. Kunci pemimpin lalai Vim ialah garis miring ke belakang (\), tetapi ia boleh disesuaikan.

Sebagai contoh, yang dd arahan digunakan untuk memadam baris di bawah kursor. Jika anda ingin memetakan dd perintah untuk memadam semua baris dalam fail, maka anda boleh menggunakan kunci pemimpin.

:noremap < Ketua > dd ggVGd

Sekarang, apabila anda menekan butang \dd kunci, semua baris dalam fail akan dipadamkan. Anda boleh mengaitkan kunci pemimpin Vim sebagai kunci kawalan pada Windows atau kunci arahan dalam macOS.

Cara Memetakan Fungsi Vimscript

Editor Vim tidak terhad kepada arahan atau operasi. Terdapat keseluruhan bahasa pengaturcaraan di sekitar Vim untuk mencipta fungsi tersuai yang dipanggil Vimscript. Anda boleh membuat skrip atau fungsi dengan mudah dan memetakannya ke kunci. Sebagai contoh, mari buat fungsi yang akan membolehkan tetapan seperti nombor baris, fungsi tetikus dan lebar teks.

fungsi Tetapan Saya ( )
ditetapkan nombor
ditetapkan tetikus =a
ditetapkan lebar teks = 80
fungsi akhir

Letakkan fungsi ini dalam fail vimrc.

Mari petakan fungsi ini dengan ketua dan kekunci s. saya akan guna

:noremap < Ketua > s : panggil MySettings ( ) < CR >

Sekarang, apabila anda menekan butang \s kekunci, fungsi akan dipanggil dan sebarang fungsi di dalam fungsi akan dilaksanakan.

Catatan : Huruf pertama nama fungsi hendaklah sentiasa menggunakan huruf besar semasa mencipta fungsi tersuai dalam Vim.

Cara Memetakan Perintah Luaran dalam Vim

Perintah luaran juga boleh dipetakan dalam Vim. Perintah luaran merujuk kepada arahan Linux atau Unix. Sebagai contoh, jika anda ingin memetakan luaran menyusun arahan untuk mengisih semua baris dalam penimbal semasa ke F1 kunci, gunakan arahan berikut.

:noremap < F1 > : %! menyusun < CR >

Dengan cara yang sama, jika anda menulis fail skrip dan menjadikannya boleh laku tanpa meninggalkan sesi Vim, anda boleh menggunakan chmod perintah secara dalaman. Sebagai contoh, untuk menjadikan fail semasa boleh laku, anda boleh melaksanakan arahan :!chmod +x % dalam Vim. Jika anda kerap melakukan tugasan ini, maka hanya petakan kunci kepadanya.

:noremap < F1 > : ! chmod +x %

Dalam Vim, sebarang arahan luaran boleh digunakan dengan tanda seru (!).

Bagaimana untuk mengalih keluar Peta Kunci dalam Vim

Untuk mengalih keluar peta kekunci dalam Vim, mula-mula kenal pasti tempat ia ditakrifkan. Seperti yang dibincangkan sebelum ini, peta kunci boleh menjadi penimbal-tempatan dan kekal. Jika peta kunci kekal dan diletakkan dalam fail vimrc, maka hanya mengalih keluarnya daripada fail akan menyahpetakan kunci.

Jika pemetaan dilakukan dalam penimbal semasa, maka ia boleh dialih keluar menggunakan : nyahpeta atau : nyahpeta! arahan.

  • : nyahpeta untuk mengosongkan peta kekunci mod biasa, visual, pilih atau pengendali yang belum selesai
  • : nyahpeta! untuk mengosongkan peta kekunci mod sisipan dan baris arahan

Sebagai contoh, untuk mengalih keluar kunci, gunakan : nyahpeta . Selain itu, penyingkiran kekunci boleh menjadi mod khusus. Jika anda ingin mengalih keluar peta mod biasa, gunakan :nunmap . Perintah khusus mod lain untuk mengalih keluar peta kekunci disebut di bawah:

:nunmap Untuk mengalih keluar peta biasa mod
:iunmap Untuk mengalih keluar peta masukkan mod
:vunmap Untuk mengalih keluar peta visual dan pilih mod
: peta matahari Untuk mengalih keluar peta pilih mod
:xunmap Untuk mengalih keluar peta visual mod
:cunmap Untuk mengalih keluar peta baris arahan mod
:ounmap Untuk mengalih keluar peta pengendali belum selesai mod

Untuk mengalih keluar semua peta dalam penimbal semasa, gunakan :mapclear perintah.

:mapclear

Perintah di atas akan mengosongkan semua peta kekunci mod biasa, visual, pilih atau pengendali belum selesai.

Untuk mengosongkan semua peta kekunci mod sisip dan baris arahan gunakan:

:mapclear !

Ambil perhatian bahawa arahan Vim lalai tidak boleh jelas, bagaimanapun, yang boleh dilumpuhkan menggunakan : nyahpeta perintah dengan . Contohnya, jika anda ingin melumpuhkan fungsi dd yang memadamkan baris di bawah kursor, kemudian gunakan :unmap dd .

: nyahpeta dd < Tidak >

dd tidak akan berfungsi lagi dalam penimbal semasa. Menggunakan kaedah ini, sebarang peta kunci boleh dilumpuhkan untuk sesi semasa.

Lembaran Cheat Pemetaan Kunci Vim

Imej berikut menyediakan senarai semua arahan dan mod khusus mereka untuk rujukan.

Kesimpulan

Pemetaan kunci Vim ialah cara yang berguna untuk mengautomasikan tugasan anda, pengikatan kunci yang kerap digunakan, arahan dan operasi lain. Ia adalah topik yang pelbagai dan dalam panduan ini, saya merangkumi semua aspek utama yang berkaitan dengan pemetaan utama dalam Vim. Daripada sintaks umum kepada mencipta peta kunci asas dan sehinggalah kepada memetakan fungsi Vimscript lanjutan dan arahan luaran. Untuk mengetahui lebih lanjut tentang pemetaan kunci Vim, gunakan :membantu pemetaan kunci arahan dalam Vim.