1. Teori dan Sejarah Vim

Apa Itu Vim?

Pembaca mungkin telah familier dengan Atom, Sublime Text, Notepad++, atau Visual Studio Code. Vim adalah program komputer yang dipakai untuk menulis teks (*text editor/*editor teks) sama seperti program-program di atas.

Vim adalah akronim untuk Vi IM Proved. Vim adalah editor teks lintas platform yang gratis dan bersumber terbuka. Vim pertama kali dirilis oleh Bram Moolenaar pada tahun 1991 untuk varian UNIX. Vim merupakan tiruan editor yang sudah ada bernama vi dengan menambah beragam fitur baru (perhatikan lagi kepanjangan dari vim). Vi sendiri sudah ada sejak tahun 1972.

Vim merupakan salah satu editor teks paling populer di kalangan pengguna Linux. Administrator Sistem Linux khususnya lebih sering menggunakannya daripada editor lainnya.

Vim didasarkan pada editor Vi asli, yang diciptakan oleh Bill Joy pada tahun 1976. Pada tahun 90-an, mulai terlihat jelas bahwa Vi kurang memiliki beberapa fitur jika dibandingkan dengan editor Emacs. Jadi Bram menerapkan banyak fitur yang hilang dan merilisnya dengan nama Vim.

Mengapa Belajar Vim?

Saat akan mempelajari sesuatu, tentu kita perlu melihat keuntungan apa yang bisa didapatkan dari vim. Mengapa belajar vim?

Pertama, vim merupakan salah satu editor dengan basis pengguna setia yang cukup besar. Bayangkan, sejak dirilis pada tahun 1991 (atau 1976 untuk vi), penggunanya masih pada setia, masih banyak sekali. Kalau pembaca pernah nonton video tutorial di Youtube mungkin pernah melihat developer yang memakainya.

Kedua, vim tersedia secara gratis. Ya, jaman sekarang memang mayoritas editor teks tersedia secara gratis sehingga alasan ini mungkin kurang kuat untuk mendorong pembaca belajar menggunakan vim.

Ketiga, vim ada di mana-mana (maksudnya diberbagai sistem). Vim tersedia di Linux, Windows, Mac OS X, BSD, atau sistem Unix lain. Well, memang editor teks lain juga tersedia untuk berbagai sistem sih, jarang ada editor yang khusus hanya untuk satu sistem saja (seperti Notepad++ atau TextMate yang hanya ada di Windows dan Mac). Tapi, kelebihan lain dari vim adalah dia bisa dipakai untuk ngoding di terminal. Kelebihan ini tentu sangat berguna bagi developer yang sering bekerja dengan sistem remote yang bisanya terhubung lewat SSH atau sesi Putty.

Alasan keempat adalah efisien (untuk yang sudah terbiasa). Jika sudah cukup familier dengan cara kerja vim, kita bisa menulis atau mengedit file teks apapun dengan lebih efisien memanfaatkan sistem shortcut yang ada di dalamnya. Untuk pemula, saat pertama menggunakan vim mungkin akan terasa ribet tapi saat sudah cukup terbiasa, kita bisa menggunakannya dengan lebih cepat.

Alasan yang kelima adalah fleksibel. Kita bisa menggunakan vim apa adanya atau menambahkan berbagai plugin yang bisa menambah fitur ekstra seperti filetree, git integration, syntax highlighting untuk bahasa tertentu, autocomplete, dsb. (semacam packages kalau di Sublime Text atau Extensions kalau di Visual Studio Code).

Alasan yang keenam, ya sekedar mencoba hal baru. Mungkin ada yang beranggapan, kan sudah ada Sublime ngapain repot-repot belajar ngetik lagi di editor yang beda?. Terkadang, dengan mempelajari sesuatu yang baru atau berbeda kita bisa sedikit lebih mengapresiasi hal lain. Misalnya, saat belajar bahasa asing seperti Mandarin atau Jepang kita jadi bisa lebih bersyukur bahwa Bahasa Indonesia memiliki sistem yang lebih mudah (tapi entah kenapa nilai ujiannya kecil terus).

Keunggulan Vim

  • Ringan: Cocok untuk lingkungan server tanpa GUI.
  • Cepat: Navigasi dan editing berbasis keyboard, tanpa memerlukan mouse.
  • Fleksibel: Bisa digunakan untuk berbagai bahasa pemrograman.
  • Customizable: Mendukung plugin, tema, dan skrip.
  • Universal: Tersedia di hampir semua sistem operasi.

Mode Vim

Anda harus memahami konsep terpenting dalam Vim sebelum melanjutkan: mode dalam Vim.

Segala sesuatu di Vim dianggap sebagai mode. Anda dapat mencapai apa pun yang Anda inginkan jika Anda memahami mode di Vim. Ada banyak mode di Vim. Namun, kita akan melihat 4 mode yang paling penting.

Mereka adalah:

  1. Command Mode
  2. Insert Mode
  3. Command-Line Mode
  4. Visual Mode

Mari kita bahas satu per satu.

Apa itu Command Mode?

Ini adalah mode default (juga disebut mode Normal) di Vim. Setiap kali Vim dimulai, Anda akan berada dalam mode ini. Anda dapat beralih ke mode apa pun dari mode ini. Anda tidak dapat melakukan ini dalam mode lain.

Pada dasarnya, untuk beralih dari satu mode ke mode lain, Anda harus masuk ke Mode Perintah terlebih dahulu, lalu masuk ke mode lainnya. Perintah yang Anda jalankan tanpa awalan (titik dua) menunjukkan bahwa Anda menjalankan perintah tersebut dalam mode perintah.

Apa itu Insert Mode?

Mode ini digunakan untuk mengedit konten berkas. Anda dapat beralih ke mode sisip dengan menekan idari mode perintah. Anda dapat menggunakan Esctombol untuk beralih kembali ke mode perintah.

Apa itu Command-Line Mode?

Anda dapat menggunakan mode ini untuk bermain-main dengan beberapa perintah. Namun perintah dalam mode ini diawali dengan titik dua (:). Anda dapat beralih ke mode ini dengan menekan : (titik dua) dalam mode perintah.

Apa itu Visual Mode?

Anda menggunakan mode ini untuk memilih beberapa teks secara visual dan menjalankan perintah pada bagian kode tersebut. Anda dapat beralih ke mode ini dengan menekan vdari mode perintah.

Keempat mode di atas cukup untuk menjalankan serangkaian operasi berkas dasar di Vim.


2. Instalasi Vim

Linux

sudo apt install vim       # Debian/Ubuntu
sudo yum install vim       # CentOS/Red Hat
sudo pacman -S vim         # Arch Linux

Windows

MacOS

brew install vim

3. Dasar-dasar Penggunaan Vim

Membuka File

vim <nama_file>

Mode dan Navigasi

  • Pindah ke Insert Mode: Tekan i atau a.

  • Kembali ke Normal Mode: Tekan Esc.

  • Bergerak dalam teks:

    • h: Kiri
    • j: Bawah
    • k: Atas
    • l: Kanan

Menyimpan dan Keluar

  • Simpan: :w
  • Keluar: :q
  • Simpan dan keluar: :wq
  • Keluar paksa tanpa menyimpan: :q!

Editing Dasar

  • Hapus karakter di bawah kursor: x
  • Undo: u
  • Redo: Ctrl + r
  • Copy (Yank): yy (untuk satu baris)
  • Paste: p

4. Sintaks Lanjutan

Navigasi Cepat

  • gg: Pergi ke awal file.
  • G: Pergi ke akhir file.
  • :n: Pergi ke baris ke-n.
  • w: Lompat ke awal kata berikutnya.
  • b: Lompat ke awal kata sebelumnya.

Editing Cepat

  • dd: Hapus satu baris.
  • d$: Hapus dari kursor ke akhir baris.
  • cw: Hapus satu kata dan masuk Insert Mode.
  • r<char>: Ganti karakter di bawah kursor dengan <char>.

Search dan Replace

  • Cari: /pattern (contoh: /error)

  • Lanjut ke hasil berikutnya: n

  • Replace seluruh dokumen:

    :%s/old/new/g

Visual Mode

  • Tekan v untuk masuk ke Visual Mode.
  • Gunakan hjkl untuk memilih teks.
  • Gunakan perintah seperti y, d, atau >.

5. Customisasi Vim

File Konfigurasi (~/.vimrc)

Contoh konfigurasi dasar:

set number          " Menampilkan nomor baris
set tabstop=4       " Lebar tab 4 spasi
set expandtab       " Mengubah tab menjadi spasi
set shiftwidth=4    " Lebar indentasi otomatis
set autoindent      " Indentasi otomatis
syntax on           " Mengaktifkan penyorotan sintaks

Plugin Manager

Gunakan vim-plug untuk plugin.

  1. Instal vim-plug:

    curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
        https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
  2. Tambahkan plugin di ~/.vimrc:

    call plug#begin('~/.vim/plugged')
    Plug 'preservim/nerdtree'          " File explorer
    Plug 'junegunn/fzf.vim'           " Fuzzy Finder
    call plug#end()
  3. Instal plugin:

    :PlugInstall

6. Sumber Belajar Tambahan

Selamat belajar dan eksplorasi Vim! Jika ada bagian yang kurang jelas, silakan tanyakan. 😊