Jak uruchomić TextEditor z wiersza poleceń?

65

Dużo pracuję w wierszu poleceń w terminalu i chciałbym uruchomić edytor tekstu dla określonego pliku. Jestem z Linux Land i zwykle używam kwrite lub gedit z powłoki bash. Próbowałem znaleźć odpowiednik Maca, jak przypuszczam, próbowałem

user> textedit somefile.txt

i

user> texteditor somefile.txt

i

user> TextEditor somefile.txt

i inne odmiany. Nie mogę znaleźć właściwej nazwy aplikacji do edycji tekstu. (Nie, vi mi się nie podoba.) Dziwne, facet ze sklepu Apple nie wiedział o tym.

DarenW
źródło
Zarówno Nathan, jak i mipadi udzielają odpowiedzi, ale myślę, że są to tylko częściowe odpowiedzi, więc dodałem jedną. Nie jestem pewien, czy lepiej byłoby jakoś połączyć ich odpowiedzi, a jeśli tak, to jak to zrobić.
Viktor Haag
@ Viktor generalnie nie jest dobre ponowne publikowanie rzeczy, które ludzie już powiedzieli, a dokładne duplikaty są usuwane. Ponieważ miałeś coś do dodania, dobrym sposobem będzie odpowiedź „Oprócz technik Nathana i mipadi…” lub komentarz do tych odpowiedzi wraz z dodatkami. To, co tu zrobiłeś, jest w porządku, ale nie jest to „najlepsza praktyka”. Dzięki, że pytasz; teraz wiesz na przyszłość :-).
Nathan Greenstein

Odpowiedzi:

105

Oto kilka możliwych odpowiedzi, wszystkie przy użyciu narzędzia wiersza polecenia „open”.

Opcja -a oznacza „otwórz argument pliku za pomocą nazwanej aplikacji”:

open -a TextEdit file.txt

Opcja -e oznacza „otwórz argument pliku za pomocą aplikacji TextEdit”:

open -e file.txt

Opcja -t oznacza „otwórz plik za pomocą domyślnej aplikacji do edycji plików tekstowych, określonej przez LaunchServices”. Domyślnie będzie to /Applications/TextEdit.app; możliwe jest jednak zastąpienie tego ustawienia:

open -t file.txt

Wreszcie, jeśli tylko powiesz, dowolny plik typu „tekst” zostanie otwarty przez aplikację powiązaną z typem tekstu open file.txt. Można użyć polecenia „plik”, aby odsłonić to, co system operacyjny myśli, że typ pliku jest: file file.txt. Na przykład, jeśli zmieniłeś nazwę „file.txt” na „ open textfileplik tekstowy”, to nadal otworzyłbyś go w domyślnej aplikacji do edycji plików tekstowych, o ile file textfilenadal myślałeś, że „plik tekstowy” to tak naprawdę plik tekstowy.

Krótki plik „pomocy” openmożna znaleźć, uruchamiając

open --help

Lub możesz przeczytać całą instrukcję za pomocą

man open
Viktor Haag
źródło
2
Wstawiam to do mojego .bash_profile: "alias o = 'open -a Sublime \ Text \ 2'", a następnie mogę po prostu wpisać w wierszu polecenia: „o text.txt”. Palce są bardzo łatwe;)
cmroanirgo
opento jedyny „właściwy” sposób, aby to zrobić.
CousinCocaine
13

Domyślnym edytorem tekstu jest TextEdit. Możesz tam otworzyć plik tekstowy, używając polecenia open -a:

$ open -a TextEdit hi.txt

Jeśli chcesz użyć innej aplikacji, po prostu wpisz jej nazwę:

$ open -a Coda index.html
Nathan Greenstein
źródło
To działało dla mnie (OSX Mojave) zarówno z TextEdit, jak i Visual Studio Code. Dziękuję Ci!
RJ Dunnill
8

Istnieją dwa sposoby:

Jeśli domyślnym edytorem tekstu jest TextEdit, możesz po prostu użyć

open -t file.txt

aby otworzyć go w TextEditor.

Jeśli domyślnym edytorem tekstu nie jest TextEdit, a chcesz go otworzyć w TextEdit, możesz użyć

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

Oczywiście jednym z nich może być alias w pliku konfiguracyjnym powłoki.

mipadi
źródło
Zauważ, że nie jestem pewien, czy konwencja przekazywania argumentu nazwy pliku bezpośrednio do nazwy aplikacji w wierszu poleceń może nie działać dla wszystkich aplikacji. Tylko aplikacje zbudowane do akceptowania nazw plików w wierszu poleceń jako poprawnych argumentów do otwarcia będą działać w ten sposób. Myślę , że bardziej ogólne openpolecenie używa dokładniejszej metody, aby aplikacja „otworzyła” argument pliku przekazany do polecenia otwarcia (tzn. Zależy od tej samej funkcjonalności, w jakiej działa akcja „podwójnego kliknięcia, aby otworzyć” Findera).
Viktor Haag
@Viktor Haag: Oba będą współpracować z TextEdit.
mipadi
6

Jeśli szukasz wygodnego sposobu na więcej „linuksowego odczucia”, dodaj coś takiego ~/.profile:

alias textmate='open -a TextMate'

lub

alias textedit='open -a TextEdit'

w zależności od redaktorów.

Jaskółka oknówka
źródło
2
Chociaż .profiledziała, .bash_profilejest bardziej powszechny w systemie OS X.
CousinCocaine
3

Jeśli już zacząłeś pisać w terminalu i chcesz kontynuować na swoim ulubionym edytorze, możesz nacisnąć ctrl+ X, ctrl+ Ei kontynuować pracę w emacsie lub domyślnym edytorze bash.

Jeśli chcesz zmienić domyślny edytor, zmień zmienną środowiskową EDITOR na ulubioną:

EDITOR=vim;export EDITOR
EDSancha
źródło
0

Sprawdź, czy masz edytor vim, nawet nie zdawałem sobie sprawy, że mój terminal może go użyć.

Próbować:

user> vimtutor 

obliczyć jego kontrolę.

Dzięki niemu możesz całkiem dobrze edytować pliki. Składnia wygląda mniej więcej tak:

user> vim foo.txt
użytkownik70580
źródło
0

TextWrangler (teraz nieczynny i zastąpiony przez BBEdit) po zainstalowaniu z Command Line Utilities, pozwala na:

edit README.txt

uruchomić TextWrangler, co jest dla mnie lepsze niż open -t README.txt, ale może po prostu cierpię z powodu bezwładności.

FYI - editto binarny plik wykonywalny (z zestawu TextWrangler), a nie tylko alias lub dowiązanie symboliczne.

Sridhar Sarnobat
źródło
-3

Użyj geditpolecenia:

gedit your-file.ext
Alex Chaliy
źródło
2
geditnie jest instalowany domyślnie na MacOS, chociaż można go zainstalować przez homebrewbrew install gedit
Scot
Działa w systemie Linux: D
Alex Chaliy
OP szuka rozwiązania MacOS, a nie Linux. Wspomniałem o szukaniu czegoś, co zastąpiłoby gedit w systemie Linux. Jest to także strona MacOS, więc rozwiązanie dla Linuksa byłoby nietypowe.
Szkot