Setze emacs -nw als Standardeditor

13

Beim Bearbeiten von Dateien möchte sudoersich Emacs anstelle von Nano verwenden. Also habe ich diesen Befehl ausgeführt

sudo update-alternatives --config editor

Und ich habe Emacs ausgewählt. Das einzige Problem ist, dass ich Emacs in keinem Fenstermodus mag (das -nw-Flag), und ich habe Emacs emacs='emacs -nw'so gefiltert , dass ich im normalen Gebrauch keinen Fenstermodus verwenden kann, aber ich weiß nicht, wie ich meinen Standardeditor verwenden soll in keinem Fenstermodus.

Mit anderen Worten, ich muss den Befehl sudo visudound ähnliche Befehle abrufen, die Editoren öffnen, mit denen die Datei geöffnet werden kann emacs -nw. Wie kann ich das machen? Ich bin auf Ubuntu 12.04.

gsingh2011
quelle
Dies hat nichts mit dem Problem zu tun. Wenn Sie jedoch "emacs -nw" als Standard-Terminal-Editor verwenden möchten, sollten Sie sich mit emacsclient befassen und emacs als Dämon ausführen. Ansonsten würde ich denken, dass der Start viel zu langsam wäre. Mit einem Emacs-Server ist es praktisch sofort einsatzbereit und nicht schwer einzurichten.
Dodgie

Antworten:

8

Erstellen Sie ein Skript, das emacs mit dem Flag -nw startet, z. B. / usr / local / bin / emacs-nw.

#!/bin/sh

emacs -nw "$@"

Installiere es mit update-alternatives --install.

sudo update-alternatives --install /usr/bin/editor editor /usr/local/bin/emacs-nw 2

Konfigurieren Sie den Editor als Ihr neues Skript.

sudo update-alternatives --set editor /usr/local/bin/emacs-nw
McNisse
quelle
2
Für diejenigen , die Update-Alternativen vorgestellten Systeme nicht verwenden chmod +x /usr/local/bin/emacs-nwund export EDITOR='emacs-nw'in .bashrcden Trick.
Smonff
1
Das emacs -nweinfache Aktualisieren der EDITOR-Shell-Variablen zum Aufrufen ist traditioneller und beinhaltet nicht die ganze seltsame Dateierstellung für eine so einfache Aufgabe. Warum ist das besser?
Vaer-k
6

Fügen Sie Ihrer ~/.bashrcDatei Folgendes hinzu (oder die Konfigurationsdatei für Ihre Shell, wenn es sich nicht um Bash handelt).

export EDITOR="emacs -nw"

Dies sollte eine env-Variable setzen (und exportieren), die Ihren Standardeditor im nicht-grafischen Modus als Emacs definiert.

haziz
quelle
EDITORWie würden Sie Emacs nach dem Einstellen im Grafikmodus öffnen?
Manolete
2
@Manolete können Sie verwenden command emacs, dies wird Emacs ohne Aliase und solche ausführen. Natürlich können Sie auch unalias emacsfür eine Sitzung.
Kyrremann
@Manolete Wenn Sie Emacs emacsüber die Befehlszeile starten oder auf das entsprechende Symbol klicken, wird das grafische Formular weiterhin geöffnet . Der Befehl oben in meinem Beitrag setzt nur die Umgebungsvariable EDITOR auf "emacs -nw", es wird tatsächlich kein Alias ​​erstellt. Es teilt der Shell lediglich mit, dass Ihr bevorzugter Editor emacs -nw ist. emacswird weiterhin die grafische Form starten.
Haziz
1

Ich habe folgende Einstellungen in meinem ~/.bashrc

export EDITOR="emacsclient -t -a=\"\""

Dies wird zuerst versuchen, den Emacs-Daemon-Server zu verbinden, wenn er bereits gestartet ist. Andernfalls wird der Daemon-Server zuerst gestartet und dann erneut eine Verbindung hergestellt.

Ebenso habe ich folgende Einstellung in meinem ~/.gitconfig

[core]
    editor = emacsclient -t -a=\\\"\\\"
Jiacai Liu
quelle