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

Max Williams
fuente

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.

njd
fuente
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"
smintz
fuente
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).

cómplice
fuente
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
Ciro
fuente
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
Gilles Quenot
fuente
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

Torsten Zenk
fuente
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.

André
fuente
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.

Jiju Thomas Mathew
fuente
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!

razonador
fuente
¡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

Osiris
fuente
-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
hlupaco
fuente
No, no te metas con nada /usr/binmanualmente; Estas ubicaciones son administradas por dpkgy no deben manipularse directamente.
tripleee