Saya Belajar Vim Selama 1,5 Bulan dan Belum Bisa Keluar!

Diawali dengan iseng-iseng nongkrong di Reddit (r/linux) di malam hari sehabis bekerja, saya menemukan thread yang menarik perhatian saya. Thread di mana orang-orang yang nongkrong di sana sedang asiknya membahas text editor berbasis terminal. Vim!
Saya sempat bertanya-tanya kenapa sih orang pakai text editor jadul ini? Apa sih hebatnya? Apakah mereka tidak tau ada text editor/IDE hebat seperti Sublime Text, Visual Studio Code, Atom atau Jetbrains? Apa mereka hidup di dunia yang berbeda? Dalam bayangan saya, orang-orang yang memakai text editor berbasis terminal adalah para nerds yang tidak punya kehidupan hehehe.

Vim Hanya Untuk Nerd
Jikapun saya harus menggunakan text editor berbasis terminal (misalkan untuk configurasi server) saya selalu lebih memilih Nano. Nano lebih gampang digunakan. Saya tidak kebingungan kalau mau menyimpan file atau keluar dari Nano. Cuma perlu tekan Ctrl + X dan konfirmasi Y atau N. Pekerjaan selesai dan saya bisa kembali rebahan ala anak muda negara +62 pada umumnya.
Tapi Vim, user interfacenya bagi saya benar-benar nyeleneh. Untuk melakukan editing, pengguna harus masuk ke Insert Mode terlebih dahulu dengan menekan I/i. Apabila sudah selesai melakukan editing, lagi-lagi kita perlu menekan Esc untuk kembali ke Normal Mode, kemudian memasukan :w . Dan keluar dari Vim adalah bagian paling susah, kita harus menekan :q!. Bagian ini banyak orang yang dibikin tersesat 😝.

