Ändern Sie den Standardtexteditor für crontab in vim


100

Ich benutze Ubuntu 9.10 und der Standard-Texteditor ist Nano, was ich hasse. (Nicht jeder?)

Normalerweise ist es kein Problem, da ich nur vi oder gedit alles, aber crontab -emit Nano öffne. Ich habe versucht, es mit der sudo update-alternatives --config editorOption 3 ("/usr/bin/vim.basic") auf vim umzustellen. Dies hat es für Sudo und Nicht-Sudo gleichermaßen geändert. crontab -eÖffnet aber immer noch nano. Irgendwelche Ideen? max

Antworten:


124

Der crontab -eBefehl überprüft die Umgebungsvariablen $EDITORund $VISUALsucht nach einer Überschreibung des Standardtexteditors.

export VISUAL=vim

oder

export EDITOR=vim

sollte den Trick machen.


6
Denken Sie daran, wenn Sie die Crontab eines anderen Benutzers bearbeiten, verwenden Sie, sudo -E crontab -ewo sudo -Eangegeben, Ihre Umgebungsvariablen.
MarkHu

89

Versuchen Sie in Ubuntu Folgendes auszuführen:, select-editorwodurch interaktiv Folgendes erstellt wird ~/.selected_editor:

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

Ich habe es versucht (unter sudo und meinem Benutzer) und jede Option, die ich geändert habe, als ich es erneut aufrief, war es immer noch auf Nano. Es wurde trotzdem mit EDITOR env var behoben, aber ich dachte, ich erwähne es trotzdem besser. Prost
Max Williams

4
Die obigen Antworten haben nicht funktioniert ... das tut es.
mlissner

2
Ja, dies ändert ~ / .sensible_editor, der von / usr / bin / sensible-editor verwendet wird. Es scheint, dass crontab in Abwesenheit der Umgebungsvariablen, die den Editor spezifizieren, einen vernünftigen Editor und keinen Editor ausführt, da der erstere die Konfiguration pro Benutzer ermöglicht.
Aal Ghez

2
@MaxWilliams zeigt beim Ausführen des Auswahleditors nicht die zuvor getroffene Auswahl an, die in ~ / .sensible_editor gespeichert ist.
Aal Ghez

5
@eelghEEz - Meinst du ~/.selected_editor? Das ist, was auf meinem System ist und was ich woanders gesehen habe.
Wilson F

12

Wenn Sie nanoso viel hassen , können Sie es einfach deinstallieren:

sudo apt-get remove nano

crontabsollte dann einfach auf den nächsten voreingestellt sein EDITOR(bei mir war es das vim.basic).


Wir führen unsere Cron-Jobs mit einem Super-User-Account aus, melden uns jedoch bei einem Dev-Account an. Also von Dev Account muss ich machen sudo crontab -e. Ich habe export EDITOR=vimsowohl die .bashrc-Datei des Super-Users als auch des Entwicklerkontos eingestellt, habe mich aber sudo crontab -eimmer noch in Nano geöffnet. Nach der Deinstallation von nano wird vim geöffnet. Vielen Dank!
Arun

1
Dies ist die einzige Lösung, die für mich funktioniert hat. Versuchte 4-5 Dinge vor diesem :)
Charlie Wynn

Dies ist bei weitem die beste Lösung, wenn Sie, wie aus dem OP hervorgeht, niemals Nano benötigen. Ich bin mir nicht sicher, warum es mir vorher nicht in den Sinn gekommen ist - wahrscheinlich wusste ich nicht, dass crontab standardmäßig zum nächsten verfügbaren Editor wechseln würde! Genial
Luke

11

Von man crontab:

Die Option -e wird verwendet, um die aktuelle Crontab mit dem Editor zu bearbeiten
angegeben durch die Umgebungsvariablen VISUAL oder EDITOR. Nach dir
Verlassen Sie den Editor, die geänderte crontab wird automatisch installiert.
kalisch. Wenn keine der Umgebungsvariablen definiert ist, wird die
Standardeditor / usr / bin / editor wird verwendet.

Hinzufügen zu ~/.bashrc:

export EDITOR=vim

4

Die bessere Wahl ist, die Alternative des Editors festzulegen (nicht nur einen Benutzer):

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

3
Warum ist es besser, die Einstellung für andere Benutzer zu ändern, die nicht nach der Änderung gefragt haben?
Ceving

3
export EDITOR=vi && crontab -e 

arbeitet an debian squeeze


2
Eine kleine Erklärung würde viel bewirken.
ChrisF

3
Dies setzt die Umgebungsvariable EDITOR und bearbeitet anschließend die crontab-Datei. Dies EDITOR=vim crontab -efunktioniert auch, jedoch nur einmal.
0x4a6f4672

3

Leider kann ich keinen Kommentar abgeben oder abstimmen.

Unter Ubuntu wird die Konfigurationsdatei aufgerufen ~/.selected_editor

Mit dem folgenden Befehl können Sie den Standardeditor erneut auswählen :

$ select-editor

Das Entfernen der Datei in Ihrem Home-Verzeichnis funktioniert ebenfalls.

$ rm ~/.selected_editor

Nur das Setzen der Variablen $VISUALoder $EDITORwird funktionieren, ist aber nur dann beständig, wenn Sie es in ein Skript schreiben, das in Ihrer Umgebung ausgeführt wird.

Fügen Sie Ihrer RC-Datei hinzu

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

Aber ich würde nicht empfehlen, die letzte Lösung zu verwenden.


Wenn Sie es nicht empfehlen, warum haben Sie es bereitgestellt?
Ramhound

Nur zur Vervollständigung und weil andere Leute diesen Weg bevorzugen.
André

0

Sie sollten die ~/.sensible_editorDatei am besten entfernen , und wenn Sie sie dann ausführen, crontab -ewerden Sie aufgefordert, den bevorzugten Editor auszuwählen.
Von da an wird Ihre Präferenz in der ~/.sensible_editorDatei gespeichert.


Ich bin mir nicht sicher, warum dies abgelehnt wurde. Es ist genau das, was ich brauche und es hat perfekt funktioniert.
Rob

Ubuntu scheint es nicht zu wissen emacsclient.
Ceving

-1

für Debian verwenden Sie:

sudo update-alternatives --config editor command

und

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

Wählen Sie '2' und drücken Sie die Eingabetaste. Verstanden!


Willkommen bei Super User! Bitte lesen Sie die Frage noch einmal sorgfältig durch. Ihre Antwort beantwortet nicht die ursprüngliche Frage. Das OP hat dies bereits versucht (es ist in Frage) und es hat sein Problem nicht behoben.
DavidPostill

-1

Am einfachsten wäre es, das Produkt, das Sie nicht wollen, vollständig loszuwerden. Alle anderen Konfigurationsänderungen würden automatisch erfolgen.

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


-1

Auf älteren Maschinen wie einigen von Debian funktioniert dies auch und ist die portabelste Lösung.

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

Nein, lege nichts /usr/binmanuell an. Diese Standorte werden von verwaltet dpkgund sollten nicht direkt manipuliert werden.
Tripleee
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.