Cambiar el editor de texto predeterminado para crontab a vim


100

Estoy usando ubuntu 9.10 y el editor de texto predeterminado es nano, lo cual odio. (¿no todos?)

Normalmente no es un problema, ya que solo vi o gedit todo, pero se crontab -eestá abriendo con nano. Intenté cambiarlo a vim usando sudo update-alternatives --config editory seleccionando la opción 3 ("/usr/bin/vim.basic"). Esto lo ha cambiado para sudo y no sudo por igual. Pero crontab -eaún se abre nano. ¿Algunas ideas? max

Respuestas:


124

El crontab -ecomando verificará las variables de entorno $EDITORy $VISUALuna anulación del editor de texto predeterminado, así que ...

export VISUAL=vim

o

export EDITOR=vim

debería hacer el truco.


66
Recuerde que si está editando el crontab de otro usuario, use sudo -E crontab -edonde sudo -Eespecifica use sus env env.
MarkHu

89

En ubuntu, intente ejecutar:, select-editorque crea interactivamente ~/.selected_editor:

# Generated by /usr/bin/select-editor
SELECTED_EDITOR="/usr/bin/vim.basic"

Intenté esto (bajo sudo y mi usuario) y cualquier opción que cambié, cuando volví a llamarla todavía estaba en nano. Lo solucioné de todos modos con EDITOR env var, pero pensé que sería mejor mencionarlo de todos modos. Saludos
Max Williams

44
Las respuestas anteriores no funcionaron ... esto sí.
mlissner

2
Sí, esto cambia ~ / .sensible_editor utilizado por / usr / bin / sensible-editor. Parece que en ausencia de las variables de entorno que especifican el editor, crontab ejecuta un editor sensible, no un editor, ya que el primero permite la configuración por usuario.
anguila ghEEz

2
@MaxWilliams, ejecutar select-editor no mostrará la selección realizada previamente, que se almacena en ~ / .sensible_editor.
anguila ghEEz

55
@eelghEEz - ¿Quieres decir ~/.selected_editor? Eso es lo que hay en mi sistema y lo que he visto en otros lugares.
Wilson F

12

Si odias nanotanto, puedes desinstalarlo:

sudo apt-get remove nano

crontabdebería entonces simplemente EDITORpasar al siguiente (para mí fue vim.basic).


Ejecutamos nuestros trabajos cron con una cuenta de superusuario, pero iniciamos sesión en una cuenta de desarrollo. Entonces, desde la cuenta de desarrollador, tengo que hacer sudo crontab -e. Configuré export EDITOR=vimtanto en el superusuario como en la cuenta de desarrollo .bashrc, pero sudo crontab -etodavía estaba abriendo en nano. Después de desinstalar nano, abre vim. ¡Gracias!
Arun

1
Esta es la única solución que funcionó para mí. Intenté 4-5 cosas antes de esto :)
Charlie Wynn

Esta es, de lejos, la mejor solución si, como lo indica el OP, nunca necesita nano. No estoy seguro de por qué no se me ocurrió antes, ¡probablemente no me di cuenta de que crontab simplemente pasaría por defecto al siguiente editor disponible! Impresionante
Luke

11

De man crontab:

La opción -e se usa para editar el crontab actual usando el editor
especificado por las variables de entorno VISUAL o EDITOR. Después de ti
salir del editor, el crontab modificado se instalará automáticamente
cally Si ninguna de las variables de entorno está definida, entonces el
Se utiliza el editor / usr / bin / editor predeterminado.

Añadir a tu ~/.bashrc:

export EDITOR=vim

4

La mejor opción es establecer una alternativa de editor (no solo un usuario):

sudo update-alternatives --install /usr/bin/editor editor /usr/bin/vim 100

3
¿Por qué es mejor cambiar la configuración para otros usuarios que no solicitaron el cambio?
ceving

3
export EDITOR=vi && crontab -e 

funciona en exprimir Debian


2
Una pequeña explicación sería de gran ayuda.
ChrisF

3
esto establece la variable de entorno EDITOR y posteriormente edita el archivo crontab, EDITOR=vim crontab -efuncionará también, pero solo una vez.
0x4a6f4672

3

Lamentablemente no puedo comentar ni votar.

En Ubuntu, el archivo de configuración se llama ~/.selected_editor

Con el siguiente comando puede seleccionar nuevamente el editor predeterminado :

$ select-editor

Eliminar el archivo en su directorio de inicio también funciona.

$ rm ~/.selected_editor

Solo establecer las variables $VISUALo $EDITORfuncionará, pero solo es persistente si lo escribe en un script que se ejecuta en su entorno.

Agregar a su archivo rc

$ echo "export VISUAL=/usr/bin/vi" >> ~/.bashrc

Pero no recomendaría usar la última solución.


Si no lo recomienda, ¿por qué lo proporcionó?
Ramhound

Solo para completar y porque otras personas pueden preferir de esa manera.
André

0

Lo mejor es eliminar el ~/.sensible_editorarchivo y luego ejecutarlo crontab -ele pedirá que elija el editor preferido.
A partir de entonces, su preferencia será recordada en el ~/.sensible_editorarchivo.


No estoy seguro de por qué esto fue rechazado. Es exactamente lo que necesito y funcionó perfectamente.
robar

Ubuntu no parece saberlo emacsclient.
ceving

-1

para Debian, use:

sudo update-alternatives --config editor command

y

 ----------------------------------------------------------
06  * 0          /bin/nano            40       
07  1            /bin/nano            40       
08  2            /usr/bin/vim.basic   30        
09  3            /usr/bin/vim.tiny    10        

seleccione '2' y presione enter. ¡Entendido!


¡Bienvenido a Super User! Por favor lea la pregunta otra vez cuidadosamente. Su respuesta no responde a la pregunta original. El OP ya lo intentó (está en la pregunta) y no solucionó su problema.
DavidPostill

-1

Lo más fácil sería deshacerse del producto que no desea en su totalidad. Todos los demás cambios de configuración serían automáticos.

apt-get install vim -y && apt-get remove nano -y


-1

En máquinas más antiguas como algunas Debian, esto también funciona y es la solución más portátil.

mv /usr/bin/editor /usr/bin/.editor
ln -s $(which vim) /usr/bin/editor

No, no te metas con nada /usr/binmanualmente; Estas ubicaciones son administradas por dpkgy no deben manipularse directamente.
tripleee
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.