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.