Termakan Rayuan
Entah gombal atau tidak, yang pasti saya termakan rayuan temen-temen dibeberapa grup perpesanan Telegram. Saya sudah menggunakan Vim
dari tahun 2010-an. Cukup lama, kalau mempertimbangkan saat post ini dibuat. Selama 11 tahun menggunakan Vim
hanya sebagai komplementer saja, penyedap buat ketak-ketik diterminal. Text editor kegemaran saya ini, belum pernah digunakan untuk kerja paksa. Saya memang pencinta perawan, eh… vanilla untuk konfigurasi.
Jarang sekali saya mengubah konfigurasi aplikasi-aplikasi yang saya gunakan, jika memang tidak ada kebutuhan khusus. Hal ini bukan tanpa alasan, kalo dijabarkan alasannya kira-kira seperti ini:
- Konfigurasi non-standar akan menyulitkan untuk saya yang suka bertualang lingkungan kerjanya, pindah dari satu mesin ke mesin yang lain.
- Kustomisasi biasanya “menghabiskan waktu”.
- Malas. Alasan yang paling kuat yang selalu menjadi benteng dari rayuan-rayuan maut siapa saja.
Alasan-alasan tersebutlah yang selalu membuat saya menghindari custom config, kecuali memang sudah tidak ada jalan lain. Rayuan maut itu berawal saat saya mulai intense mengetik dengan Latex karena tuntutan pekerjaan. Tidak ada masalah yang besar sebenarnya. Saya menggunakan dua plugins untuk mempermudah pengeditan berkas .tex
dengan vim, Vim-latex
dan VimTex
, semuanya berjalan mulus, sudah ada autocompletion
, snippets
, dan live preview
, seharusnya sudah cukup untuk memudahkan pengeditan. Entah kenapa, ada perasaan tergelitik untuk melempar pertanyaan “Plugin apa saja yang temen-temen gunakan, untuk pengeditan latex di Vim?" di grup Belajar OOT GNU/Linux.Setelah ber-OOT ria, dan memastikan bahwa temen-temen yang ditanya menggunakan TexLab
sebagai plugin, bukannya menjalankan plugin tersebut, saya malah tergoda untuk “kembali” menggunakan NeoVim
. “Kembali…???", bukannya post ini bertema inisiasi?
Sudah tidak ingat pastinya dari versi berapa, tapi NeoVim
selalu saya pasang disetiap instalasi sekedar untuk jadi pajangan dan untuk dilirik-lirik. Pernah kecewa dengan NeoVim
kala pertama menggunakan dulu. Saat membuka berkas besar, NeoVim
terasa freeze
. Padahal, berkas yang sama lancar saja dibuka dengan Vim
. Tak pernah cari tahu penyebabnya. Lagi-lagi…, Malas. Hanya saja kali ini, para “sales” itu sudah berhasil. Entah gendam atau pelet apa yang mereka gunakan? Ahh… sudahlah! Saya pasrah, mumpung rasa malas yang biasanya hadir belum datang.
Ekspektasi
Tidak muluk, karena berawal dari pertanyaan plugin Vim
untuk Latex, inisiasi ini tidak terlalu banyak konfigurasi yang saya inginkan; penggunaaan normal; sedikit informatif; bisa dioperasikan untuk pengeditan Latex. Cukup. Jika disesuaikan dengan NeoVim
mungkin seperti ini:
- Manajemen plugins.
- Nomor baris.
- Cursor highlight.
- Filetype dan syntax highlight.
- Tab dan indentasi 2 karakter secara default.
- Skema warna “strawberry” favorit saya.
- Status line, di
Vim
bikin sendiri, kali ini biar simpel, pake Lightline saja. - VimTex
- TexLab
Segitu aja dulu ekspektasinya, selanjutnya tinggal dicocokin sama kenyataanya. Karna seringkali “Ekspektasi tidak sesuai dengan kenyataan”. Hiahiahiahaiahihaha…
Kenyataan
Manajemen Plugins
Untuk manajemen plugins saya pilih VimPlug
. Alasannya? ndak ada alasan apa-apa, kebetulan aja udah pake ini sebelumnya. Proses instalasinya ndak ribet, dokumentasinya jelas ada di halaman github resminya. Buat neovim ya tinggal jalanin perintah:
sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
Selanjutnya, buat direktori ~/.config/plugged
untuk destinasi plugins, dan tambahkan baris berikut pada berkas ~/.config/nvim/init.vim
:
call plug#begin('~/.config/nvim/plugged')
call plug#end()
Nomor Baris
Untuk konfigurasi nomor baris, biasanya saya sekaligus menggunakan nomor relatif, alasannya untuk memudahkan navigasi. Setelah dipikir-dipikir, di-setup NeoVim
ini saya akan menggunakan nomor baris saja, dan membiasakan diri untuk navigasi antar baris, dengan menggunakan command :[nomor_baris]
. Jadi cukup dengan menambahkan baris berikut pada berkas ~/.config/nvim/init.vim
:
set number
Sampai sejauh ini ekspektasi masih sesuai dengan kenyataan.
Cursor Highlight
Cursor hightlight buat saya untuk memudahkan melihat posisi kursor saat mengedit, biasanya saat mengedit kemudian nyruput kopi, mata teralihkan, hightlight ini memudahkan untuk kembali fokus pada posisi kursor terakhir. Untuk menyalakan fitur ini tambah lagi satu baris di ~/.config/nvim/init.vim
set cursorline
Sekarang ada garis yang menandai baris tempat kursor berada. Annoying? sedikit. Biasanya kalo sudah ditambahkan tema yang ciamik dari garis berubah jadi highlight.
Filetype dan Syntax Highlight
Untuk perbandingan, saya coba buka file .tex
sebelum fitur Filetype
dan Syntax
dinyalakan.
Ternyata, eh ternyata di NeoVim
sudah otomatis di-load fitur tersebut. Ekspektasi tidak sesuai dengan kenyataan, kenyataannya lebih bagus. Tidak perlu repot konfigurasi lagi.
Tab dan Indentasi 2 Karakter
Awalnya, dulu masih sering belajar html, css, dan javascript menggunakan Vim
sebagai text editor. Muncullah kebiasaan indentasi 2 karakter, karena level indentansi diberkas HTML
bisa sangat dalam, efeknya untuk layar yang resolusinya kecil, tampilannya bikin sepet mata saya kalo indentasinya lebih dari 2. Lalu bagaimana dengan filetype yang lain? “Belakangan aja ditambahin, kan NeoVimnya mo dipake buat edit Latex saja saat ini”.
Tambahkan baris berikut diberkas ~/.config/nvim/init.vim
:
set tabstop=2 softtabstop=2 shiftwidth=2 expandtab
Tambahan expandtab
untuk menjadikan menggunakan karakter [spasi]
sebagai tab. Tujuannya apa?, “ndak inget lagi, yang pasti ada hubungannya dengan konsistensi”. Sama seperti alasan indentasi 2 karakter, sudah kebiasaan saja.
Skema Warna “Strawberry”
“Ribet ya header-nya pake ditulis nama skema warnanya?”
“Ya iyalah, favorit gitu loh!”
“Kenapa harus ‘Strawberry’?”
“Karna skemanya pink!”
“Kan saya, tampang anak motor, hobi drakor!”
Skema warna “Strawberry” ini, satu-satunya tema merah jambu yang paling cocok buat saya. Susah cari skema terang dengan warna yang sama untuk Vim
, Skema warna ini bisa dicomot dari repositori github nightsense/strawberry. Repositori tersebut sudah diarsipkan. Nah, buat jaga-jaga siapa tahu suatu waktu di-take-down saya _fork_aja lah. Buat nambahin skema warna yang ada di github
ini jadi mudah, karena sudah ada VimPlug
. Tinggal load dan install dengan VimPlug
, dan set skema warnanya di ~/.config/nvim/init.vim
call plug#begin('~/.config/nvim/plugged')
...
Plug 'bringsrain/strawberry'
...
call plug#end()
...
colorscheme strawberry-light
Jalankan perintah PlugInstall
dari dalam NeoVim
.
Tuhkan, sudah ada merah jambunya di-status line, garis buat highlight cursor juga sudah berubah menjadi blok halus seperti background transparan. Sayangnya kalau sedang dalam mode VISUAL
warna latarnya masih monokrom, jadi terlihat kurang apik.
Saya tambahin dikit konfigurasinya biar ciamik saat seleksi mode VISUAL
di berkas ~/.config/nvim/init.vim
:
augroup myhighlight
autocmd!
autocmd ColorScheme * highlight Visual term=reverse cterm=bold,inverse ctermbg=NONE ctermfg=NONE guibg=NONE guifg=NONE
augroup END
Cuakep wessss!!
Status Line dengan Lightline
Jika saat menggunakan Vim
saya mau repot, bikin status line sendiri, kali ini main cepat saja. Install Lightline
dengan `VimPlug:
call plug#begin('~/config/nvim/plugged')
...
Plug 'itchyny/lightline.vim'
...
Nah, tanpa embel-embel status line udah otomatis cakep, tapi warna gelap terlalu kontras buat tema terang macem yang saya gunakan. Wah, alamat panjang nih urusannya mo bikin skema warna sendiri lagi?, “Ndak, kali ini belum mau oprek skema Lightline dulu, ganti tema yang terang aja dulu”. Tambah lagi deh konfigurasi ~/.config/nvim/init.vim
dikit.
let g:lightline = {
\ 'colorscheme': 'wombat',
\ }
Walau ndak merah jambu, yang penting terang dulu, kapan-kapan dioprek. Hiahiahiahiahia…
VimTex
Jika berkaca pada definisi direpositorinya, Vimtex
adalah sebuah plugin filetype dan syntax Latex yang modern untuk Vim
dan NeoVim
. Instalasinya?, VimPlug
Come to the rescue lagi. Tambah satu baris plugin lagi:
Plug 'lervag/vimtex'
Untuk menggunakan Vimtex
, dibawah ini adalah konfigurasi yang saya terapkan untuk memenuhi kebutuhan minimal.
" Set Latex sebagai 'flavour" tex-nya
let g:tex_flavor = 'latex'
"let g:vimtex_enabled = 1
"let g:vimtex_cache_root = '$XDG_CACHE_HOME/vimtex'
" Fungsi _callback_ NeoVim
let g:vimtex_compiler_progname = 'nvr'
" Zathura sebagai _viewer_ untuk Vimtex
let g:vimtex_view_method = 'zathura'
Blok konfigurasi dibawah sudah diperbarui pada pos “Nvim Ganti Engine Latex ke XeLaTex”
" Gunakan Latexmk sebagai alat kompilasi
let g:vimtex_compiler_latexmk = {
\ 'executable' : 'latexmk',
\}
" Konfigurasi mesin kompilasi
let g:vimtex_compiler_latexmk_engines = {
\ '_' : '-pdf',
\ 'pdflatex' : '-pdf',
\ 'lualatex' : '-lualatex',
\ 'xelatex' : '-xelatex',
\}
Screenshot di atas adalah tampilan saat dilakukan seleksi dengan mode VISUAL
, berbeda dengan screenshot sebelumnya. Yang baru, warnanya lebih cakep, dan ini adalah efek syntax dan filetype dari Vimtex
.
TexLab
Khusus yang satu ini, saya putuskan untuk menundanya terlebih dahulu. Sebelum memasang plugin ini, saya ingin mengenal Vimtex
lebih jauh dulu. Setelah membaca dokumentasi Vimtex
, saya sadar, masih banyak yang belum saya manfaatkan fitur-fitur dari Vimtex
selama ini. Jadi saya ingin menghabiskan waktu lebih banyak dengan Vimtex
dulu.