Estaba buscando un comando que, con suerte, abriría el editor de texto favorito del usuario actual, porque estoy escribiendo algunas instrucciones con comandos en un blog. Esperaba un comando como edit
y encontré editor
. Para mí, inició vim en la terminal, que está cerca de lo que Quería; uso vim-gtk. Comencé a buscar una manera de hacer que el editor usara vim-gtk y encontré esta pregunta que explica una $EDITOR
variable de entorno, pero no estoy seguro si eso está relacionado con el comando editor
. Probé man editor
, pero eso acaba de abrir la página de manual de vim.
¿Cómo puedo hacer que editor
use un editor de texto de mi elección, o debería usar un comando diferente?
Respuesta
Este es un Debian-ismo (y por lo tanto aparece en Ubuntu, Mint, etc.). Han configurado una llamada de enlace ed editor
. Puede rastrearlo de la siguiente manera:
$ which editor /usr/bin/editor $ ls -l /usr/bin/editor lrwxrwxrwx 1 root root 24 Nov 24 19:10 /usr/bin/editor -> /etc/alternatives/editor $ ls -l /etc/alternatives/editor lrwxrwxrwx 1 root root 18 Nov 24 19:46 /etc/alternatives/editor -> /usr/bin/vim.gnome $ ls -l /usr/bin/vim.gnome -rwxr-xr-x 1 root root 2403392 Oct 26 2012 /usr/bin/vim.gnome
Entonces puede ver que editor
es solo un enlace Unix a el ejecutable vim.gnome
.
¿Usa editor
?
No «creo que yo» Iré en esa dirección de configurar editor
de una manera significativa para los usuarios, dado que no es lo que yo consideraría estándar.
Además, puede configurar el $EDITOR
variable de entorno para apuntar a cualquier cosa que desee, vim
, gedit
, emacs
, etc. Pero esta variable solo está garantizada para ser utilizada por otras herramientas como sudo
, git
y subversion
que están específicamente diseñadas para vincularse al uso de la variable $EDITOR
.
Ideas de implementación
Simplemente configuraría un alias de su propia elección e indicaría a los usuarios que está disponible para ellos a través de su archivo $HOME/.bashrc
como alias X, o configúrelo como una configuración del sistema en el archivo /etc/profile.d/our_aliases.sh
, como alias X.
O simplemente podría decirles a los usuarios que los sistemas «proporcionan gedit
, gvim
, vim
, emacs
, etc. y elimine la capa de azúcar y enséñeles sobre estas cosas desde el principio.
O podría proporcionar un texto archivo llamado /etc/help.txt
que podrían ejecutar mediante un comando help
(alias help="less /etc/help.txt"
) en un shell que proporcionaría comandos básicos y cómo realizar varias tareas. Este enfoque le permite personalizar la ayuda a medida que pasa el tiempo con nuevas funciones o consejos y les brinda más que solo el editor
comando de conveniencia.
Comentarios
Responder
El programa editor llamado por algunos programas cuando les dice que editen un archivo. Debe configurar la variable de entorno usted mismo.
Si usa csh o tcsh, en el indicador de shell:
setenv EDITOR vim
Si usa bash o ksh, luego ingrese:
EDITOR=vim; export EDITOR
(Reemplace «vim» con el editor que desea usar).
El EDITOR
variable es la que necesita por defecto para que algunas aplicaciones invoquen el editor. Hay otra variable llamada VISUAL
que se usa para especificar el editor orientado a pantalla. Por lo general, querrá establecerlo en el mismo valor que la variable EDITOR
. Originalmente EDITOR
se habría configurado en ed (un editor basado en líneas) y VISUAL
se habría «configurado en vi (una pantalla- editor basado en).
VISUAL="vim"; export VISUAL VISUAL="$EDITOR"; export VISUAL #even better
Cuando haya hecho esto, la mayoría de los programas Unix que usan editores de texto usarán el editor que ha configurado. Siguiendo los comandos anteriores, establecerá el editor predeterminado solo para la sesión informática actual. Para que estos cambios sean permanentes, deberá colocar los comandos apropiados descritos anteriormente en su .login
o .cshrc
archivos (para usuarios de csh o tcsh) o su archivo .profile
(si usa bash o ksh).
También hay otra variable de entorno, si pretende utilizar Emacs. Es ALTERNATE_EDITOR
y tiene el mismo efecto, pero se usa cuando se invoca a Emacs con la opción --alternate-editor
.
Del Manual de GNU Emacs :
La opción
--alternate-editor=command
es útil cuando se ejecutaemacsclient
en un script. Especifica un comando para ejecutar siemacsclient
no se comunica con Emacs. Por ejemplo, la siguiente configuración para la variable de entornoEDITOR
siempre proporcionará un editor, incluso si Emacs no se está ejecutando:EDITOR="emacsclient --alternate-editor vi +%d %s"
Comentarios
- Decir
sh
doesn ‘ no tiene sentido.sh
suele ser el shell ‘ del sistema. Solía ser el shell de Thomson, luego el shell de Bourne y, en la actualidad, en la mayoría de los sistemas, un shell u otro implementaba la especificación POSIXsh
. La sintaxisexport EDITOR=vim
es POSIX, pero no Bourne ni Thomson. Elexport VISUAL=$EDITOR
funciona enbash
y algunas implementaciones deksh
. Necesitaexport VISUAL="$EDITOR"
en la mayoría de los demás shells.VISUAL=$EDITOR export VISUAL
funcionará en todos los shells similares a Bourne, incluido el shell Bourne. - ¿Es común y aceptado establecer
EDITOR
a un valor de varias palabras como ese? Si es así, no puedo usarwhich "$EDITOR"
owhich $EDITOR
de forma segura para verificar si está presente.
Respuesta
Deberá especificar el editor
en la variable de entorno EDITOR
. Agregue el siguiente comando en su .profile
:
export EDITOR=editor
Si desea vim
como editor predeterminado, agregará en su lugar
export EDITOR=vim
Preferencia personal: uso la ruta absoluta del editor en la variable de entorno. Por ejemplo,
export EDITOR=/usr/bin/vim
Responder
El El comando editor
es específico de ubuntu. No es portátil ni siquiera común (fuera de ubuntu). El comando también se establece en todo el sistema y no por usuario. La forma en que funciona es que /usr/bin/editor
es solo un enlace simbólico a un editor en el sistema. Como tal, es la misma para todos los usuarios.
La variable de entorno $EDITOR
es bastante estándar. Es utilizado por muchos programas que necesitan que el usuario edite algo. Como tal, es esta variable la que debe utilizar cuando desee invocar el editor del usuario.
Comentarios
- No es específico de Ubuntu, viene de Debian y usa el mecanismo de alternativas de Debian ‘ s. Está ‘ s disponible en todos los derivados de Debian, no solo Ubuntu.
Respuesta
Esto es lo que estoy usando en mi script:
# Find a suitable text editor editor="$VISUAL" [ -z "$editor" ] && editor="$EDITOR" [ -z "$editor" ] && which editor >/dev/null && editor=editor [ -z "$editor" ] && which nano >/dev/null && editor=nano [ -z "$editor" ] && which vi >/dev/null && editor=vi [ -z "$editor" ] && editor=no_editor_found # Use the editor we found $editor "$filename"
No he envuelto entre comillas la llamada final a $editor
para asegurarme de que el ejemplo anterior de emacsclient funcionará.
Por eso, creo que es importante establecer siempre algún valor para editor
; de lo contrario, la última línea podría ejecutar involuntariamente $ filename . En mi caso, elegí no_editor_found
pero podrías igualmente use pico
o ed
allí.
$EDITOR
variable, ahora ¿Puede ‘ t confiar en eso o en eleditor
enlace simbólico.s/Ubuntu/Debian/g