3 poin oleh GN⁺ 2024-12-14 | 1 komentar | Bagikan ke WhatsApp
  • Baru-baru ini muncul pemikiran bahwa semua hal yang terjadi di terminal merupakan kombinasi dari empat elemen berikut

    • peran sistem operasi
    • peran shell
    • peran emulator terminal
    • peran program yang sedang berjalan (top, vim, cat, dll.)
  • Program bekerja dengan konsistensi yang mengejutkan

    • POSIX terutama mengatur cara kerja emulator terminal, OS, dan shell, tetapi tidak ada standar untuk cara kerja masing-masing program
    • Namun, program terminal umumnya berperilaku dengan cara yang konsisten
  • Aturan-aturan ini bersifat deskriptif, bukan preskriptif

    • Ini bukan upaya untuk meyakinkan para penulis program terminal bahwa mereka harus mengikuti aturan ini
    • Mengetahui aturan dasar yang bisa diharapkan saat menggunakan program terminal baru itu berguna
  • Ada kalanya tanggung jawab program tidak jelas

    • Misalnya, keluar dari REPL dengan menekan Ctrl-D harus diimplementasikan secara eksplisit oleh program

Aturan 1: Program non-interaktif harus keluar saat Ctrl-C ditekan

  • Program non-interaktif pada dasarnya akan keluar saat Ctrl-C ditekan
  • Dalam program interaktif, Ctrl-C memiliki peran yang berbeda

Aturan 2: TUI harus keluar saat q ditekan

  • Program TUI seperti less atau htop akan keluar saat q ditekan

Aturan 3: REPL harus keluar saat Ctrl-D ditekan pada baris kosong

  • Sebagian besar REPL akan keluar saat Ctrl-D ditekan pada baris kosong

Aturan 4: Sebaiknya tidak menggunakan lebih dari 16 warna

  • Program terminal hampir tidak pernah menggunakan warna di luar 16 warna ANSI dasar

Aturan 5: Sebaiknya mendukung key binding readline secara umum

  • Sebagian besar program mendukung key binding readline

Aturan 5.1: Ctrl-W harus menghapus kata terakhir

  • Hampir tidak ada program di mana Ctrl-W tidak menghapus kata terakhir

Aturan 6: Warna harus dinonaktifkan saat menulis ke pipe

  • Sebagian besar program menonaktifkan warna saat menulis ke pipe

Aturan 7: - berarti stdin/stdout

  • Jika - diberikan sebagai pengganti nama file, program akan membaca dari stdin atau menulis ke stdout

  • Mempelajari aturan-aturan ini membutuhkan waktu

    • Kita perlu mempelajari di mana aturan ini berlaku, mengenali pengecualian, dan menangkap polanya secara tidak sadar
    • Menuliskan aturan-aturan ini secara eksplisit dapat membantu orang lain mempelajarinya lebih cepat

1 komentar

 
GN⁺ 2024-12-14
Komentar Hacker News
  • Harus menghormati warna latar belakang dan warna depan default pengguna

    • Jika menggunakan warna, tampilannya harus tetap mudah dibaca terlepas dari warna latar belakang dan warna depan default
    • Jangan menyampaikan informasi hanya dengan warna
    • Emoji harus digunakan dengan hati-hati
    • Jangan menghapus informasi penting dari keluaran yang bergulir
    • Harus menyediakan pengaturan agar pengguna dapat memilih warna dan elemen visual
  • Merekomendasikan Command Line Interface Guidelines

    • Termasuk aturan seperti keluar dengan Ctrl-C, menerima - untuk stdin, menonaktifkan warna saat dipakai dalam pipe, dan lain-lain
  • Aturan tambahan untuk alat baris perintah

    • Jangan mengasumsikan jenis terminal tertentu
    • Harus mengasumsikan bahwa terminal mungkin tidak ada
    • Harus mengikuti kebiasaan umum dalam struktur argumen dan keluaran
    • Harus menggunakan kode keluar standar sysexits.h
    • Harus menyertakan --help di biner dan halaman manual
  • Informasi tentang key binding readline/emacs

    • Di macOS, Ctrl-E, Ctrl-W, dan Ctrl-U dapat digunakan
    • Program rlwrap dapat dipasang untuk menambahkan kemampuan penyuntingan baris
  • Saran tentang penggunaan warna

    • Jangan menggunakan lebih dari 16 warna
    • Warna harus dapat dikonfigurasi
  • Masalah yang terjadi saat menggunakan Ctrl-D di GHCi

    • Harus keluar dengan perintah :q
  • Penjelasan tentang memperlakukan ~ sebagai direktori home

    • Ini berfungsi di shell, tetapi tidak berfungsi di API POSIX
  • Program sebaiknya tidak menambahkan file ke direktori home

    • Harus menghormati XDG_CONFIG_HOME
  • Pendapat tentang konsistensi CLI

    • CLI lebih konsisten daripada GUI
    • Sulit membawa sifat ini ke GUI
  • Proses yang berjalan lama harus memuat ulang konfigurasi saat menerima SIGHUP

  • Tips berguna untuk koneksi SSH

    • Gunakan ~. untuk mengakhiri sesi SSH