Wie starte ich TextEditor von der Kommandozeile aus?

65

Ich arbeite viel an der Kommandozeile in einem Terminal und möchte einen Texteditor für eine bestimmte Datei starten. Ich komme aus Linux Land und benutze normalerweise kwrite oder gedit aus einer Bash-Shell. Es wurde versucht, das Mac-Äquivalent zu finden

user> textedit somefile.txt

und

user> texteditor somefile.txt

und

user> TextEditor somefile.txt

und andere Variationen. Ich kann den richtigen Namen der Texteditor-App nicht finden. (Nein, vi gefällt mir nicht.) Seltsamerweise wusste der Typ in einem Apple Store das nicht.

DarenW
quelle
Sowohl Nathan als auch mipadi geben Antworten, aber ich denke, sie sind nur Teilantworten, deshalb habe ich eine hinzugefügt. Ich bin mir nicht sicher, ob es besser gewesen wäre, ihre Antworten irgendwie zu kombinieren, und wenn ja, wie ich das gemacht habe.
Viktor Haag
@Viktor Es ist im Allgemeinen nicht gut, Dinge, die bereits gesagt wurden, erneut zu posten, und exakte Duplikate werden entfernt. Da Sie etwas hinzuzufügen hatten, wäre ein guter Weg eine Antwort mit der Aufschrift "Zusätzlich zu den Techniken von Nathan und mipadi ..." oder ein Kommentar zu diesen Antworten mit Ihren Nachträgen. Was Sie hier getan haben, ist in Ordnung, aber nicht gerade eine "Best Practice". Danke für die Frage; jetzt weisst du für die zukunft :-).
Nathan Greenstein

Antworten:

105

Hier einige mögliche Antworten, die alle das Befehlszeilendienstprogramm 'open' verwenden.

Die Option -a bedeutet "Öffne das Dateiargument mit der angegebenen Anwendung":

open -a TextEdit file.txt

Die Option -e bedeutet "Öffne das Dateiargument mit der TextEdit-Anwendung":

open -e file.txt

Die Option -t bedeutet "Öffnen Sie die Datei mit der Standardanwendung zum Bearbeiten von Textdateien, wie über LaunchServices festgelegt". Standardmäßig ist dies /Applications/TextEdit.app. Es ist jedoch möglich, dass diese Einstellung überschrieben wird:

open -t file.txt

Schließlich wird jede Datei, die vom Typ "Text" ist, von der Anwendung geöffnet, die an den Texttyp gebunden ist, wenn Sie nur sagen open file.txt. Sie können den „Datei“ Befehl verwenden , zu offenbaren , was das Betriebssystem denkt , der Dateityp: file file.txt. Wenn Sie beispielsweise "file.txt" in "textfile" umbenannt haben, wird open textfilees weiterhin in der Standardanwendung zur Bearbeitung von Textdateien geöffnet , sofern Sie file textfilenoch dachten, dass "textfile" tatsächlich eine Textdatei ist.

Eine kurze Hilfedatei openfinden Sie beim Ausführen

open --help

Oder Sie können das gesamte Handbuch mit lesen

man open
Viktor Haag
quelle
2
Ich füge dies in mein .bash_profile ein: "alias o = 'open -a Sublime \ Text \ 2'" und dann kann ich einfach an der Eingabeaufforderung Folgendes eingeben: "o text.txt". Es ist sehr einfach für die Finger;)
Cmroanirgo
openist der einzige "richtige" Weg, dies zu tun.
CousinCocaine
13

Der Standardtexteditor ist TextEdit. Sie können dort eine Textdatei öffnen, indem Sie open -a verwenden:

$ open -a TextEdit hi.txt

Wenn Sie eine andere App verwenden möchten, geben Sie den Namen wie folgt ein:

$ open -a Coda index.html
Nathan Greenstein
quelle
Dies funktionierte für mich (OSX Mojave) sowohl mit TextEdit als auch mit Visual Studio Code. Danke!
RJ Dunnill
8

