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
- Vim Argumen Khas
- Mencipta Peta Kunci Asas
- Menyenaraikan Peta Kunci
- Menjadikan Peta Kunci Kekal
- Mengelakkan Rekursi
- Mencipta Peta Kunci Khusus Mod
- Cara Memetakan Peristiwa Tetikus
- Cara Memetakan dengan Leader Key dalam Vim
- Cara Memetakan Fungsi Vimscript
- Cara Memetakan Perintah Luaran dalam Vim
- Bagaimana untuk mengalih keluar Peta Kunci dalam Vim
- Lembaran Cheat Pemetaan Kunci Vim
- Kesimpulan
Sintaks
Untuk memetakan kunci dalam Vim, sintaks berikut digunakan:
Dalam sintaks di atas:
|
nmap, imap, vmap, xmap, cmap atau omap |
|
|
|
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,
*Dalam sintaks di atas, bahagian
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
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,
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.
: petaUntuk 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 3jddDalam 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 3jddSaya 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 > ggVGySeperti 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 > ggVGyLetakkannya 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
Sekarang, apabila saya menekan butang ctrl+x kunci, ia akan mencetak 3ddi perintah bukannya melaksanakannya.
Untuk membetulkannya, saya akan memasukkan
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.
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 > 3jSekarang, 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
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 ggVGdSekarang, 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
: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.
:mapclearPerintah 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
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.