Come specificare un editor per aprire il file crontab? "Export EDITOR = vi" non funziona


103

Sto usando Red Hat Enterprise Linux 5 e voglio impostare l'editor di vim per modificare il file crontab.

Se corro echo $EDITOR, ottengo vim. Ma quando corro crontab -e, ottengo un editor diverso.

Risposte:


170

È molto probabile che la tua VISUALvariabile d'ambiente sia impostata su qualcos'altro. Provare:

export VISUAL=vi

6
l'impostazione della variabile export VISUAL=vim( setenv VISUAL "vim"per la shell tcsh) funziona alla grande !!
antonjs

9
@ lwpro2: Se VISUALnon è impostato, EDITORviene utilizzata la variabile. Ma VISUALha la precedenza EDITOR.
bmk

Se il crontab è gestito da più persone con un utente, consiglio di farlo in una subshell, in modo che l'editor predefinito rimanga al suo posto.
Thomas Böhm

Qualche idea sul perché il file sia diverso se aperto in vi invece che in nano?
dardub

76

Per citare l'uomo:

L'opzione -e è usata per modificare il crontab corrente usando l'editor specificato dalle variabili d'ambiente VISUAL o EDITOR

Molto spesso, se esegui crontab -eda X, hai VISUALimpostato; questo è ciò che viene utilizzato. Prova questo:

VISUAL=vi crontab -e

Ha funzionato per me :)


Grazie per la spiegazione, infatti sto eseguendo il mio terminale da X.
antonjs

1
La migliore opzione se stai eseguendo crontab -e con sudo :)sudo VISUAL=vi crontab -e
MediaVince

42

Se i metodi precedenti non funzionano (poiché non hanno funzionato sulla mia installazione di Ubuntu 13.04) prova:

Esistono diversi modi alternativi:

1) Esegui select-editor

select-editor

2) Modifica manualmente il file: ~/.selected_editorspecificando il tuo editor preferito. Con questa opzione puoi specificare i parametri dell'editor.

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

3) È possibile specificare al volo sulla riga di comando con:

env VISUAL="emacs -nw" crontab -e

1
Per errore ho impostato l'editor predefinito su nanoquando ho aperto crontab per la prima volta. Poi ho dovuto usarlo sudo select-editorper farlo funzionare. Un suggerimento se solo select-editornon funziona
244 un

2
Non dovresti usare "sudo" per la tua configurazione personale. Potrebbe rompere le cose costringendoti a rimanere in operazioni elevate per il normale utilizzo del computer. Il sudo (comando elevato) serve per lavorare con funzionalità a livello di sistema al di fuori della tua area personale (~ area utente).
LD James

5

Penso che potresti dover utilizzare il percorso completo:

export EDITOR=/usr/bin/vim

3
La trappola è che VISUALviene controllata per prima. Quindi un consiglio perfettamente valido come il tuo funziona bene per una sessione SSH e misteriosamente fallisce su una scatola desktop.
9000

Ho provato a esportare durante l'assegnazione come descritto, ma non ha funzionato. Assegnando prima e poi esportando ha funzionato per me, in questo modo: EDITOR = / usr / bin / vi; esportare EDITOR. Usare SunOS sotto SSH qui.
Alan

5

È possibile utilizzare il comando seguente per aprirlo nell'editor VIM.

export VISUAL=vim; crontab -e

Nota: assicurati che l'editor VIM sia installato sul tuo server.



2

Non funzionava per me. Eseguo crontab con sudo, quindi sono passato a root, ho eseguito i suggerimenti sopra e crontab si sarebbe aperto in vim, ma non lo sarebbe stato ancora dal mio account utente. Alla fine sono corso sudo select-editordall'account utente e questo ha funzionato.


1
Se devi eseguire sudo per configurare il tuo ambiente utente, questo significa problemi che dovresti affrontare. Hai eseguito sudo sul tuo spazio personale e hai perso il permesso per i file che dovrebbero essere di tua proprietà. È possibile controllare il vostro spazio eseguendo: find ~/ -mount ! -user $(whoami). È possibile correggere il problema eseguendo: sudo chown -R $(whoami):$(whoami) ~/.
LD James

@LDJames Avevi ragione, grazie. A quanto pare, era solo il file .select_editor che era di proprietà di root.
felwithe

2

Questo ha funzionato per me:

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

Aggiungilo a ~ / .bash_profile o ~ / .bashrc per abilitarlo per l'utente corrente.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.