Cara Memetakan Kunci di Vim

Cara Memetakan Kunci Di Vim



Di Vim, pemetaan kunci adalah proses menetapkan sekumpulan kunci atau perintah ke kunci tertentu untuk melakukan tugas tertentu. Misalnya, untuk memilih semua baris dalam file Anda menggunakan ggVG perintah, dan Anda harus menekan empat tombol untuk melakukannya. Bagaimana jika melakukannya hanya dengan satu penekanan tombol? Di sinilah pemetaan kunci Vim berguna. Pemetaan kunci adalah cara mengotomatiskan banyak tugas yang sering dilakukan di Vim. Dan Anda pasti pernah mendengarnya; jika Anda melakukan sesuatu lebih dari dua kali, otomatiskan!

Dalam panduan komprehensif ini, saya akan menjelaskan cara memetakan kunci di Vim untuk mengotomatisasi operasi. Dari pembuatan peta kunci dasar hingga pemetaan kunci tingkat lanjut, beserta proses menjadikannya permanen dan menghapusnya.

Sintaksis

Untuk memetakan kunci di Vim, sintaks berikut digunakan:







peta



Dalam sintaks di atas:



peta nmap, imap, vmap, xmap, cmap, atau omap
* , , , , dan
Sisi kiri berisi kunci atau kumpulan kunci yang akan dipetakan
Sisi kanan berisi sekumpulan tombol atau perintah yang akan dijalankan oleh tombol sisi kiri

Pada dasarnya, adalah kunci atau sekumpulan kunci yang akan menjalankan perintah atau operasi pada .





*Dalam sintaks di atas, bagian bersifat opsional.

Argumen Khusus Vim

Argumen Khusus Vim adalah tag yang digunakan untuk memberikan fungsionalitas tambahan pada peta kunci. Argumen ini muncul setelah perintah :map, dan sebelum {rhs} dan {lhs}.



Misalnya, untuk membuat buffer peta khusus, gunakan argumen khusus dengan cara berikut:

:peta < penyangga > < C-a > ggVG
Untuk menyembunyikan pesan bergema dari peta kunci
Untuk membuat buffer peta menjadi spesifik (unik untuk buffer saat ini)
Untuk menunjukkan bahwa peta adalah bagian dari skrip atau plugin
*Digunakan untuk menentukan tombol khusus untuk pemetaan menggunakan notasi <> (Tombol fungsi, kontrol, shift, dan tombol non-abjad lainnya)
Hal ini menunjukkan sisi kiri pemetaan adalah sebuah ekspresi dan harus dievaluasi untuk mendapatkan sisi kanan
Untuk membuat peta unik di antara peta lokal dan global
Untuk melewati menunggu karakter perintah berikutnya di peta

Notasi kunci khusus Vim disebutkan pada gambar berikut.

Misalnya, jika Anda ingin menggunakan tombol spasi dalam pemetaan kunci, notasi akan digunakan.

Membuat Peta Kunci Dasar di Vim

Mari kita pahami pemetaan kunci Vim dengan contoh dasar. Saya ingin memetakan perintah pilih semua baris ( ggVG ) ke ctrl+a kunci. Untuk memetakan kunci ctrl+a, saya akan menjalankan perintah berikut di Vim.

:peta < C-a > ggVG

Di Sini, menandakan ctrl Dan A kunci, sementara ggVG adalah perintah untuk memilih semua baris dalam file. Itu :peta kata kuncinya adalah untuk pemetaan mode normal secara default, namun demikian :nmap juga dapat digunakan secara eksplisit untuk normal mode.

Demikian pula, untuk memetakan fungsi sakelar nomor baris dengan F1 penggunaan kunci:

:peta < F1 > : tetapkan nomor !

Sekarang, ketika Anda menekan tombol F1, nomor baris akan diaktifkan, dan menekannya lagi akan menonaktifkannya.

Perhatikan bahwa metode ini hanya akan memetakan kunci di buffer saat ini dan akan dihapus setelah buffer ditutup.

Mendaftarkan Peta Kunci

Untuk membuat daftar semua pemetaan kunci mode normal, visual, dan operator tertunda, gunakan perintah :map.

:peta

Untuk membuat daftar pemetaan kunci menyisipkan Dan garis komando mode, gunakan :map! Memerintah.

:peta !

Untuk membuat daftar pemetaan kunci mode tertentu, cukup ketikkan huruf awal mode sebelum kata kunci peta.

