Mengubah nano menjadi editor yang memvalidasi: menjalankan linter dengan ^T ^Y, memeriksa ejaan dengan ^T ^S dan --speller, mengatur perintah linter per syntax di nanorc, serta integrasi dengan tool eksternal untuk menangkap kesalahan sebelum menyimpan

Di episode 9 kita menekankan bahwa syntax highlighting tidak memvalidasi kode. Episode inilah jawabannya: linter & spell check di dalam nano. Dengan ini, nano bukan sekadar editor yang mewarnai — ia menjadi editor yang memeriksa: menangkap syntax error script sebelum service restart, dan typo di dokumen sebelum dikirim.
Mengapa ini penting? Workflow sysadmin yang baik memvalidasi sebelum menerapkan. nginx -t, python -m py_compile, shellcheck — semua bisa dipanggil langsung dari dalam nano, tanpa keluar editor.
Nano membedakan dua cara menjalankan tool:
^T + ketik perintah) — sudah kita bahas di episode 11.Shortcut terdaftar:
| Kombinasi | Fungsi |
|---|---|
^T ^S | Jalankan spell check |
^T ^Y | Jalankan syntax check / linter |
^T ^O | Jalankan formatter |
Ketiganya memakai perintah yang dikonfigurasi lewat set speller atau direktif linter/formatter pada blok syntax.
Mari konfigurasi linter untuk shell script. Di ~/.nanorc:
syntax "sh" "\.sh$" "#!/bin/(ba|z|k)?sh"
linter "shellcheck -f gcc -"sudo apt install shellcheck # atau dnf/pacmanBuat script yang sengaja salah:
printf '#!/bin/bash\nif [ -f /tmp/x ]; then\necho "oke"\n' > ~/nano-lab/bug.sh
nano ~/nano-lab/bug.shTekan ^T ^Y — nano menjalankan shellcheck, hasilnya ditampilkan di layar:
#! /bin/bash
if [ -f /tmp/x ]; then
echo "oke"Nano menandai baris bermasalah dengan notasi seperti ^─ di margin (gaya notasi errorlevel, mirip compiler). Perhatikan: linter membaca buffer sebelum disimpan — kalian bisa memvalidasi tanpa harus menulis ke disk dulu.
Tip
Konvensi penting: perintah linter harus membaca dari stdin (akhiri dengan -) atau dari nama file sementara yang disuplai nano. Format output yang dipahami nano meniru gaya compiler (file:line:col: pesan). Sesuaikan flag seperti shellcheck -f gcc agar formatnya pas.
Spell check memakai program eksternal — nano menyarankan kata dari daftar kamus:
sudo apt install hunspell # lalu pastikan kamus adaset speller "hunspell"Buka dokumen dan tekan ^T ^S:
Misspelled word: "teknl" Replace with:Nano menampilkan kata yang salah eja; kalian bisa mengetik pengganti, memilih dari saran, atau menambahkannya ke kamus pribadi. Alternatif dari command line: --speller:
nano --speller=aspell catatan.txtTambahkan linter untuk bahasa lain di blok syntax masing-masing:
syntax "python" "\.py$" "#!/usr/bin/env python"
linter "python -m py_compile %file"
syntax "yaml" "\.ya?ml$"
linter "yamllint -f parsable -"Perhatikan perbedaan placeholder:
- → baca dari stdin%file → path file sementara yang dibuat nano%filename → nama file asliPilih sesuai kebutuhan tool. Untuk py_compile, %file lebih praktis karena tool itu tidak membaca stdin.
Warning
Linter yang menulis ke stdout tanpa format compiler akan ditampilkan apa adanya oleh nano — bukan ditandai di baris. Jika hasil linter tidak berwarna/bertanda, periksa format output tool-nya. Episode 22 menjelaskan cara menyesuaikan ini lebih lanjut.
Kombinasi paling kuat: linter + formatter sekaligus dalam satu workflow:
syntax "json" "\.json$"
formatter "jq ."
linter "python -m json.tool %file"^T ^Y → validasi JSON (linter)
^T ^O → format JSON rapi (formatter, M-F juga)Latihan utuh:
printf '{"nama":"dev","umur":30}' > ~/nano-lab/aplikasi.json
nano ~/nano-lab/aplikasi.json^T ^Y — JSON valid, tidak ada error.M-F — file diformat ulang dengan jq.^T ^Y lagi — error muncul.Pada episode 20 ini, kalian telah menjadikan nano editor yang memvalidasi.
Inti yang harus dibawa pulang:
^T ^Y menjalankan linter; ^T ^S spell check; ^T ^O/M-F formatter.linter/formatter di blok syntax dan set speller.- (stdin), %file (file sementara), %filename (nama asli).file:line:col) diperlukan agar tanda error muncul.Di episode 21 selanjutnya, kita akan membahas macros & automation — merekam rangkaian edit dengan M-: lalu memutarnya dengan M-;, menggabungkan macro dengan search untuk tugas berulang, dan otomasi edit di banyak tempat. Pekerjaan yang diulang 100 kali menjadi 1 kali!