2012-05-23 16 views
18

Stavo scrivendo uno script di shell e ho riscontrato un problema. C'è un modo per aprire un file usando l'editor di testo specificato dall'utente?Aprire l'editor di testo predefinito in bash?

+0

Attenzione: alcuni utenti imposteranno EDITOR su un programma che si demonizza da solo e il tuo script non sarà in grado di attendere facilmente che finiscano. –

+1

@WilliamPursell Perché qualcuno dovrebbe fare una cosa del genere? Potresti per favore darmi uno scenario dove è appropriato? – kraxor

+0

@kraxor, direi che non è mai appropriato, ma alcune persone fanno cose pazze. Non è insolito per qualcuno volere un editor di gui che genera una nuova finestra. –

risposta

22

L'editor scelto dall'utente deve essere in $EDITOR, ma è comunque necessario scegliere un predefinito corretto.

"${EDITOR:-vi}" file.txt 
+3

Si potrebbe voler fare più fallback, ad esempio: $ {EDITOR: - $ {VISUAL: -vi}} –

+0

Cosa dire '$ {FCEDIT: - $ {VISUAL: - $ {EDITOR: -vi}}}'? Dare una preferenza VISUAL a '$ EDITOR' che contiene' ed' sembra una buona idea. '$ FCEDIT' era l'env var per' ksh' (probabilmente lo è ancora), dove il comando 'fc' è usato per accedere alla cronologia; è anche riconosciuto da 'bash'. –

5

destra di Ignacio (anche se probabilmente, il fallback dovrebbe essere ed, che POSIX richiede di essere presenti, anche se è essenzialmente utile solo per veterani).

Se stai pensando agli editor grafici, xdg-open file.txt è quello che cerchi.

+0

POSIX richiede 'vi' troppo, vero? O è solo l'opzione User Portability Utilities per POSIX, dove 'ed' non lo è. Ma +1 per menzionare 'ed'. –

+1

Sotto la discussione della variabile di ambiente 'POSIX2_UPE' (il vecchio nome per funzionalità era User Portability Extension, UPE) in [POSIX 2008] (http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap02.html), c'è una lista delle funzionalità che si trovano nell'UPU: '_L'elenco delle utilità nell'opzione User Portability Utilities è la seguente: 'bg',' ex', 'fc',' fg', 'jobs',' altro ',' talk', 'vi'._ Quindi, in teoria, se hai il comando' fc', dovresti anche avere 'vi' disponibile. –

0

nota: xdg-open file.xml si aprirà in un browser Web, molto probabilmente. Quindi, prova;

# select your default sensible-editor from all installed editors, or not. 
    select-editor 
    # Open Default Text Editor 
    sensible-editor file.xml 
Problemi correlati