Oleh karena cara penggunaan Vim yang menurut saya ribet seperti di atas, dulu saya selalu menghindari menggunaan Vim.
Berlanjut dari thread Reddit tadi, saya kemudian coba mencari tahu, kenapa sih orang memakai Vim, siapa mereka, apa pekerjaan mereka, dan apa yang biasanya mereka kerjakan dengan Vim.
Hasilnya? Seperti membuka cakrawala baru di kepala saya. Saya tidak menyangka Vim begitu banyak digunakan oleh programmer seperti saya. Orang-orang Yang mengerjakan pekerjaan yang sama seperti saya. Dan, orang yang memakai OS yang sama dengan Saya (MacOS dan Linux). Banyak video vim tersebar di Youtube, artikelnya, forumnya, bahkan ada konferensinya juga!
Setelah nyangkut di berbagai forum, akhirnya saya menemukan jawabannya. Jawaban singkat kenapa banyak programmer menggunakan Vim. Jawabannya adalah kecepatan dan efisiensi.
Saya tidak percaya sebelum mencobanya sendiri. Sayapun memutuskan mencoba vim.
Mencoba Vim dan Ingin Muntah 😵
Saya menyempatkan 2–3 jam waktu saya di malam hari untuk coba belajar Vim. Saya memulai dengan vimtutor. Saya mulai belajar melakukan navigasi dengan cursor, belajar mengcopy text, menghapus text, mencari text, dan operasi dasar lainnya. Setelah menyelesaikan vimtutor saya makin yakin saya ngga pengen memakai text editor jadul ini!
Saya bertanya-tanya sendiri, apanya yang efisien? Apanya yang berubah dari workflow saya? Alih-alih efisien, memakai Vim membuat saya banyak typo dan berpikir keras saat melakukan editing, — ribet, pikir saya waktu itu.
Di hari itu juga saya berhenti belajar Vim.
Terinspirasi dari Youtuber Botak
Beberapa hari kemudian, saya sedang iseng-iseng pengen nonton Black Pink di Youtube (pria mana yang ngga suka Black Pink bro? 😛). Bukan karena saya ngerti bahasa Korea, saya cuma simple man yang suka lihat Lisa dan kawan-kawannya joget-joget. Oye oyeee ~~ 🎵
Saat akan milih video yang mau ditonton, Youtube merekomendasikan saya pada sebuah video dari Luke Smith. Luke Smith adalah Youtuber yang sering membahas Linux di kanalnya, dan banyak diantaranya dia juga membahas tentang Vim. Black Pink bisa menunggu, dan saya memutuskan menonton beberapa video beliau.
Bapak-bapak botak ini membuat saya berpikir ulang dan kembali belajar Vim! Dalam video-videonya, beliau mendemokan cara menggunakan Vim yang membuat saya terkesima. Dia mendemokan cara penggunaan Vim dengan contoh kasus yang nyata, pekerjaan editing file yang sering saya lakukan sehari-hari. Saya banyak bilang “Oh bisa begitu toh?” saat menonton video-video di kanalnya. Saya baru sadar, betapa tidak efisiennya saya bekerja selama ini.
Bagi pemula seperti saya, banyak yang tidak tahu bahwa Vim memiliki kemampuan yang sangat powerfull untuk melakukan editing, terutama untuk editing source code. Itulah mengapa programmer banyak yang menggunakan Vim. Dari video-video Luke Smith (dan beberapa sumber video lain), pertanyaan-pertanyaan saya mulai terjawab. User interface vim yang awalnya menurut saya nyeleneh, mulai masuk dalam pemahaman saya. Sayapun memulai vimtutor kembali dengan rasa antusias. Ngga kalah antusiasnya sama nonton Black Pink.
Saya mengulangi vimtutor tiap hari selama seminggu. Merasa cukup dengan vimtutor, Seminggu kemudian saya mencoba menggunakan Vim untuk pekerjaan di kantor. Sekalian untuk menguji sudah seberapa jauh saya menguasai Vim.
The Struggle is Real
Apakah dalam seminggu itu saya lebih produktif? TIDAK! Saya menderita. Saya tidak seproduktif sebelumnya dan kepala saya rasanya pening. Otak yang biasanya saya cuma pakai untuk mengingat hal-hal yang simpel kayak akun IG model cantik, makan siang mau makan apa, dan hal simpel lainnya, akhirnya dipakai untuk mengingat key binding, command vim, dan mikirin code sekaligus! Sel-sel otak saya terpaksa harus keluar dari zona nyaman.

