TL; DR
Se il tuo programma non implementa o integra già un linguaggio di scripting, usa un formato standard come TOML, YAML, JSON o XML. In questo caso, includerei un'estensione di file appropriata, giusto per chiarire che si tratta, effettivamente, di quel formato, e non solo di qualcosa di superficialmente simile.
Se il tuo programma implementa o integra un linguaggio di scripting e è quello a cui l'utente tipico sarà esposto abbastanza frequentemente per acquisire familiarità durante l'uso tipico della tua app, considera solo l'uso di quella lingua.
Vim e Zsh sono entrambi interpreti. Vim implementa Vim Scripting Language (talvolta chiamato Vimscript o VimL):
The Vim script language is used for the startup vimrc file, syntax files, and many other things.
Zsh implementa, um, Zsh, che è anche un linguaggio di programmazione:
Zsh is a shell designed for interactive use, although it is also a powerful scripting language.
(Enfasi aggiunta da me)
La citazione Vim lo dice esplicitamente, vimrc
è scritto in VimL. Lo stesso vale per zshrc
: è scritto in Zsh. Inoltre, ogni volta che usi un comando in modalità a riga di comando in Vim o scrivi un comando su Il prompt della shell di Zsh nel terminale, stai scrivendo rispettivamente VimL o il linguaggio Zsh.
Ciò a cui tutto questo si riduce è che gli autori di Vim e Zsh non hanno inventato una nuova, unica sintassi per i loro file di configurazione, hanno semplicemente riutilizzato i linguaggi di programmazione già implementati dai loro programmi. Dal momento che i loro utenti usano questi linguaggi per interagire con i programmi, gli utenti possono familiarizzarsi facilmente con loro, facilitando la comprensione dei file di configurazione.
Questo è particolarmente vero per Zsh, dove, a parte alcuni codici di controllo e una minore manipolazione del cursore, l'unico modo per interagire con la shell è attraverso il linguaggio. È un po 'meno vero per Vim, dove la maggior parte dell'interazione può avvenire attraverso la modalità normale e di inserimento, e anche il numero di comandi di linea di comando usati comunemente può essere limitato.