Wie ändere ich den Standard-Texteditor in Ubuntu?

5

Wie kann ich den Standard-Texteditor für Konsolenprogramme in Ubuntu ändern? Wenn ich mutt starte und eine Nachricht sende, lädt es derzeit Joe und ich würde es vorziehen, Vim zu laden. Ich weiß, dass ich $ EDITOR nur für mich ändern kann, aber ich würde es vorziehen, es systemweit zu tun.

justintime
quelle

Antworten:

11

Sie können $ EDITOR systemweit ändern. Schreiben Sie einfach ein kurzes Skript in /etc/profile.d/ was macht das. Die Datei benötigt nur eine einzige Zeile:

export EDITOR=/usr/bin/myeditor

Bearbeiten:

Es gibt zwei Möglichkeiten (mindestens: - /), wie ein Programm einen Editor zum Starten finden kann. Der traditionelle Unix / Linux-Mechanismus ist die Verwendung von $ EDITOR. Darüber hinaus hat Debian (und damit Ubuntu) spezielle Aliase für verschiedene Arten von Programmen. Diese werden vom "Alternatives" -System (ein System konfigurierbarer Symlinks) bereitgestellt. Für Redakteure bietet dies die Aliase editor und sensible-editor. Diese können mit Update-Alternativen aktualisiert werden:

sudo update-alternatives --config editor

(Gleiches gilt für sensible-editor). Dadurch werden Sie aufgefordert, den Editor zu verwenden.

In Debian-Programmen sollte jedoch zuerst $ EDITOR gelesen werden:

Somit startet jedes Programm ein   Editor oder Pager müssen den EDITOR oder verwenden   PAGER-Umgebungsvariable zu   Bestimmen Sie den Editor oder Pager des Benutzers   verwenden möchte. Wenn diese Variablen sind   nicht gesetzt ist das programme / usr / bin / editor   und / usr / bin / pager sollte verwendet werden,   beziehungsweise.

Diese beiden Dateien werden über den Mechanismus dpkg "alternatives" verwaltet.

[...]

Wenn es sehr schwer ist, ein Programm anzupassen   um den EDITOR oder PAGER zu benutzen   Variablen, das Programm kann sein   konfiguriert zu verwenden   / usr / bin / sensible-editor und   / usr / bin / sensible-pager als Editor   bzw. Pager-Programm.

(Debian Policy Manual, http://www.debian.org/doc/debian-policy/ch-customized-programs.html#s11.4 )

In einem Satz: Das globale Setzen von $ EDITOR sollte ausreichen.

sleske
quelle
Danke - ich hatte von dem "Alternativen" -Mechanismus gehört, konnte mich aber nicht genug erinnern, um ihn zu finden. Es ist allerdings sehr kompliziert.
justintime
1
Tatsächlich visudo funktioniert normalerweise nicht mit $EDITOR da es sich um ein sicherheitsbedenken handelt (zumindest für ubuntu). Das /usr/bin/editor wird eingesetzt.
Adam Gent
1

Der Mechanismus in Ubuntu (Debian), der zur Lösung dieses Problems verwendet wird, ist in beschrieben man update-alternatives. im Wesentlichen bietet es eine "Pseudo-Binär" ( /usr/bin/editor ) welches auf die richtige Binärdatei zeigt (die "beste" Alternative)

Anruf

% sudo update-alternatives --config editor

um den aktuellen "default" zu ändern. mit

% update-alternatives --list editor
% update-alternatives --display editor

Sie können die aktuell verfügbaren Alternativen sehen.

akira
quelle
Das ist richtig, aber Editor / Sensible-Editor ist nur als Fallback-Mechanismus gedacht. Sie können einfach $ EDITOR einstellen. Außerdem ist editor / sensible-editor eine Debian-Konvention. Software von Drittanbietern verwendet sie möglicherweise nicht, während $ EDITOR eine allgemeine Unix-Tradition hat.
sleske
richtig (mir ist das bewusst). Es ist nur ein bisschen schwierig, EDITOR für alle Arten von Shells (tcsh, zsh) zu erzwingen. Es reicht also aus, / usr / bin / editor auf den gewünschten Standard zu setzen. als "user" setze ich sowieso meinen eigenen EDITOR.
akira