:nmap Untuk menampilkan peta mode normal
: peta Untuk menampilkan peta mode penyisipan
:vmap Untuk menampilkan peta visual dan pilih mode
: peta Untuk menampilkan peta mode pilih
:xpeta Untuk menampilkan peta mode visual
:cmap Untuk menampilkan peta mode baris perintah
:omap Untuk menampilkan peta mode operator yang tertunda

Selain itu, untuk membuat daftar semua peta termasuk peta plugin dengan jalur, gunakan :peta verbose memerintah.

:peta verbose

Untuk kunci tertentu, cukup sebutkan kuncinya dalam perintah ( :peta verbose ).

Menjadikan Keymaps Permanen

Peta kunci yang disebutkan di bagian atas hanya akan memetakan kunci di buffer saat ini. Untuk menjadikan pemetaan kunci Vim permanen, peta harus ditempatkan di file vimrc.

Perhatikan bahwa saat menempatkan peta kunci di vimrc file, jangan tambahkan titik dua (:) sebelum peta memerintah.

Setelah menempatkan keymap di vimrc file, simpan dan keluar menggunakan perintah :wq atau menggunakan tombol shift+zz. Peta kunci ditempatkan di vimrc File akan bersifat global dan dapat digunakan di semua sesi Vim. Namun, peta kunci tertentu dapat dinonaktifkan untuk sementara jika memengaruhi pekerjaan di sesi saat ini, lihat bagian Cara Menghapus Peta Kunci di Vim di bawah.

Itu vimrc adalah file pengaturan Vim yang berisi berbagai perintah dan pengaturan. Itu hadir di /usr/bagikan/vim/ direktori di macOS dan /etc/vim di Linux. Penting untuk dicatat bahwa vimrc file di direktori yang disebutkan adalah file khusus sistem. Anda juga dapat mengedit file-file ini untuk pemetaan kunci, tetapi saya akan merekomendasikan membuat file khusus pengguna vimrc file di direktori home.

Menghindari Rekursi

Sebelum melanjutkan, penting untuk mempelajari tentang rekursi dalam pemetaan kunci Vim. Kekurangannya dan cara mencegahnya. Hal ini dapat dipahami melalui penggunaan contoh.

:peta DD 3jdd

Dalam contoh di atas, saya telah memetakan DD tombol untuk turun sebanyak 3 baris dan menghapus baris di bawah kursor. Sekarang, ketika saya menekan DD , ia akan mencoba mengeksekusi peta 3jdd . Vim akan menafsirkannya DD perintah sebagai peta dan jalankan peta berulang kali, seperti yang ditunjukkan pada gambar berikut.

Catatan : Rekursi dapat membekukan editor Vim. Untuk mencairkannya, tekan ctrl+c kunci.

Untuk menghindari rekursi, ganti peta kata kunci dengan peta norma , Di mana ' tidak ' cara non-rekursif . Saya akan menggantinya peta kata kunci dengan peta norma untuk memperbaiki rekursi pada keymap di atas.

: peta norma DD 3jdd

Saya akan merekomendasikan penggunaan peta norma alih-alih peta untuk menghindari pembuatan pemetaan rekursif secara tidak sengaja.

Membuat Peta Kunci Khusus Mode

Vim telah membuat pemetaan kunci sangat serbaguna sehingga bahkan peta kunci dari mode tertentu dapat dibuat dengan cukup mudah. Misalnya, jika Anda telah membuat peta kunci untuk mode penyisipan menggunakan F1 kuncinya, maka Anda dapat memetakannya F1 kunci dalam mode lain untuk operasi yang benar-benar baru.

Dalam contoh berikut, saya telah memetakan F1 kunci untuk menghapus 3 baris di normal mode dan tarik 3 baris di menyisipkan mode.

:nmap < F1 > ke-3
: peta < F1 > < C-t >

Peta pertama menghapus tiga baris dalam mode normal ketika menekan tombol F1, sedangkan peta kedua menambahkan satu lekukan pada baris saat ini ketika dalam mode penyisipan menggunakan tombol yang sama. Sekarang, mari kita pahami pemetaan di setiap mode.

Pemetaan Mode Normal

Untuk menerapkan peta dalam mode normal, gunakan saja nmap kata kunci. Misalnya untuk menyalin semua baris dalam suatu file menggunakan ctrl+c kunci, saya akan menggunakan perintah berikut.

