Plugin
Vim memiliki ekosistem plugin yang memungkinkan kamu memperluas fungsionalitas Vim. Di Vim, plugin tidak lebih dari sekadar sebuah Vimscript yang diproses secara otomatis pada saat Vim dimulai.
Kamu dapat menggunakan perintah :scriptnames
untuk melihat daftar script yang dieksekusi oleh Vim saat ini. Umumnya, Vim akan membaca terlebih dahulu konfigurasi yang kita tulis (di ~/.vimrc
atau ~/_vimrc
), dan berikutnya memproses beberapa plugin-plugin bawaan Vim.
Pada versi 8 atau lebih tinggi, Vim memiliki plugin manager bawaan bernama packages. Sederhananya ini hanyalah sebuah direktori yang dapat kita gunakan menaruh plugin-plugin yang kita inginkan. Semua plugin tersebut akan diproses otomatis saat Vim dimulai.
Jadi selain memproses fail konfigurasi vimrc, dan plugin-plugin bawaan, Vim juga akan memproses script atau plugin-plugin yang berada di dalam direktori ~/.vim/pack/*/start
pada Unix atau Unix-like (~/vimfiles/pack/*/start
untuk Windows) secara otomatis pada saat Vim dimulai.
Buatlah direktori dengan nama pack pada lokasi seperti ini:
~/.vim/pack
Untuk Windows:
~/vimfiles/pack
Struktur direktori untuk plugin yang direkomendasikan oleh Vim adalah seperti ini:
~/.vim/pack/namaplugin/start/namaplugin
Untuk Windows:
~/vimfiles/pack/namaplugin/start/namaplugin
Sebagai contoh, sekarang kita akan mencoba untuk memasang plugin bernama emmet-vim (https://github.com/mattn/emmet-vim (opens in a new tab)).
Dengan plugin tersebut, kita dapat menulis kode HTML dengan sintaksis yang terinspirasi dari CSS.
Misal, kamu menulis singkatan kode berikut:
ul>li*5
Dengan Emmet, kamu dapat mengkonversi kode tersebut menjadi:
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
VS Code secara bawaan sudah memiliki plugin ini terpasang, apabila kamu belum tahu.
Untuk memasang plugin Emmet di Vim, kita perlu mengunduh repository dari plugin tersebut. Untuk itu, kita dapat menggunakan Git atau mengunduh fail Zip-nya. Sebelum, melakukan kloning, kita perlu membuat direktori untuk menaruh plugin Emmet.
Buatlah direktori baru bernama start di dalam direktori baru bernama emmet, seperti ini:
~/.vim/pack/emmet/start
Untuk Windows:
~/vimfiles/pack/emmet/start
Sekarang saatnya clone repository dengan Git:
git clone --depth 1 https://github.com/mattn/emmet-vim
~/.vim/pack/emmet/start/emmet
Atau unduh fail Zip-nya di Github:
https://github.com/mattn/emmet-vim (opens in a new tab)
Lalu ekstrak fail tersebut dan akan ada direktori benama emmet-vim-master, pindahkan direktori tersebut ke dalam direktori ~/.vim/pack/emmet/start (~/vimfiles/pack/emmet/start
untuk Windows) dan ubah nama direktori tersebut dari emmet-vim-master menjadi emmet, seharusnya seperti ini:
~/.vim/pack/emmet/start/emmet
Atau untuk Windows:
~/vimfiles/pack/emmet/start/emmet
Di dalam direktori tersebut terdapat banyak fail dan direktori.
Sekarang kita dapat membuka Vim, apabila kamu sedang membukanya, lebih baik menutup dan membuka Vim kembali.
Untuk mencobanya, kita dapat menggunakan kode singkatan berikut:
html:5
Pastikan posisi kursor kamu berada di akhir singkatan, dalam contoh ini adalah angka 5
. Kemudian gunakan tombol kombinasi CTRL-y
dan disambung dengan tombol ,
.
Hasilnya akan seperti ini:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
</body>
</html>
Kamu dapat memeriksa dokumentasi Emmet (opens in a new tab) untuk mengeksplor singkatan-singkatan yang lain.
Kembali lagi ke konsep plugin di Vim.
Sekarang kita sudah berhasil memasang satu plugin di Vim dan menggunakan struktur direktori yang direkomendasikan oleh Vim. Sebenarnya kita bisa menyederhanakan struktur direktori untuk menaruh plugin-plugin pihak ketiga yang kita pasang. Seperti ini misalnya:
~/.vim/pack/vendor/start
Untuk Windows:
~/vimfiles/pack/vendor/start
Kita dapat menaruh plugin-plugin di dalam direktori tersebut. Istilah "vendor" digunakan sebagai indikator bahwa direktori tersebut berisi plugin-plugin pihak ketiga yang bukan ditulis olehmu.
Selain itu, seandainya kita tidak ingin sebuah plugin diproses secara otomatis oleh Vim saat Vim dibuka, kita dapat mengubah nama direktori start menjadi opt. Untuk mengaktifkannya, kita dapat menggunakan perintah :packadd
.
Misal, sebelumnya kita memiliki direktori untuk plugin Emmet seperti ini:
~/.vim/pack/emmet/start/emmet
Untuk Windows:
~/vimfiles/pack/emmet/start/emmet
Kita dapat mengubah namanya menjadi:
~/.vim/pack/emmet/opt/emmet
Untuk Windows:
~/vimfiles/pack/emmet/opt/emmet
Sekarang plugin tersebut tidak diproses oleh Vim secara otomatis. Kita dapat menggunakan perintah :packadd emmet
untuk mengaktifkannya.
Begitulah cara yang paling dasar mengelola plugin di Vim. Umumnya pengguna Vim menggunakan package manager pihak ketiga untuk mengelola plugin yang lebih mudah, seperti:
-
vim-plug (https://github.com/junegunn/vim-plug (opens in a new tab))
-
pathogen.vim (https://github.com/tpope/vim-pathogen (opens in a new tab))
-
vundle.vim (https://github.com/VundleVim/Vundle.vim (opens in a new tab))
Setidaknya ketiga itu yang sering kedengaran namanya. Selain itu, mungkin kamu dapat bereksplorasi lagi.
Selain plugin Emmet yang kita pasang tadi, terdapat banyak sekali plugin-plugin Vim yang dapat kita pasang. Mulai yang memiliki fungsionalitas, atau hanya sebagai estetika saja.
-
fzf.vim: sebuah wrapper Vim untuk command-line fuzzy finder
-
NERDTree: sebuah plugin untuk tree eksplorer
-
vim-airline: sebuah plugin untuk menampilkan baris status dan baris tab
-
coc.nvim: sebuah autocompletion dan language server untuk Vim dan Neovim
Kamu dapat mengunjungi Vim Awesome (opens in a new tab) untuk mendapatkan daftar yang lebih lengkap.