Ninguno
xdg-open some_file
ni
$EDITOR some_file
es infalible, a menos que usted defina "predeterminado" como lo que invocan, que no es el sentido en el que se usa comúnmente.
Por ejemplo, en mis sistemas xenial:
No tengo una variable EDITOR global definida:
$ env | grep EDITOR
$ echo $EDITOR
$
Por lo tanto, $EDITOR some_file
falla completamente en un entorno de interfaz gráfica de usuario (x & openbox, en lxterminal) o en un tty.
En un entorno gui xdg-open some_file
abre el archivo en vi. En pocas palabras, INTENTA hacer lo mismo, pero falla. Pero vi no es mi editor "predeterminado" en el sentido de que la palabra se usa más comúnmente. Todos los administradores de archivos que he instalado están de acuerdo en que mi editor predeterminado es ed
(no, NO ESO ed
; si fuera tan masoquista lo usaría vi
, ed
es un script que escribí).
Puede haber una justificación para definir "predeterminado" en términos de uno u otro de esos comandos, pero en el uso general de la gran mayoría de los usuarios, "predeterminado" es un adjetivo aplicado a cualquier programa que abra un archivo cuando doble o solo haga clic en él en un navegador de archivos gui (como Nautilus, Pcmanfm, Thunar, etc.), (doble o simple dependiendo de la configuración en ese navegador de archivos PARTICULAR). O, alternativamente, cualquier programa que abra el archivo cuando lo resalte y presione enter en un navegador de archivos ortodoxo como Midnight Commander.
Por lo tanto, en el uso más común de "predeterminado", puede tener un valor predeterminado diferente para cada navegador de archivos, y cuando habla de valores predeterminados sin calificación significa lo que sea el valor predeterminado en el navegador de archivos predeterminado. Y el explorador de archivos predeterminado en un entorno gráfico sería el que se abre si hace doble clic en un directorio (también conocido como "carpeta") o un enlace simbólico a un directorio en el escritorio, o si no usa la metáfora del escritorio, tal vez El más destacado en un menú. Hasta donde sé, en este sentido, que es el uso normal del mundo real, la respuesta de Sumeet Deshmukh es totalmente correcta y totalmente completa. También puede estar en los sentidos más abstractos.
En un entorno no gráfico, fuera de un administrador de archivos ortodoxo, el sentido común de la palabra "predeterminado", aplicado a un editor, no tiene una aplicación normal. Nadie que trabaje en tty invoca un editor con xdg-open some_file
o a $EDITOR some_file
menos que esté trabajando en la máquina de otra persona, no quiere instalar nada y se ha desesperado. Abren un editor invocando directamente el que quieren abrir, POR NOMBRE. Si lo consiguen bash: gedit: command not found
, prueban su segundo favorito, etc. El valor predeterminado es irrelevante. Lo único que importa son sus preferencias y lo que está instalado o puede instalarse.
El punto principal:
. . . gksu gedit /path/file.txt que no funcionará porque gedit no es el editor de texto predeterminado. . . .
Incorrecto. Y es por eso que publiqué, para explicar por qué esa declaración es incorrecta y por qué ese comando falló. Lo que es el editor predeterminado, sin importar cómo lo defina, es irrelevante.
Para que ese comando funcione, necesitas 2 cosas:
Ambos programas gksu
y gedit
deben estar instalados en el sistema.
Debe tener los permisos adecuados para el archivo y sus directorios ancestrales. Debe tener x en todos los directorios de la ruta, al menos r en el archivo en sí, y probablemente al menos r en el directorio padre. Algunos editores pueden requerir w en el archivo o incluso en el directorio principal, aunque no deberían hacerlo.
Debería saber por qué el comando falló al leer el mensaje de error. Si te gusta gedit, instálalo.
Pero el gksu es peligroso. Usa gksudo si lo necesitas. Pero no use ninguno de los comandos de tipo su / sudo / gksu / gksudo / pkexec a menos que el siguiente comando falle sin él. E incluso entonces, solo si DEBERÍA haber fallado. Si debería haber funcionado, usar algún comando sudo-ish para HACERLO funcionar es como "Si no encaja, obtén un martillo más grande". Creará más problemas en el futuro. En ese caso, corrija los permisos e intente averiguar por qué estaban equivocados en primer lugar.
Tampoco ninguno de los comandos de tipo sudo es omnipotente. A veces, DEBE cambiar los permisos antes de poder editar el archivo incluso CON gksudo.
Con respecto a los peligros de gksu
escuchar a Paddy, quien comentó sobre la respuesta de Sumeet. Él es un tipo sabio que ha existido por un tiempo. Repitiendo sus 3 enlaces:
https://askubuntu.com/a/288506/2088
https://bugs.launchpad.net/ubuntu/+source/gksu/+bug/1186676
http://ubuntuforums.org/showthread.php?t=1819589