Was ich getan habe und wann sich die Dinge geändert haben:

Was ich getan habe und wann sich die Dinge geändert haben:

Ich fange gerade an, Bash und Emacs zu lernen und wollte meinen Standardeditor von vi auf Emacs ändern. Nachdem ich in verschiedenen Stackexchange-Communitys viele interessante Fragen durchgegangen bin, bin ich noch nicht dahinter gekommen und habe anscheinend (hoffentlich nur vorübergehend) meinen vBefehl bei der Verwendung durcheinandergebracht less. Wenn ich jetzt vbeim Lesen einer Datei in drücke less, passiert nichts, anstatt vi (die Standardeinstellung) oder Emacs (was ich möchte) zu öffnen; d. h. es bleibt less, soweit ich das beurteilen kann, in und ich kann keinen Text bearbeiten. Glücklicherweise kann ich immer noch mit beenden qund mir fällt nichts anderes auf, was nicht richtig funktioniert.

Was ich getan habe und wann sich die Dinge geändert haben:

Ich verwende den mit Mac OSX mitgelieferten Terminalemulator, habe aber XQuartz heruntergeladen. Mit Homebrew Cask habe ich Emacs installiert.

Viele Fragen auf Stackexchange haben die $EDITORund $VISUALVariablen, die in meinem .bash_profile festgelegt werden können, sehr gut erklärt. Da auf meinem MacBook bereits eine ältere Version von Emacs installiert ist, habe ich darauf geachtet, die aktuelle Version von Emacs zu verwenden, die von Homebrew installiert wurde.

Da ich gerade erst anfange, all diese Dinge zu lernen, konnte ich nicht herausfinden, wie ich alles am besten einrichte. So habe ich es derzeit in meinem .bash_profile:

# changing emacs from the default osX version to the version obtained from homebrew                 
alias emacs="/usr/local/Cellar/emacs/25.2/Emacs.app/Contents/MacOS/Emacs"
alias enw="emacs -nw"

# setting emacs as the editor in term instead of vi                                                
EDITOR="enw";export EDITOR
VISUAL="enw";export VISUAL

Nachdem ich den obigen Code zu meinem .bash_profile hinzugefügt hatte, änderte sich nichts Wesentliches (soweit ich feststellen konnte). Ich überprüfte, echoob die $EDITORund $VISUALVariablen korrekt geändert wurden.

lessWenn ich zum Lesen einer Datei verwendet habe , konnte ich zwar immer noch eingeben v, aber mein Terminal verwendete zum Bearbeiten der Datei vi statt des gewünschten Emacs. Also habe ich versucht, die Definition von $EDITORund zu ändern $VISUAL, z. B. indem ich den vollständigen Pfad wie in meinem alias emacs=...mit dem -nwFlag anstelle von verwendet habe enw. Und ich habe auch versucht, die Anführungszeichen zu entfernen. Nichts davon hat, soweit ich feststellen konnte, einen Unterschied bewirkt.

Da ich leider gerade erst anfange und keine konkreten Aufgaben habe, spiele ich nur mit grundlegenden Befehlen und Dateien herum, weshalb ich den lessBefehl verwendet habe. Derzeit kenne ich keine andere Möglichkeit, die $EDITORVariable im Terminal zu verwenden. Daher bin ich mir nicht sicher, ob mein Problem nur auf zutrifft voder ob es ein Problem mit ist $EDITOR.

Irgendwann habe ich einige Fragen dazu gesehen, in denen empfohlen wurde, hinzuzufügen, ALTERNATE_EDITOR="";export ALTERNATE_EDITORund so habe ich es ausprobiert, ohne wirklich zu verstehen, warum. Auch kein erkennbarer Unterschied mit dem vBefehl in less.

Nach einigem Suchen fand ichDasFrage, die meinem ursprünglichen Plan am nächsten zu kommen scheint (obwohl ich nicht versucht habe, irgendetwas umzuleiten, so wie ich es verstehe; und ich verstehe leider nicht, was „Paging“ ist). Also habe ich $EDITOR="enw"zu gewechselt $EDITOR="env TERM=xterm-256color enw"und das war ungefähr der Zeitpunkt, als vbeim Lesen einer Datei mit nichts mehr gemacht wurde less.

Bevor ich den letzten Code hinzugefügt habe, habe ich überprüft, was $TERMnormalerweise ist, was xterm-256colorbei mir bereits der Fall war. Ich sage jetzt nicht, dass dies meinen vBefehl durcheinander gebracht hat, es ist nur die Zeitleiste, in der vder Aufruf von vi gestoppt wurde, während sie in war less. Ich habe alles wieder auf den allerersten Code zurückgesetzt, den ich ausprobiert habe, aber es vfunktioniert bei mir immer noch nicht.

(Tut mir leid, dass das so lang ist, ich versuche nur, den Vorgang zu erklären, falls es hilft!) Wenn ich jetzt meine Ergänzungen zu meinem .bash_profile auskommentiere, wird alles wieder normal, was gut ist, denke ich. Ich kann also in $EDITORverwenden, solange ich nicht und in meinem .bash_profile verwende. Ichvless$EDITOR$VISUALwollendiese ändern zu lassen, und hier liegt mein Dilemma. Dies ist wahrscheinlich eine triviale Frage, aber ich wäre für jeden Rat oder jede Einsicht sehr dankbar.

PS: Beim Versuch, dieses Problem zu beheben, bin ich emacsclientauf diesen Befehl gestoßen, aber ich verstehe nicht, warum ich ihn anstelle meines verwenden sollte enw.

Antwort1

Aliase sind nur in der aktuellen Shell-Sitzung „aktiv“. lesskann einen Alias ​​nicht über $EDITORoder aufrufen $VISUAL(und kein anderer Prozess außer möglicherweise der Shell selbst könnte dies).

Setzen Sie stattdessen zB VISUALauf

export VISUAL='/usr/local/Cellar/emacs/25.2/Emacs.app/Contents/MacOS/Emacs -nw'

oder installieren Sie es emacsan einem Standardspeicherort, auf den über Ihr zugegriffen werden kann $PATH, indem Sie es entweder selbst kompilieren oder etwas wie HomeBrew, MacPorts oder Fink verwenden, und verwenden Sie dann einfach export VISUAL='emacs -nw'.

verwandte Informationen