2012-05-23 17 views
18

Estaba escribiendo un script de shell y me encontré con un problema. ¿Hay alguna manera de abrir un archivo usando el editor de texto especificado del usuario?¿Abrir el editor de texto predeterminado en bash?

+0

Tenga cuidado: algunos usuarios configurarán EDITOR en un programa que se demoniza a sí mismo, y su script no podrá esperar fácilmente a que finalicen. –

+1

@WilliamPursell ¿Por qué alguien haría tal cosa? ¿Podrían darme un escenario donde sea apropiado? – kraxor

+0

@kraxor, yo diría que nunca es apropiado, pero algunas personas hacen cosas locas. No es inusual que alguien quiera un editor de GUI que genere una nueva ventana. –

Respuesta

22

El editor elegido por el usuario debe estar en $EDITOR, pero igual debe elegir un valor por defecto.

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

Es posible que desee hacer más reembolsos, por ejemplo: $ {EDITOR: - $ {VISUAL: -vi}} –

+0

¿Qué pasa con '$ {FCEDIT: - $ {VISUAL: - $ {EDITOR: -vi}}}'? Dar una preferencia VISUAL sobre '$ EDITOR' que contiene' ed' parece una buena idea. '$ FCEDIT' fue el env var para' ksh' (probablemente aún lo es), donde el comando 'fc' se usa para acceder al historial; también es reconocido por 'bash'. –

5

derecho de Ignacio (aunque podría decirse que, la de reserva debe ser ed, que POSIX requiere estar presente, aunque es esencialmente sólo es útil para viejos).

Si está pensando en editores gráficos, xdg-open file.txt es lo que está buscando.

+0

POSIX requiere 'vi' también, ¿no? ¿O es solo la opción de utilidades de portabilidad del usuario para POSIX donde 'ed' no lo es? Pero +1 por mencionar 'ed'. –

+1

En la discusión de la variable de entorno 'POSIX2_UPE' (el nombre anterior para la característica era Extensión de portabilidad del usuario, UPE) en [POSIX 2008] (http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap02.html), hay una lista de las características que están en la UPU: '_ La lista de utilidades en la opción Utilidades de portabilidad del usuario es la siguiente: 'bg',' ex', 'fc',' fg', 'jobs',' más ',' talk', 'vi'._ Entonces, en teoría, si tienes el comando' fc', también deberías tener 'vi' disponible. –

0

nota: xdg-open file.xml se abrirá en un navegador web, muy probablemente. Entonces, intente;

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