Oke sebelum lanjut, biar saya jelaskan background dan tools yang saya gunakan sebelumnya.
Saya adalah seorang programmer web yang menggunakan bahasa pemrograman PHP (Laravel). Sebelum belajar menggunakan Vim, saya menggunakan PhpStorm untuk IDE sehari-hari. PhpStorm adalah IDE tercanggih yang pernah saya coba. Auto completion-nya, pluginnya, dan segala fiturnya sexy seperti para member Black Pink. Fitur yang paling sering saya gunakan adalah Terminal, Database dan Stucture. Tidak lupa shortcut key Shift+Shift (search everywhere) dan Ctrl + E (recent files) yang sangat memudahkan saya melakukan navigasi antar file, symbol atau class. Walaupun ini adalah IDE yang berat, tapi it get job done. Pokoknya nyaman dan efisien banget deh pakai IDE yang satu ini.
Tools yang biasanya saya gunakan seperti Database dan search everywhere tidak tersedia secara default pada Vim. Namun itu bukan masalah, karena Vim memiliki ribuan plugin untuk berbagai kebutuhan yang bisa kita gunakan dan konfigurasi sesuai dengan keinginan. Alhasil, saya berhasil mengkonfigurasi Vim agar cocok dengan workflow saya.
Mulai Nyaman dan Efisien dengan Work Flow Baru 💪
1–2 minggu kemudian, saya mulai nyaman menggunakan vim dengan plugin dan key binding pilihan saya. Otak dan jari mulai singkron, saya mulai menghapal key binding dasar ataupun custom yang sudah saya susun. Fitur navigasi Vim membantu saya melakukan editing lebih cepat dari biasanya. Saya bisa loncat kata per kata dengan w atau b , menuju awal dan akhir line dengan e ^ atau $ , meloncati antar paragraph dengan <C-}> atau <C-{>. Saya juga sering menggunakan command seperti d5jatau d5k untuk melakukan penghapusan baris dengan cepat (angka 5 untuk contoh jumlah baris). Tidak kalah sering saya juga menggunakan yy dan p untuk melakukan duplikasi line. dw untuk menghapus 1 kata di depan kuror atau db untuk menghapus 1 kata di belakang kursor, dan masih banyak lagi command lainnya.
Selain itu saya juga melakukan key binding pada beberapa plugin yang saya gunakan. Beberapa plugin vim yang berjasa membuat hidup saya lebih mudah misalkan:
- ⭐️ fzf: untuk melakukan navigasi super cepat antar file project (alternatif Shift + Shift dan Ctrl + E pada PhpStorm). Saya menggunakan keybinding <C-p> untuk melakukan pencarian file di mana saja, dan <C-e> untuk recent file.
- ⭐️ NerdTree: untuk file explorer yang dilengkapi dengan banyak fitur yang sangat berguna seperti manipulasi file, bookmark, dan lainnya. Key binding yang saya gunakan adalah <C-o>
- ⭐️ fugitive.vim: Untuk bekerja dengan Git.
Gstatus,Gcommit, danGpushadalah command favorit saya. Sangat cepat dan efisien. - ⭐️ coc.nvim: Auto completion canggih untuk segala bahasa pemrograman dan framework.
- ⭐️ tagbar: Untuk navigasi super cepat antar symbol dalam file yang sedang diedit. Plugin yang sangat berguna ketika bekerja dengan Framework seperti Laravel. Key binding yang saya gunakan adalah F8.
Pembaca bisa melihat konfigurasi .vimrc saya pada link di bawah ini.
Demo konfigurasi vim yang saya gunakan, bisa dilihat pada video di bawah ini. (Di video ini saya masih menggunakan You Complete Me sebagai plugin auto complete. Saat ini saya sudah beralih ke coc.nvim karena performanya lebih cepat).
Manfaat Lain Setelah Vim
Selain lebih cepat dan efisien, ada beberapa manfaat lain yang saya rasakan, misalkan:
- ⭐️ Vim adalah text editor berbasis terminal yang sangat hemat sumber daya, diprogram dengan menggunakan bahasa pemrograman C. Vim tidak membutuhkan computer dengan spesifikasi hardware tinggi untuk menjalankannya. Bahkan kita bisa menjalankan Vim di hanphone Android dengan Termux. Alhasil laptop yang saya gunakan ngga panas seperti saat menggunakan PhpStorm. Hitung-hitung mengurangi pemanasan global.
- ⭐️ Karena ringan dan ramah resource, vim sangat menghemat konsumsi battery laptop saya. Jadi kalau mau ngoding di caffe yang ngga ada colokannya, bisa tahan lebih lama.
- ⭐️ Di kantor saya bertugas melakukan manajemen server. Sebelumnya, teks editor yang saya gunakan di server adalah Nano. Setelah beralih ke vim hidup rasanya jauh lebih mudah.
Penutup
Belajar Vim adalah salah satu investasi terbaik yang pernah saya lakukan. Hingga saat ini, saya masih terus belajar menggunakan Vim dan ekosistemnya untuk mempercepat work flow saya. Saya tidak menggunakan Vim untuk segala kebutuhan. Saya hanya menggunakan Vim untuk web development. Untuk mobile development, saya masih menggunakan Visual Studio Code, Android Studio dan XCode .
Vim adalah text editor yang sangat powerfull, namun memerlukan waktu dan effort belajar yang tinggi. Tulisan ini tidak saya maksudkan untuk mempromosikan Vim kepada pembaca, karena tiap orang memiliki kondisi dan selera masing-masing. Pada akhirnya “use the right tools for the job”.
