Menguasai operasi editing inti nano: memotong baris dengan ^K, menempel dengan ^U, menandai dan menyalin blok teks dengan M-A dan M-6, menduplikasi baris, memindahkan blok antar file, serta merapikan trailing whitespace untuk menjaga kualitas file config dan script

Setelah di episode 4 kalian menguasai navigasi, saatnya beraksi: mengubah isi file. Editing adalah jantung pekerjaan editor — dan di nano, modelnya satu konsep sederhana: cut buffer. Tidak ada clipboard sistem bawaan seperti editor GUI; yang ada adalah buffer potong internal tempat teks yang dipotong/disalin disimpan sampai digantikan.
Mengapa pemahaman cut buffer penting? Karena dua kesalahan paling umum pengguna nano pemula — "teks saya hilang" dan "paste-nya bukan yang saya kira" — berakar dari salah memahami konsep ini. Setelah episode ini, kedua masalah itu hilang.
Nano memakai satu buffer potong internal. Saat kalian memotong atau menyalin, isi buffer digantikan dengan teks baru. Menempel (^U) selalu mengeluarkan isi buffer terakhir. Ini mirip copy-paste biasa, dengan dua perbedaan penting:
^K → potong teks ke cut buffer (isi lama diganti)
M-6 → salin teks ke cut buffer
^U → tempel isi cut buffer di posisi kursor^K memotong seluruh baris mulai dari posisi kursor. Jika kursor di awal baris, seluruh baris beserta newline-nya terpotong. Contoh: hapus baris kedua file.
printf 'line satu\nline dua\nline tiga\n' > ~/nano-lab/cut.txt
nano ~/nano-lab/cut.txtLetakkan kursor di baris kedua, tekan ^K, lalu ^C untuk melihat posisi — baris kedua sudah hilang dan baris di bawahnya naik. Tekan ^U untuk mengembalikannya.
Tip
Dengan set cutfromcursor di nanorc, ^K hanya memotong dari posisi kursor sampai akhir baris (tidak termasuk newline) — berguna saat ingin menggabungkan baris. Atau pakai M-T untuk memotong hingga akhir file. Kita akan mengatur ini di episode 12.
^U menempel isi cut buffer di posisi kursor. Dua pola yang paling sering dipakai:
Memindahkan baris (potong di tempat A, tempel di tempat B):
^K untuk memotong.^U untuk menempel — isi buffer diletakkan di atas baris tempat kursor berada.Menduplikasi baris (copy-paste):
M-6 (Copy Text) untuk menyalin tanpa memotong.^U untuk menempel.Untuk memotong/menyalin sebagian baris (bukan baris utuh), gunakan mark text dengan M-A:
M-A — mulai menandai; status bar menampilkan [ Mark Set ].^K (potong) atau M-6 (salin).GNU nano 9.2 cut.txt
line satu
li[ne dua]x
line tigaSetelah operasi, mark otomatis hilang. M-A juga bisa menutup mark tanpa operasi apa pun.
Kombinasi mark + cut/paste memungkinkan manipulasi blok yang presisi:
| Tujuan | Langkah |
|---|---|
| Pindah baris | ^K → pindah → ^U |
| Duplikasi baris | M-6 → pindah → ^U |
| Pindah blok sebagian | M-A, seleksi, ^K → pindah → ^U |
| Duplikasi blok | M-A, seleksi, M-6 → pindah → ^U |
Latihan: buka cut.txt, tandai kata dua dengan M-A + gerak kursor, salin dengan M-6, lalu tempel di baris ketiga dengan ^U.
File config dan script yang rapi tidak menyimpan spasi sia-sia di ujung baris. Dua cara mengatasinya di nano:
set trimblanks di nanorc — nano otomatis menghapus spasi/tab di ujung saat ^O menulis file (episode 12).M-T memotong teks hingga akhir file. Dengan mark aktif (M-A + seleksi), M-T menghapus trailing whitespace hanya di bagian yang ditandai.grep -n ' $' ~/nano-lab/cut.txt || echo "bersih, tanpa spasi di ujung baris"Pada episode 5 ini, kalian telah menguasai mesin editing nano: cut buffer, potong baris, tempel, mark text, dan merapikan whitespace.
Inti yang harus dibawa pulang:
^K memotong, M-6 menyalin, ^U menempel.^K memotong seluruh baris; M-A menandai bagian teks untuk operasi presisi.^K lalu ^U; duplikasi = M-6 lalu ^U.set trimblanks atau M-T membersihkan trailing whitespace.Di episode 6 selanjutnya, kita akan membahas search & replace — mencari teks dengan ^W, mengulang pencarian dengan M-W, mengganti dengan mode replace, memakai regex dengan M-R, dan melakukan replace bersamaan dengan goto. Ini salah satu episode paling sering dipakai di dunia nyata!