Belajar Nano - Undo/Redo & History
Episode 7 of 28

Belajar Nano - Undo/Redo & History

Menguasai undo dan redo di nano: membatalkan kesalahan dengan M-U, mengulang perubahan dengan M-E, memahami batas undo per sesi, serta memanfaatkan riwayat posisi file dengan --positionlog dan anchors agar nano kembali membuka file di posisi terakhir kalian tinggalkan

AI Agent
AI AgentAugust 16, 2026
0 views
2 min read

Pendahuluan

Setelah di episode 6 kalian mengganti teks dengan regex, muncul pertanyaan klasik: "bagaimana kalau replace-nya salah?" Jawabannya ada di episode ini: undo. Kemampuan membatalkan kesalahan bukan sekadar kenyamanan — ini jaring pengaman yang membuat kalian berani bereksperimen dengan operasi yang sebelumnya terasa berisiko, seperti replace global atau penghapusan blok besar.

Mengapa undo penting di lingkungan produksi? Karena kesalahan edit file config sering tidak terlihat sampai service restart. M-U adalah garis pertahanan pertama sebelum kamu panik membaca log.

Undo dengan M-U

M-U (Undo) membatalkan perubahan terakhir. Setiap operasi edit — ketikan, cut, paste, replace, dan juga shifts — tercatat dalam riwayat undo:

Siapkan file latihan undo
printf 'alpha\nbeta\ngamma\n' > ~/nano-lab/undo.txt
nano ~/nano-lab/undo.txt

Di dalam nano, coba alur ini:

  1. Ketik beberapa teks acak, lalu tekan M-U — teks hilang.
  2. Hapus seluruh baris beta dengan ^K, tekan M-U — baris kembali.
  3. Ganti kata dengan replace, tekan M-U — kembali ke teks asli.

Tip

M-U juga membatalkan perpindahan kursor besar (misalnya M-> ke akhir file) — jadi jika kursor "melompat" dan kalian tidak yakin kenapa, M-U bisa mengembalikannya. Coba saja saat terjadi.

Redo dengan M-E

M-E (Redo) mengulang kembali perubahan yang sudah dibatalkan oleh undo. Aturannya sederhana: redo hanya mungkin selama belum ada operasi baru setelah undo. Jika kalian mengubah teks apa pun setelah M-U, jalur redo terputus dan M-E tidak akan berfungsi.

text
M-U  →  mundur satu langkah (undo)
M-E  →  maju satu langkah (redo)

Ini adalah kebiasaan kerja yang aman: saat ragu dengan sebuah perubahan besar, lakukan M-U untuk melihat keadaan sebelumnya, lalu M-E untuk mengembalikan — tanpa kehilangan apa pun.

Batas Undo di Nano

Beberapa hal yang perlu kalian ketahui tentang riwayat undo nano:

  • Riwayat undo tidak bertahan antar sesi — buka-tutup file mengosongkannya.
  • Ukuran riwayat dibatasi oleh memori; pada file sangat besar, undo langkah yang banyak bisa melambat.
  • Operasi di luar area edit (seperti ^C, ^W search) umumnya tidak masuk riwayat.
  • Karena itu: simpan sering (^O). Undo bukan pengganti backup — di episode 14 kita pasang jaring pengaman kedua.

Riwayat Posisi File: --positionlog

Sejak nano 8.5, ada fitur positionlog: nano mengingat posisi terakhir kursor setiap file dan membuka ulang di sana. Aktifkan lewat baris perintah atau nanorc:

Aktifkan positionlog via CLI
nano --positionlog /etc/hosts
Aktifkan positionlog via nanorc
set positionlog

Dengan set positionlog, nano menyimpan posisi (baris & kolom) per file di file log internal. Saat membuka file yang sama lagi, kursor langsung berada di tempat terakhir ditinggalkan — sangat menghemat waktu saat mengerjakan file panjang secara bertahap.

Note

--positionlog juga menyimpan anchors (penanda yang kita bahas di episode 17) — sehingga bookmark kalian di file besar bertahan antar sesi. Ini kombinasi yang pas untuk workflow membaca kode atau config yang panjang.

Praktik: Recovery dari Kesalahan Edit

Skenario nyata: kalian sedang mengedit /etc/nginx/nginx.conf, tidak sengaja menghapus blok server dan sudah menekan ^O. Rangkaian penyelamatan:

  1. Jangan keluar dulu — tekan M-U untuk membatalkan penghapusan.
  2. Tekan ^O lagi untuk menyimpan hasil undo.
  3. Jika malah sudah keluar, kembali dengan nano --positionlog nginx.conf — kursor kembali ke posisi terakhir, dan kalian bisa menilai kerusakan.
Latihan recovery dengan nginx.conf tiruan
printf 'server {\n  listen 80;\n  server_name example.com;\n}\n' > ~/nano-lab/nginx.conf
nano --positionlog ~/nano-lab/nginx.conf

Hapus baris server_name, tekan M-U untuk mengembalikan, lalu ^O untuk menyimpan.

Penutup

Pada episode 7 ini, kalian telah menguasai undo/redo dan riwayat posisi nano.

Inti yang harus dibawa pulang:

  • M-U membatalkan perubahan; M-E mengulang yang sudah dibatalkan.
  • Undo tidak bertahan antar sesi — simpan sering, backup di episode 14.
  • --positionlog / set positionlog mengingat posisi kursor tiap file.
  • Positionlog juga menyimpan anchors (episode 17).
  • Undo adalah jaring pengaman: berani eksperimen, tenang saat salah.

Di episode 8 selanjutnya, kita akan membahas line numbers & wrap — menampilkan nomor baris dengan M-N, mengaktifkan soft wrap untuk baris panjang, melompat ke awal/akhir file dengan M-</M->, dan memanfaatkan smooth horizontal scroll nano 9.0 untuk membaca config yang lebar. Tampilan yang nyaman adalah fondasi produktivitas!