Altere o editor de texto padrão do crontab para o vim

100

Estou usando o ubuntu 9.10 e o editor de texto padrão é nano, o que eu odeio. (não todo mundo?)

Normalmente não é um problema, pois eu apenas vi ou gedit tudo, mas estou crontab -eabrindo com o nano. Tentei alterá-lo para o vim usando sudo update-alternatives --config editore selecionando a opção 3 ("/usr/bin/vim.basic"). Isso mudou tanto para o sudo quanto para o não sudo. Mas crontab -eainda abre o nano. Alguma ideia? max

Max Williams
fonte

Respostas:

124

O crontab -ecomando verificará as variáveis ​​de ambiente $EDITORe $VISUALa substituição do editor de texto padrão, portanto ...

export VISUAL=vim

ou

export EDITOR=vim

deve fazer o truque.

njd
fonte
6
Lembre-se de que você está editando o crontab de outro usuário, use sudo -E crontab -ewhere sudo -EEspecifica use your envars.
MarkHu
89

No ubuntu, tente executar:, select-editorque cria interativamente ~/.selected_editor:

# Generated by /usr/bin/select-editor
SELECTED_EDITOR="/usr/bin/vim.basic"
smintz
fonte
Eu tentei isso (no sudo e meu usuário) e qualquer opção que eu mudei, quando eu o chamei novamente, ele ainda estava no nano. Corrigido de qualquer maneira com EDITOR env var, mas pensei que seria melhor mencioná-lo de qualquer maneira. Cheers
Max Williams
4
As respostas acima não funcionaram ... isso funciona.
mlissner
2
Sim, isso altera ~ / .sensible_editor usado por / usr / bin / sensible-editor. Parece que, na ausência das variáveis ​​de ambiente que especificam o editor, o crontab executa o editor sensível, não o editor, pois o primeiro permite a configuração por usuário.
enguia ghEEz
2
@ Maxaxilliams, executar o editor de seleção não mostrará a seleção feita anteriormente, que é armazenada em ~ / .sensible_editor.
enguia ghEEz
5
@eelghEEz - Você quer dizer ~/.selected_editor? É isso que está no meu sistema e o que vi em outros lugares.
Wilson F
12

Se você odeia nanotanto, basta desinstalá-lo:

sudo apt-get remove nano

crontabdeve então apenas usar como padrão o próximo EDITOR(para mim era vim.basic).

complistic
fonte
Executamos nossos trabalhos cron com uma conta de superusuário, mas efetue login em uma conta de desenvolvedor. Então, pela conta do desenvolvedor, eu preciso fazer sudo crontab -e. Eu configurei export EDITOR=vimo .bashrc do superusuário e da conta de desenvolvedor, mas sudo crontab -eainda estava abrindo no nano. Após desinstalar o nano, ele abre o vim. Obrigado!
23713
1
Esta é a única solução que funcionou para mim. Tentou 4-5 coisas antes de este :)
Charlie Wynn
Essa é de longe a melhor solução se, como o OP implica, você nunca precisar de nano. Não sei por que isso não me ocorreu antes - provavelmente não percebi que o crontab seria o padrão para o próximo editor disponível! Impressionante
Lucas
11

De man crontab:

A opção -e é usada para editar o crontab atual usando o editor
especificado pelas variáveis ​​de ambiente VISUAL ou EDITOR. Depois de você
sair do editor, o crontab modificado será instalado automaticamente
normalmente. Se nenhuma das variáveis ​​de ambiente estiver definida, o comando
editor padrão / usr / bin / editor é usado.

Adicione ao seu ~/.bashrc:

export EDITOR=vim
cYrus
fonte
4

A melhor opção é definir a alternativa do editor (não apenas um usuário):

sudo update-alternatives --install /usr/bin/editor editor /usr/bin/vim 100
Gilles Quenot
fonte
3
Por que é melhor alterar a configuração para outros usuários, que não pediram a alteração?
ceving
3
export EDITOR=vi && crontab -e 

trabalha no aperto do debian

Torsten Zenk
fonte
2
Uma pequena explicação ajudaria muito.
ChrisF
3
isso define a variável de ambiente EDITOR e, posteriormente, edita o arquivo crontab, EDITOR=vim crontab -etambém funcionará, mas apenas uma vez.
0x4a6f4672
3

Infelizmente não posso comentar ou votar.

No Ubuntu, o arquivo de configuração é chamado ~/.selected_editor

Com o seguinte comando, você pode selecionar o editor padrão novamente:

$ select-editor

A remoção do arquivo no diretório inicial também funciona.

$ rm ~/.selected_editor

Somente definir as variáveis $VISUALou $EDITORfuncionará, mas será persistente apenas se você a gravar em um script que seja executado em seu ambiente.

Adicione ao seu arquivo rc

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

Mas eu não recomendaria usar a última solução.

André
fonte
Se você não o recomenda, por que você o forneceu?
Ramhound
Apenas para conclusão e porque outras pessoas podem preferir assim.
André
0

Você deve remover o ~/.sensible_editorarquivo da melhor maneira possível e, em seguida, a execução crontab -esolicitará que você escolha o editor preferido.
A partir de então, sua preferência será lembrada no ~/.sensible_editorarquivo.

Jiju Thomas Mathew
fonte
não sei por que isso foi rejeitado, é exatamente o que eu preciso e funcionou perfeitamente.
rob
O Ubuntu parece não saber emacsclient.
ceving
-1

para o Debian, use:

sudo update-alternatives --config editor command

e

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

selecione '2' e pressione enter. Entendi!

reasonpun
fonte
Bem-vindo ao Super Usuário! Por favor, leia a pergunta novamente com atenção. Sua resposta não responde à pergunta original. O OP já tentou isso (está na pergunta) e não resolveu o problema.
DavidPostill
-1

O mais fácil seria se livrar do produto que você não quer na sua totalidade. Todas as outras alterações de configuração seriam automáticas.

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

Osíris
fonte
-1

Em máquinas mais antigas como algumas Debian, isso também funciona e é a solução mais portátil.

mv /usr/bin/editor /usr/bin/.editor
ln -s $(which vim) /usr/bin/editor
hlupaco
fonte
Não, não mexa com nada /usr/binmanualmente; esses locais são gerenciados dpkge não devem ser manipulados diretamente.
Tripleee