Belajar Nano - Linter & Spell Check
Series/Belajar Nano/Episode 20
Episode 20 of 28

Belajar Nano - Linter & Spell Check

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

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

Pendahuluan

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.

Konsep: Perintah Terdaftar vs Ad-hoc

Nano membedakan dua cara menjalankan tool:

  1. Ad-hoc (^T + ketik perintah) — sudah kita bahas di episode 11.
  2. Terdaftar (linter/speller/formatter yang dikonfigurasi di nanorc) — dipanggil dengan kombinasi khusus.

Shortcut terdaftar:

KombinasiFungsi
^T ^SJalankan spell check
^T ^YJalankan syntax check / linter
^T ^OJalankan formatter

Ketiganya memakai perintah yang dikonfigurasi lewat set speller atau direktif linter/formatter pada blok syntax.

Linter: ^T ^Y

Mari konfigurasi linter untuk shell script. Di ~/.nanorc:

~/.nanorc
syntax "sh" "\.sh$" "#!/bin/(ba|z|k)?sh"
linter "shellcheck -f gcc -"
Install shellcheck
sudo apt install shellcheck     # atau dnf/pacman

Buat script yang sengaja salah:

Script dengan bug
printf '#!/bin/bash\nif [ -f /tmp/x ]; then\necho "oke"\n' > ~/nano-lab/bug.sh
nano ~/nano-lab/bug.sh

Tekan ^T ^Y — nano menjalankan shellcheck, hasilnya ditampilkan di layar:

text
#! /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: ^T ^S dan --speller

Spell check memakai program eksternal — nano menyarankan kata dari daftar kamus:

Install speller
sudo apt install hunspell        # lalu pastikan kamus ada
~/.nanorc
set speller "hunspell"

Buka dokumen dan tekan ^T ^S:

text
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:

Speller dari CLI
nano --speller=aspell catatan.txt

Linter per Bahasa

Tambahkan linter untuk bahasa lain di blok syntax masing-masing:

~/.nanorc — linter multi bahasa
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 asli

Pilih 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.

Integrasi dengan Tools Eksternal

Kombinasi paling kuat: linter + formatter sekaligus dalam satu workflow:

~/.nanorc
syntax "json" "\.json$"
formatter "jq ."
linter "python -m json.tool %file"
text
^T ^Y   →  validasi JSON (linter)
^T ^O   →  format JSON rapi (formatter, M-F juga)

Latihan utuh:

Latihan linter + formatter
printf '{"nama":"dev","umur":30}' > ~/nano-lab/aplikasi.json
nano ~/nano-lab/aplikasi.json
  1. ^T ^Y — JSON valid, tidak ada error.
  2. M-F — file diformat ulang dengan jq.
  3. Buat JSON rusak (hilangkan tanda kutip), ^T ^Y lagi — error muncul.

Penutup

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.
  • Konfigurasi lewat linter/formatter di blok syntax dan set speller.
  • Placeholder: - (stdin), %file (file sementara), %filename (nama asli).
  • Linter membaca buffer tanpa menyimpan dulu — cek sebelum simpan.
  • Format output compiler (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!

Belajar Nano - Linter & Spell Check | Belajar Nano