Beralih antar mode Vim, gunakan perintah pengeditan dasar, dan lakukan tugas umum seperti pencarian, penggantian, serta pemberian komentar pada kode.
Instalasi
Vim telah pra-instal di sebagian besar sistem Linux. Jalankan vim --version untuk memeriksa versi yang terinstal. Topik ini menggunakan Vim 8.0 sebagai contoh. Perintah dan fitur mungkin berbeda pada versi lain.
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Aug 10 2022 11:26:47)
Included patches: 1-1763
Modified by OpenAnolis Community
Compiled by OpenAnolis Community
Enormous version without GUI. Features included (+) or not (-):
+acl +farsi +mouse_sgr -tag_any_white
......
Beralih mode
Jalankan vim filename untuk membuka file dalam Normal mode. Jika file tidak ada, Vim akan membuatnya. Tabel berikut menjelaskan setiap mode dan cara beralih di antara mode tersebut.
|
Mode |
Fungsi |
Peralihan mode |
|
Normal mode (Normal Mode) |
Menyalin, menempel, dan menghapus karakter atau baris. |
|
|
Insert mode (Insert Mode) |
Memasukkan karakter pada posisi kursor. |
Dalam Normal mode, tekan Catatan
Saat Insert mode aktif, |
|
Replace mode (Replace Mode) |
Menimpa karakter pada posisi kursor. |
Dalam Normal mode, tekan Catatan
Saat Replace mode aktif, |
|
Visual mode (Visual Mode) |
Memilih teks. Perintah seperti copy, replace, dan delete hanya berlaku untuk teks yang dipilih. |
Dalam Normal mode, tekan Catatan
Saat Visual mode aktif, |
|
Command mode (Command Mode) |
Mencari dan mengganti string, menampilkan nomor baris, menyimpan perubahan, serta keluar. |
Dalam Normal mode, tekan |
Perintah dasar
Membuka file
-
vim filename: Membuka file dalam Normal mode. Jika file tidak ada, Vim akan membuatnya. -
vim filename1 filename2: Membuka beberapa file.-
Vim membuka `filename1` terlebih dahulu. Simpan dengan
:w, lalu jalankan:bnuntuk beralih ke `filename2`. Simpan `filename2` dengan:w. -
:bp: Beralih ke file sebelumnya. -
:ls: Menampilkan daftar semua file yang dibuka.
-
-
:open filename3: Membuka file baru dalam Command mode. Simpan file saat ini terlebih dahulu dengan:w.
Memindahkan kursor
-
Dalam Normal mode
-
Tombol panah atas /
k: Bergerak ke atas. -
Tombol panah bawah /
j: Bergerak ke bawah. -
Tombol panah kiri /
h: Bergerak ke kiri. -
Tombol panah kanan /
l: Bergerak ke kanan.
-
-
Dalam Insert mode
-
Gunakan hanya tombol panah.
-
Memasukkan konten
Dalam Normal mode, tekan i,I,a,A,o,O untuk masuk ke Insert mode:
-
i: Memasukkan sebelum kursor. -
I: Memasukkan di awal baris. -
a: Memasukkan setelah kursor. -
A: Memasukkan di akhir baris. -
o: Membuka baris baru di bawah. -
O: Membuka baris baru di atas.
Menyalin dan menempel
Dalam Normal mode:
-
yy: Menyalin baris saat ini. Tempel denganp. -
nyy: Menyalin `n` baris mulai dari baris saat ini. Contohnya,2yymenyalin dua baris. -
p: Menempel di bawah kursor. -
P: Menempel di atas kursor.
Menghapus
-
Dalam Normal mode
-
x: Menghapus karakter pada kursor. -
dd: Menghapus baris saat ini. Tempel denganp. -
dk: Menghapus baris saat ini dan baris di atasnya. -
dj: Menghapus baris saat ini dan baris di bawahnya. -
dG: Menghapus dari baris saat ini hingga akhir file. -
nx: Menghapus `n` karakter mulai dari kursor. -
ndd: Menghapus `n` baris mulai dari baris saat ini. Tempel denganp.
-
-
Dalam Insert mode
-
Gunakan
Deleteuntuk menghapus karakter.
-
Pencarian
Dalam Normal mode
-
/text: Mencari `text`. Secara default, pencarian bersifat case-sensitive. Tekan Enter untuk menyorot hasil yang sesuai.-
Untuk pencarian case-insensitive, jalankan
:set ignorecase. Untuk mengembalikan pencarian case-sensitive, jalankan:set noignorecase.
-
-
n: Hasil berikutnya. -
N: Hasil sebelumnya.
Penggantian
-
Dalam Normal mode
-
r: Mengganti karakter pada kursor. -
R: Masuk ke Replace mode untuk penggantian berkelanjutan. TekanEscuntuk keluar. -
cc: Menghapus baris saat ini dan masuk ke Insert mode. -
:%s/oldtext/newtext/g: Mengganti semua kemunculan `oldtext` dengan `newtext`. Tanpa/g, hanya kecocokan pertama per baris yang diganti.
-
-
Dalam Insert mode
-
Hapus konten lama dan ketik konten baru.
-
Undo dan redo
Dalam mode Normal
-
u: Membatalkan perubahan terakhir. -
U: Membatalkan semua perubahan pada baris saat ini. -
Ctrl+r: Mengulangi perubahan terakhir yang dibatalkan.
Indentasi dan penyelarasan
-
Dalam Normal mode
-
>>: Menggeser indentasi baris saat ini ke kanan. Indentasi default: 8 spasi (satu tab). -
<<: Menggeser indentasi baris saat ini ke kiri.
-
-
Dalam Command mode
-
:ce: Menyelaraskan baris ke tengah. -
:le: Menyelaraskan baris ke kiri. -
:ri: Menyelaraskan baris ke kanan.
-
Memberi komentar pada kode
-
Lakukan backup file sebelum melakukan penggantian skala besar, atau gunakan perintah undo (
u) untuk membalikkan kesalahan. Misalnya, jalankansudo cp /etc/text.txt /etc/text.txt.bakuntuk membuat backup file. -
Pahami sintaks ekspresi reguler Vim agar tidak secara tidak sengaja menghapus konten. Dalam regex Vim,
/harus di-escape sebagai\/. Latihlah dengan alat seperti Regex101. -
Sesuaikan simbol komentar berdasarkan bahasa pemrograman.
-
Dalam Visual mode
-
Beri komentar pada beberapa baris kode berturut-turut
-
Pilih baris yang akan dikomentari dengan menggerakkan kursor ke atas atau ke bawah.
-
Tekan
:untuk masuk ke Command mode. Vim secara otomatis mengisi:'<,'>, yang menargetkan rentang yang dipilih. -
Masukkan perintah penggantian. Misalnya, untuk menambahkan
#di awal setiap baris, masukkans/^/#/dan tekanEnter.
-
-
Beri komentar pada seluruh kode:
:%s/^/#/gmenambahkan#di awal setiap baris.
-
-
Dalam Insert mode
Ketik manual simbol komentar untuk memberi komentar pada kode.
Menyimpan dan keluar
-
Simpan:
:w -
Keluar:
:q -
Simpan dan keluar:
:wq,:x, atauZZ -
Keluar tanpa menyimpan:
:q! -
Simpan paksa dan keluar:
:wq!
Mengenkripsi dokumen
-
vim -x filename: Membuka file dengan enkripsi. Tetapkan password, lalu simpan file agar enkripsi diterapkan. Pembukaan berikutnya memerlukan password. -
Membatalkan enkripsi:
-
Jalankan
:set key=untuk menghapus kunci enkripsi. -
Simpan dan keluar dengan
:wq. -
Buka kembali file dengan
vim filename. Tidak akan muncul prompt password.
-
Menjalankan perintah shell
-
!pwd: Menampilkan direktori kerja saat ini. -
!ls: Menampilkan daftar file dalam direktori saat ini.
Pengeditan multi-jendela
-
vim -o filename1 filename2: Membuka dua file dalam jendela terpisah. Keluar dari setiap jendela secara individual. -
:n: Jendela berikutnya. -
:N: Jendela sebelumnya.
Bantuan
-
Jalankan
vim --helpdi terminal untuk melihat sintaks perintah Vim. -
Dalam Normal mode
-
:help: Membuka dokumen bantuan Vim (read-only). Keluar dengan:q. -
:help i: Menampilkan bantuan untuki. -
:help yy: Menampilkan bantuan untukyy. -
:set nu: Menampilkan nomor baris.
-
Contoh penggunaan
Ubah file konfigurasi
Masukkan Location pada baris pertama example.conf:
-
Jalankan
vim example.confuntuk membuka file. -
Letakkan kursor pada karakter pertama dan tekan
iuntuk masuk ke Insert mode. -
Masukkan
Locationdan tekan Enter untuk membuat baris baru. -
Tekan
Escuntuk kembali ke Normal mode. -
Masukkan
:wquntuk menyimpan dan keluar.
Masukkan konten pada baris target
Masukkan # di awal baris 10 dalam example.conf:
-
Jalankan
vim example.confuntuk membuka file. -
Jalankan
:10untuk memindahkan kursor ke baris 10. -
Tekan
iuntuk masuk ke Insert mode. -
Masukkan
#. -
Tekan
Escuntuk kembali ke Normal mode. -
Masukkan
:wquntuk menyimpan dan keluar.
Cari dan masukkan konten
Dalam example.conf, masukkan LoadModule rewrite_module modules/mod_rewrite.so setelah Include conf.modules.d/*.conf:
-
Jalankan
vim example.confuntuk membuka file. -
Cari baris target:
/Include conf.modules.d/*.conf -
Tekan
iuntuk masuk ke Insert mode. -
Masukkan
LoadModule rewrite_module modules/mod_rewrite.so. -
Tekan
Escuntuk kembali ke Normal mode. -
Masukkan
:wquntuk menyimpan dan keluar.
Hapus konten
Dalam example.conf, hapus # dari awal baris #Listen 12.34.XX:XX:80 dan hapus baris Listen 80:
-
Jalankan
vim example.confuntuk membuka file. -
Cari baris target:
/#Listen 12.34.XX:XX:80. Kursor akan berada pada#. -
Tekan
xuntuk menghapus#. -
Pindahkan kursor ke baris Listen 80 dan tekan
dduntuk menghapusnya. -
Masukkan
:wquntuk menyimpan dan keluar.
Edit Docker.yaml
Buat dan edit docker-compose.yaml:

Hapus komentar multi-baris
-
Asumsikan
#berada di awal baris, mungkin didahului spasi atau indentasi:# This is a comment # Another comment # Yet another comment -
Hapus komentar tersebut:
:%s/^\s*#\s\?//Penjelasan pola:
-
^: Awal baris. -
\s*: Spasi apa pun (menangani indentasi). -
#: Simbol komentar. -
\s\?: Satu spasi opsional setelah#. -
//: Mengganti kecocokan dengan kosong (menghapusnya).
Perintah ini memproses seluruh file. Hasilnya:
This is a comment Another comment Yet another comment -
Upgrade Vim
Jika versi Vim Anda tidak memenuhi kebutuhan, upgrade dengan perintah berikut.
Alibaba Cloud Linux 3 dan 2
sudo yum update vim
CentOS 7 dan 8
sudo yum update vim
Fedora
sudo yum update vim
Ubuntu dan Debian
sudo apt upgrade vim
openSUSE
sudo zypper update vim
Pemecahan masalah
-
"No write since last change" saat keluar:
-
Penyebab: File telah dimodifikasi tetapi belum disimpan.
-
Solusi: Simpan dan keluar dengan
:wq, atau buang perubahan dengan:q!.
-
-
Tidak dapat memasukkan teks:
-
Penyebab: Anda mungkin berada dalam mode non-Insert, seperti Visual mode.
-
Solusi: Tekan
Escuntuk kembali ke Normal mode, lalu masuk ke Insert mode.
-
-
Tidak dapat menyimpan file:
-
Penyebab: Pengguna saat ini tidak memiliki izin menulis. File konfigurasi sistem seperti
/etc/hostsdan/etc/nginx/nginx.confmemerlukan izin superuser. -
Solusi 1: Buka file dengan
sudo vim example.conf. -
Solusi 2: Simpan dengan izin tinggi menggunakan
:w !sudo tee %. Atau, ubah izin atau kepemilikan file dengansudo chownatausudo chmod.
-
-
File ".swp" ada:
-
Penyebab: File sedang dibuka di sesi Vim lain.
-
Solusi: Pastikan tidak ada terminal lain yang sedang mengedit file tersebut. Jika tidak ada, cari dan hapus file
.swpdenganll -a, lalu buka kembali file tersebut. Atau, jalankan:recoveruntuk memulihkan dari file swap.
-