:nmap < C c > ggVGy

Seperti yang dibahas sebelumnya, praktik terbaik adalah menggunakan metode non-rekursif untuk memetakan kunci, oleh karena itu, saya akan menggantinya nmap dengan peta tak dikenal kata kunci.

:noremap < C c > ggVGy

Tempatkan tanpa titik dua (:) pada vimrc file untuk menjadikannya peta kunci permanen.

saya akan gunakan peta norma bukannya peta dalam contoh berikut.

Sisipkan Pemetaan Mode

Untuk memetakan kunci untuk mode penyisipan, cukup gunakan Saya alih-alih N . Misalnya, dalam mode penyisipan, ctrl+p Dan ctrl+n kunci digunakan untuk melengkapi kata secara otomatis berdasarkan pencocokan mundur dan maju. Untuk memetakan ctrl+p kunci dengan tombol tab, saya akan menggunakan perintah berikut.

: peta inore < tab > < Cp >

Lebih penting lagi, jika Anda ingin memetakan mode menunggu operator perintah di modus penyisipan , maka Anda perlu memasukkan tombol di sisi kanan untuk keluar dari mode penyisipan untuk menjalankan perintah tersebut. Misalnya pada keymap berikut, saya ingin menghapus 3 baris menggunakan ctrl+x tombol dan masuk kembali ke mode penyisipan.

: peta inore < Cx > 3ddi

Sekarang, ketika saya menekan ctrl+x kunci, itu akan mencetak 3ddi perintah alih-alih menjalankannya.

Untuk memperbaikinya, saya akan memasukkan sebelum 3ddi memerintah.

: peta inore < Cx > < ESC > 3ddi

Sekarang, perintah akan menjalankan simpan saya dalam mode penyisipan.

Banyak laptop mini tidak memilikinya ESC kunci, yang penting untuk keluar dari mode saat ini. Jadi, untuk memetakan ESC kunci untuk keluar dari mode penyisipan, pemetaan kunci dapat digunakan. Dalam contoh berikut, saya menggunakan mantan tombol untuk keluar ke mode normal.

:inoremap ex < ESC >

Saat Anda menekan dengan cepat mantan tombol mode penyisipan akan keluar, sehingga memasuki mode normal.

Pemetaan Mode Visual

Mode visual adalah mode yang sangat penting untuk memilih teks di editor Vim. Selain pemilihan dasar, mode visual memiliki mode berbeda lainnya seperti mode garis visual, dan mode blok visual.

Dalam mode visual, tilde (~) digunakan untuk mengganti kasus. Untuk menggunakan tanda gelombang (~), Anda harus menekan kedua tombol tersebut (bergeser+~) . Dalam contoh berikut, saya memetakan kunci c modus visual untuk memilih kata di bawah kursor dan mengubah huruf besar/kecilnya.

:vnoremap c iw~

Sekarang, tekan v untuk masuk ke mode visual dan tekan tombol c untuk mengganti kata di bawah kursor seperti yang ditunjukkan pada GIF berikut.

Pemetaan Mode Baris Perintah

Banyak perintah penting Vim hanya berfungsi dalam mode baris perintah. Misalnya untuk menyimpan file :Di dalam Perintah ini juga digunakan untuk menyimpan dan keluar :wq perintah digunakan. Semua operasi tab dan pemisahan juga dilakukan dalam mode baris perintah. Misalnya, untuk membuat tab baru, : bawahan perintah digunakan. Nah, untuk membuat tab dengan cepat, ctrl+t kunci sudah cukup.

:cnoremap < C-t > subjek < Kr >

Sekarang, tekan titik dua (:) untuk masuk ke mode baris perintah dan kemudian ctrl+t untuk membuka tab baru; ini jauh lebih cepat daripada mengetik keseluruhannya subjek perintah dan Kembali kunci.

Membuat Perintah Kustom Vim
Memasuki mode perintah untuk mengeksekusi peta tampaknya kurang bermanfaat. Tapi Anda bisa membuat perintah khusus Anda sendiri di Vim menggunakan :memerintah pilihan. Fitur ini sangat mirip dengan pemetaan kunci Vim. Misalnya, untuk membuat perintah cepat untuk mengatur nomor baris dan lebar teks menjadi 80, gunakan perintah berikut.

:perintah Mycmd :set nomor lebar teks = 80

Sekarang, masuk ke mode perintah dan jalankan : Cmd saya memerintah.