Es gibt zwei Möglichkeiten:

Wenn Ihr Standard-Texteditor TextEdit ist, können Sie einfach verwenden

open -t file.txt

um es in TextEditor zu öffnen.

Wenn Ihr Standard-Texteditor nicht TextEdit ist und Sie ihn speziell in TextEdit öffnen möchten, können Sie ihn verwenden

/Applications/TextEdit.app/Contents/MacOS/TextEdit file.txt

Beides kann natürlich in Ihrer Shell-Konfigurationsdatei als Alias ​​verwendet werden.

mipadi
quelle
Beachten Sie, dass ich nicht sicher bin, ob die Konvention, das Dateinamenargument direkt an den Namen der Anwendung in der Befehlszeile zu übergeben, möglicherweise nicht für alle Anwendungen funktioniert. Nur Anwendungen, die Dateinamen in der Befehlszeile als gültige Argumente zum Öffnen akzeptieren, funktionieren auf diese Weise. Ich denke, dass der allgemeinere openBefehl eine gründlichere Methode verwendet, um eine Anwendung dazu zu bringen, das an den Befehl open übergebene Dateiargument zu "öffnen" (dh es hängt von derselben Funktionalität ab, mit der die Aktion "Doppelklicken zum Öffnen" des Finders funktioniert).
Viktor Haag
@Viktor Haag: Beide funktionieren mit TextEdit.
mipadi
6

Wenn Sie nach einem bequemen Weg mit mehr "Linux-Feeling" suchen, fügen Sie Ihrer Suche Folgendes hinzu ~/.profile:

alias textmate='open -a TextMate'

oder

alias textedit='open -a TextEdit'

abhängig von Ihren Redakteuren.

Martin
quelle
2
Obwohl es .profilefunktioniert, .bash_profileist es unter OS X
üblicher.
3

Wenn Sie bereits mit dem Schreiben im Terminal begonnen haben und mit Ihrem bevorzugten Editor fortfahren möchten, können Sie ctrl+ X, ctrl+ drücken Eund in Emacs oder Ihrem Standard-Bash-Editor weiterarbeiten.

Wenn Sie den Standardeditor ändern möchten, ändern Sie die Umgebungsvariable EDITOR in Ihre Lieblingsvariable:

EDITOR=vim;export EDITOR
EDSancha
quelle
0

Sehen Sie, ob Sie den VIM-Editor haben, ich wusste nicht einmal, dass mein Terminal ihn verwenden könnte.

Versuchen:

user> vimtutor 

seine Kontrollen herauszufinden.

Sie können damit ziemlich gut Dateien bearbeiten. Die Syntax sieht ungefähr so ​​aus:

user> vim foo.txt
user70580
quelle
0

TextWrangler (jetzt nicht mehr vorhanden und durch BBEdit ersetzt) ​​bei der Installation mit Command Line Utilities, erlaubte Ihnen Folgendes :

edit README.txt

TextWrangler zu starten, was für mich schöner ist als open -t README.txt, aber vielleicht leide ich nur an Trägheit.

FYI - editist eine ausführbare Binärdatei (aus dem TextWrangler-Kit), nicht nur ein Alias ​​oder ein Symlink.

Sridhar Sarnobat
quelle
-3

Verwenden Sie geditBefehl ein :

gedit your-file.ext
Alex Chaliy
quelle
2
geditist unter MacOS nicht standardmäßig installiert, kann aber über Homebrewbrew install gedit
Scot
Es funktioniert unter Linux: D
Alex Chaliy
Das OP sucht nach einer MacOS-Lösung, nicht nach Linux. Und erwähnt, auf der Suche nach etwas, um gedit unter Linux zu ersetzen. Dies ist auch eine MacOS-Site, daher wäre eine Linux-Lösung nicht aktuell.
Scot