Como especificar um editor para abrir o arquivo crontab? “Export EDITOR = vi” não funciona

103

Estou usando o Red Hat Enterprise Linux 5 e quero definir o editor vim para editar o arquivo crontab.

Se eu correr echo $EDITOR, fico vim. Mas quando corro crontab -e, consigo um editor diferente.

antonjs
fonte

Respostas:

170

É muito provável que sua VISUALvariável de ambiente esteja definida para outra coisa. Experimentar:

export VISUAL=vi
bmk
fonte
6
variável de configuração export VISUAL=vim( setenv VISUAL "vim"para tcsh shell) funciona MUITO BEM !!
antonjs
9
@ lwpro2: Se VISUALnão for definido, a EDITORvariável é usada. Mas VISUALtem precedência EDITOR.
bmk
Se o crontab for gerenciado por várias pessoas com um usuário, recomendo fazer isso em um subshell, para que o editor padrão permaneça no lugar.
Thomas Böhm
Alguma idéia de por que o arquivo é diferente quando aberto no vi em vez do nano?
dardub
76

Para citar o homem:

A opção -e é usada para editar o crontab atual usando o editor especificado pelas variáveis ​​de ambiente VISUAL ou EDITOR

Na maioria das vezes, se você executar crontab -edo X, você VISUALconfigurou; é isso que é usado. Experimente isto:

VISUAL=vi crontab -e

Funcionou para mim :)

9000
fonte
Obrigado pela explicação, Na verdade, estou executando meu terminal do X.
antonjs
1
A melhor opção se você estiver executando crontab -e com sudo :)sudo VISUAL=vi crontab -e
MediaVince
42

Se os métodos acima não funcionarem (pois não funcionaram na minha instalação do Ubuntu 13.04), tente:

Existem várias maneiras alternativas:

1) Execute o editor de seleção

select-editor

2) Edite manualmente o arquivo: ~/.selected_editorespecificando seu editor preferido. Com esta opção, você pode especificar os parâmetros do editor.

# Generated by /usr/bin/select-editor
SELECTED_EDITOR="/usr/bin/emacs -nw"

3) Você pode especificar na hora na linha de comando com:

env VISUAL="emacs -nw" crontab -e
LD James
fonte
1
Por engano, eu estava definindo o editor padrão como nanoao abrir o crontab pela primeira vez. Então eu tive que usar sudo select-editorpara fazer funcionar. Uma dica se select-editornão funcionar
244an
2
Você não deve usar "sudo" para sua configuração pessoal. Isso pode quebrar coisas, forçando você a permanecer em operação elevada para uso normal do computador. O sudo (comando elevado) é para trabalhar com recursos de todo o sistema fora de sua área pessoal (~ área do usuário).
LD James
5

Acho que você pode precisar usar o caminho completo:

export EDITOR=/usr/bin/vim
Alex Howansky
fonte
3
A armadilha VISUALé verificada primeiro. Portanto, um conselho perfeitamente válido como o seu funciona bem para uma sessão SSH e falha misteriosamente em uma caixa de desktop.
9000 de
Tentei exportar durante a atribuição conforme descrito, mas não funcionou. Atribuir primeiro e depois exportar funcionou para mim, da seguinte forma: EDITOR = / usr / bin / vi; exportar EDITOR. Usando SunOS sob SSH aqui.
Alan
5

Você pode usar o comando abaixo para abri-lo no editor VIM.

export VISUAL=vim; crontab -e

Nota: Certifique-se de que o editor VIM esteja instalado em seu servidor.

Parveen Shukhala
fonte
3

export EDITOR=vim trabalhou para mim

Chema
fonte
2

Não estava funcionando para mim. Eu executo o crontab com sudo, então mudei para root, fiz as sugestões acima, e o crontab abriria no vim, mas ainda não abriria na minha conta de usuário. Finalmente, executei a sudo select-editorpartir da conta do usuário e isso funcionou.

Felwithe
fonte
1
Se você tiver que executar sudo para configurar seu ambiente de usuário, isso significa problemas que você deve resolver. Você executou o sudo em seu espaço pessoal e perdeu a permissão para arquivos que deveriam pertencer a você. Você pode verificar o seu espaço executando: find ~/ -mount ! -user $(whoami). Você pode corrigir o problema executando: sudo chown -R $(whoami):$(whoami) ~/.
LD James
@LDJames Você estava certo, obrigado. Acontece que era apenas o arquivo .select_editor que pertencia ao root.
felwithe
2

Isso funcionou para mim:

EDITOR="/usr/bin/vim"
export EDITOR

Adicione isso a ~ / .bash_profile ou ~ / .bashrc para habilitar isso para o usuário atual.

Caminhar
fonte