Pemetaan Mode Tertunda Operator

Mode operator tertunda adalah mode di mana Vim menunggu perintah gerak setelah tombol operator ditekan. Operator yang umum adalah y, d, dan c. Misalnya untuk menghapus baris saat ini dan 3 baris berikutnya, Anda akan menggunakan operator d dengan 3j gerak (d3j). Anda tidak dapat menekan tombol-tombol ini secara bersamaan untuk mencapai pengoperasian yang diinginkan.

Mode ini umumnya digunakan untuk memetakan gerakan. Mari memetakan gerakan yang akan memilih garis saat ini dan 3 garis yang diikutinya.

: peta onore < F2 > 3j

Sekarang, untuk menarik baris saat ini dan 3 baris yang diikutinya gunakan theF2 kunci, dengan cara yang sama, D operator juga dapat diterapkan.

Hal penting lainnya yang perlu diingat adalah jika Anda menambahkan hitungan ke gerakan yang dipetakan yang disebutkan di atas, katakanlah 2 , peta akan menganggapnya sebagai 23j, bukan 6j. Untuk memperbaikinya, ekspresi register “= dapat digunakan. Peta di atas dapat dimodifikasi sebagai @='3j' .

: peta onore < F2 > @ ='3j' < Kr >

Cara Memetakan Peristiwa Mouse

Meskipun Vim adalah editor teks keyboard-centric yang dapat disesuaikan sepenuhnya, ketersediaan fungsionalitas mouse menjadikannya lebih baik. Selain tombol keyboard normal, semua event mouse juga dapat dipetakan di Vim. Misalnya, jika Anda ingin memetakan klik dua kali kanan dan klik dua kali kiri untuk melompati tanda maju dan mundur, gunakan pemetaan berikut.

: peta norma < 2 -Tikus Kanan > ] `
: peta norma < 2 -Mouse sebelah kiri > [ `

Peristiwa mouse lainnya yang dapat dipetakan diberikan dalam tabel berikut.

<2-KiriMouse>
<2-Tikus Kanan>
<3-KiriMouse>
<3-Tikus Kanan>
<4-KiriMouse>
<4-Tikus Kanan>

Cara Memetakan dengan Kunci Pemimpin di Vim

Pemetaan vim tidak lengkap tanpa kunci pemimpin. Kunci pemimpin adalah kunci default yang dapat digunakan untuk memetakan kunci, meskipun kunci tersebut dipetakan untuk melakukan beberapa tugas lainnya. Misalnya, jika Anda telah memetakan D kunci untuk menghapus semua baris, maka kita dapat memetakan kunci yang sama untuk menghapus hanya 5 baris menggunakan kunci pemimpin.

Bagi mereka yang belum familiar, dengan kunci pemimpin Vim. Ini adalah kunci yang diawali dengan kunci lain atau kumpulan kunci untuk memetakan perintah atau operasi. Kunci pemimpin default Vim adalah garis miring terbalik (\), tetapi dapat disesuaikan.

Misalnya, DD perintah digunakan untuk menghapus baris di bawah kursor. Jika Anda ingin memetakan DD perintah untuk menghapus semua baris dalam file, maka Anda dapat menggunakan kunci pemimpin.

: peta norma < Pemimpin > DD ggVGd

Sekarang, setiap kali Anda menekan \DD kuncinya, semua baris dalam file akan dihapus. Anda dapat mengatribusikan kunci pemimpin Vim sebagai kunci kontrol di Windows atau kunci perintah di macOS.

Cara Memetakan Fungsi Vimscript

Editor Vim tidak terbatas pada perintah atau operasi. Ada seluruh bahasa pemrograman di sekitar Vim untuk membuat fungsionalitas khusus yang disebut Vimscript. Anda dapat dengan mudah membuat skrip atau fungsi dan memetakannya ke sebuah kunci. Misalnya, mari buat fungsi yang mengaktifkan pengaturan seperti nomor baris, fungsionalitas mouse, dan lebar teks.

fungsi Pengaturan Saya ( )
mengatur nomor
mengatur mouse =a
mengatur lebar teks = 80
fungsi akhir

Tempatkan fungsi ini di file vimrc.

Mari petakan fungsi ini dengan tombol pemimpin dan s. saya akan gunakan

: peta norma < Pemimpin > s :panggil Pengaturan Saya ( ) < Kr >

