Cambia l'editor di testo predefinito per crontab in vim


100

Sto usando Ubuntu 9.10 e l'editor di testo predefinito è nano, che odio. (non tutti?)

Normalmente non è un problema dato che ho solo vi o gedit tutto, ma si crontab -esta aprendo con nano. Ho provato a cambiarlo in vim usando sudo update-alternatives --config editore selezionando l'opzione 3 ("/usr/bin/vim.basic"). Questo è cambiato per sudo e non sudo allo stesso modo. Ma crontab -eapre ancora nano. Qualche idea? max

Risposte:


124

Il crontab -ecomando controllerà le variabili di ambiente $EDITORe $VISUALper una sostituzione dell'editor di testo predefinito, quindi ...

export VISUAL=vim

o

export EDITOR=vim

dovrebbe fare il trucco.


6
Ricorda se stai modificando il crontab di un altro utente, usa sudo -E crontab -edove sudo -Especifica usa i tuoi parametri.
MarkHu,

89

In Ubuntu, prova a eseguire:, select-editorche crea interattivamente ~/.selected_editor:

# Generated by /usr/bin/select-editor
SELECTED_EDITOR="/usr/bin/vim.basic"

ho provato questo (sotto sudo e il mio utente) e qualunque opzione ho cambiato, quando l'ho chiamato di nuovo era ancora su nano. Risolto comunque con EDITOR env var ma pensavo che avrei fatto meglio a menzionarlo comunque. Saluti
Max Williams,

4
Le risposte sopra non hanno funzionato ... questo funziona.
mlissner

2
Sì, questo cambia ~ / .sensible_editor usato da / usr / bin / sensible-editor. Sembra che in assenza delle variabili di ambiente che specificano l'editor, crontab esegue l'editor sensibile non l'editor poiché il primo consente la configurazione per utente.
Eel GhEEz,

2
@MaxWilliams, eseguendo select-editor non mostrerà la selezione precedentemente effettuata, che è memorizzata in ~ / .sensible_editor.
Eel GhEEz,

5
@eelghEEz - Intendi ~/.selected_editor? Questo è ciò che è sul mio sistema e quello che ho visto altrove.
Wilson F,

12

Se odi nanocosì tanto, puoi semplicemente disinstallarlo:

sudo apt-get remove nano

crontabdovrebbe quindi semplicemente passare al successivo EDITOR(per me lo era vim.basic).


Eseguiamo i nostri lavori cron con un account superutente, ma accediamo a un account dev. Quindi, dall'account di sviluppo, devo farlo sudo crontab -e. Ho impostato export EDITOR=vimsia il superutente che l'account dev .cashrc, ma si sudo crontab -estava ancora aprendo in nano. Dopo aver disinstallato nano, si apre vim. Grazie!
arun

1
Questa è l'unica soluzione che ha funzionato per me. Ho provato 4-5 cose prima di questo :)
Charlie Wynn il

Questa è di gran lunga la soluzione migliore se, come suggerisce l'OP, non hai mai bisogno di nano. Non sono sicuro del perché non mi sia mai venuto in mente prima - probabilmente che non avevo realizzato che crontab sarebbe semplicemente passato al prossimo editor disponibile! Fantastico
Luca

11

Da man crontab:

L'opzione -e è usata per modificare l'attuale crontab usando l'editor
specificato dalle variabili di ambiente VISUAL o EDITOR. Dopo di te
esci dall'editor, il crontab modificato verrà installato automaticamente
Cally. Se nessuna delle variabili d'ambiente è definita, allora il
viene utilizzato l'editor predefinito / usr / bin / editor.

Aggiungi a ~/.bashrc:

export EDITOR=vim

4

La scelta migliore è impostare l'alternativa dell'editor (non solo un utente):

sudo update-alternatives --install /usr/bin/editor editor /usr/bin/vim 100

3
Perché è meglio cambiare l'impostazione per gli altri utenti, che non hanno chiesto la modifica?
ceving

3
export EDITOR=vi && crontab -e 

lavora su debian squeeze


2
Una piccola spiegazione farebbe molto.
ChrisF,

3
questo imposta la variabile d'ambiente EDITOR e successivamente modifica il file crontab, EDITOR=vim crontab -efunzionerà anche, ma solo una volta.
0x4a6f4672,

3

Purtroppo non posso commentare o votare.

Su Ubuntu viene chiamato il file di configurazione ~/.selected_editor

Con il seguente comando è possibile selezionare nuovamente l' editor predefinito :

$ select-editor

Anche la rimozione del file nella directory principale funziona.

$ rm ~/.selected_editor

L'impostazione solo delle variabili $VISUALo $EDITORfunzionerà, ma è persistente solo se la si scrive in uno script che viene eseguito nel proprio ambiente.

Aggiungi al tuo file rc

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

Ma non consiglierei di usare l'ultima soluzione.


Se non lo consigli perché lo hai fornito?
Ramhound,

Solo per completamento e perché altre persone potrebbero preferire in quel modo.
André,

0

Dovresti rimuovere meglio il ~/.sensible_editorfile e quindi in esecuzione crontab -eti chiederà di scegliere l'editor preferito.
Da quel momento in poi le tue preferenze verranno ricordate nel ~/.sensible_editorfile.


non sono sicuro del motivo per cui questo è stato votato, è esattamente quello di cui ho bisogno e ha funzionato perfettamente.
rapina il

Ubuntu non sembra saperlo emacsclient.
ceving

-1

per Debian, usare:

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        

seleziona "2" e premi invio. Fatto!


Benvenuto in Super User! Si prega di leggere di nuovo attentamente la domanda. La tua risposta non risponde alla domanda originale. L'OP ha già provato questo (è nella domanda) e non ha risolto il suo problema.
DavidPostill

-1

Il più semplice sarebbe sbarazzarsi del prodotto che non si desidera nella sua interezza. Tutte le altre modifiche alla configurazione sarebbero automatiche.

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


-1

Su macchine più vecchie come alcune Debian, funziona anche ed è la soluzione più portatile.

mv /usr/bin/editor /usr/bin/.editor
ln -s $(which vim) /usr/bin/editor

No, non scherzare con nulla /usr/binmanualmente; queste posizioni sono gestite da dpkge non devono essere manipolate direttamente.
tripleee,
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.