Sekarang, setiap kali Anda menekan \S kunci, fungsi akan dipanggil dan fungsionalitas apa pun di dalam fungsi tersebut akan dijalankan.

Catatan : Huruf pertama nama fungsi harus selalu menggunakan huruf kapital saat membuat fungsi khusus di Vim.

Cara Memetakan Perintah Eksternal di Vim

Perintah eksternal juga dapat dipetakan di Vim. Perintah eksternal mengacu pada perintah Linux atau Unix. Misalnya jika Anda ingin memetakan eksternal menyortir perintah untuk mengurutkan semua baris di buffer saat ini ke F1 kuncinya, gunakan perintah berikut.

: peta norma < F1 > : %! menyortir < Kr >

Dengan cara yang sama, jika Anda menulis file skrip dan membuatnya dapat dieksekusi tanpa meninggalkan sesi Vim, Anda dapat menggunakan chmod perintah secara internal. Misalnya, untuk membuat file saat ini dapat dieksekusi, Anda dapat menjalankan perintah :!chmod +x % di Vim. Jika Anda sering melakukan tugas ini, cukup petakan kuncinya.

: peta norma < F1 > : ! chmod +x %

Di Vim, perintah eksternal apa pun dapat digunakan dengan tanda seru (!).

Cara Menghapus Peta Kunci di Vim

Untuk menghapus peta kunci di Vim, pertama-tama identifikasi di mana peta kunci itu didefinisikan. Seperti yang telah dibahas sebelumnya, peta kunci dapat bersifat buffer-lokal dan permanen. Jika peta kunci bersifat permanen dan ditempatkan di file vimrc, maka menghapusnya dari file saja akan menghapus peta kunci tersebut.

Jika pemetaan dilakukan di buffer saat ini, maka pemetaan tersebut dapat dihapus menggunakan : batalkan peta atau : batalkan peta! perintah.

  • : batalkan peta untuk menghapus peta kunci mode normal, visual, pilih, atau operator yang tertunda
  • : batalkan peta! untuk menghapus peta kunci mode penyisipan dan baris perintah

Misalnya saja untuk menghapus kuncinya, gunakan : batalkan peta . Selain itu, pelepasan kunci dapat dilakukan pada mode tertentu. Jika Anda ingin menghapus peta mode normal, gunakan :nunmap . Perintah khusus mode lainnya untuk menghapus peta kunci disebutkan di bawah:

:nunmap Untuk menghapus peta normal mode
:iunmap Untuk menghapus peta menyisipkan mode
:vunmap Untuk menghapus peta visual Dan Pilih mode
: peta matahari Untuk menghapus peta Pilih mode
:xunmap Untuk menghapus peta visual mode
:cunmap Untuk menghapus peta garis komando mode
:ounmap Untuk menghapus peta operator tertunda mode

Untuk menghapus semua peta di buffer saat ini, gunakan : jelas memerintah.

: jelas

Perintah di atas akan menghapus semua peta kunci dari mode normal, visual, pilih, atau operator yang tertunda.

Untuk menghapus semua peta kunci mode penyisipan dan baris perintah, gunakan:

: jelas !

Perhatikan bahwa perintah Vim default tidak dapat jelas, namun dapat dinonaktifkan menggunakan : batalkan peta perintah dengan . Misalnya, jika Anda ingin menonaktifkan fungsionalitas dd yang menghapus garis di bawah kursor, gunakan :unmap dd .

: batalkan peta DD < Tidak >

dd tidak lagi berfungsi di buffer saat ini. Dengan menggunakan metode ini, peta kunci apa pun dapat dinonaktifkan untuk sesi saat ini.

Lembar Cheat Pemetaan Kunci Vim

Gambar berikut menyediakan daftar semua perintah dan mode spesifiknya untuk referensi.

Kesimpulan

Pemetaan kunci Vim adalah cara praktis untuk mengotomatiskan tugas Anda, pengikatan kunci yang sering digunakan, perintah, dan operasi lainnya. Ini adalah topik yang beragam dan dalam panduan ini, saya membahas semua aspek utama yang terkait dengan pemetaan kunci di Vim. Dari sintaksis umum hingga membuat peta kunci dasar dan hingga memetakan fungsi Vimscript tingkat lanjut dan perintah eksternal. Untuk mempelajari lebih lanjut tentang pemetaan kunci Vim, gunakan : bantuan pemetaan kunci perintah di Vim.