Come posso avviare TextEditor dalla riga di comando?


67

Lavoro molto alla riga di comando in un Terminale e vorrei avviare un editor di testo su un determinato file. Vengo da Linux Land e normalmente uso kwrite o gedit da una shell bash. Cercando di trovare l'equivalente del Mac, come suppongo, ci provò

user> textedit somefile.txt

e

user> texteditor somefile.txt

e

user> TextEditor somefile.txt

e altre varianti. Non riesco a trovare il nome corretto dell'app dell'editor di testo. (No, vi non è di mio gradimento.) Stranamente, l'uomo di un negozio Apple non lo sapeva.


Sia Nathan che mipadi forniscono risposte, ma penso che siano solo risposte parziali, quindi ne ho aggiunto uno. Non sono sicuro se sarebbe stato meglio combinare le loro risposte in qualche modo e, in tal caso, come averlo fatto.
Viktor Haag,

@Viktor generalmente non è bene ripubblicare cose che la gente ha già detto e vengono rimossi i duplicati esatti. Dato che avevi qualcosa da aggiungere, una buona strada da percorrere sarebbe una risposta che dice "Oltre alle tecniche di Nathan e mipadi ..." o commenti su quelle risposte con i tuoi addendum. Quello che hai fatto qui va bene, ma non è esattamente una "best practice". Grazie per avermelo chiesto; ora sai per il futuro :-).
Nathan Greenstein,

Risposte:


105

Ecco alcune possibili risposte, tutte usando l'utilità da riga di comando 'open'.

L' opzione -a significa "apri l'argomento file con l'applicazione denominata":

open -a TextEdit file.txt

L' opzione -e significa "apri l'argomento file con l'applicazione TextEdit":

open -e file.txt

L' opzione -t significa "apri il file con l'applicazione predefinita per la modifica dei file di testo, come determinato tramite LaunchServices". Per impostazione predefinita, questo sarà /Applications/TextEdit.app; tuttavia, è possibile che questa impostazione venga ignorata:

open -t file.txt

Infine, qualsiasi file del tipo "testo" verrà aperto dall'applicazione associata al tipo di testo, se lo dite semplicemente open file.txt. È possibile utilizzare il comando "file" per rivelare ciò che il sistema operativo pensa che il tipo di file è: file file.txt. Quindi, ad esempio, se si rinominasse "file.txt" in "file di testo", open textfilelo si aprirà comunque nell'applicazione di modifica dei file di testo predefinita, purché file textfilesi pensi che "file di testo" sia in realtà un file di testo.

È openpossibile trovare un breve file di "guida" in esecuzione

open --help

Oppure puoi leggere l'intero manuale con

man open

2
Ho inserito questo nel mio .bash_profile: "alias o = 'open -a Sublime \ Text \ 2'" e quindi posso semplicemente digitare al prompt dei comandi: "o text.txt". È molto facile per le dita;)
cmroanirgo,

openè l'unico modo "giusto" per farlo.
Cugina Cocaina,

13

L'editor di testo predefinito è TextEdit. Puoi aprire un file di testo usando open -a:

$ open -a TextEdit hi.txt

Se vuoi usare un'altra app, inserisci il suo nome, in questo modo:

$ open -a Coda index.html

Questo ha funzionato per me (OSX Mojave) sia con TextEdit che con Visual Studio Code. Grazie!
RJ Dunnill,

8

Ci sono due modi:

Se l'editor di testo predefinito è TextEdit, puoi semplicemente utilizzare

open -t file.txt

per aprirlo in TextEditor.

Se l'editor di testo predefinito non è TextEdit e si desidera aprirlo in TextEdit in modo specifico, è possibile utilizzare

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

Naturalmente è possibile creare uno di questi alias nel file di configurazione della shell.


Si noti che non sono sicuro che la convenzione di passare l'argomento nome file direttamente al nome dell'applicazione sulla riga di comando potrebbe non funzionare per tutte le applicazioni. Solo le applicazioni create per accettare nomi di file nella riga di comando come argomenti validi per l'apertura funzioneranno in questo modo. Io penso che il più generale opencomando utilizza un metodo più accurato per ottenere un'applicazione per "aprire" il file come argomento passato al comando di apertura (vale a dire che dipende la stessa funzionalità con cui il Finder "doppio click per aprire" l'azione funziona).
Viktor Haag,

@Viktor Haag: entrambi funzioneranno con TextEdit.
mipadi,

6

Se cerchi un modo comodo con più "linux feel" aggiungi qualcosa di simile al tuo ~/.profile:

alias textmate='open -a TextMate'

o

alias textedit='open -a TextEdit'

a seconda dei tuoi editor.


2
Anche se .profilefunziona, .bash_profileè più comune su OS X.
CousinCocaine

3

Se hai già iniziato a scrivere nel terminale e vuoi continuare con il tuo editor preferito puoi premere ctrl+ X, ctrl+ Ee continuare a lavorare in emacs o nell'editor bash predefinito.

Se si desidera modificare l'editor predefinito, modificare la variabile di ambiente EDITOR in quella preferita:

EDITOR=vim;export EDITOR

1

1) Testo di apertura rapida Modifica interfaccia di modifica del contenuto, nota che i file generati sono memorizzati nella /tmpdirectory:

#Input content + Enter + Ctrl+D
open -f

#open empty tempfile
echo|open -f

#alias
alias txted='echo|open -f'
txted

2) Preferisco prendere l'input standard e inviarlo a TextEdit

echo "input something"|open -f
cat Dockerfile|open -f

3) Basta aprire un TextEdit:

open -e

Da man open:

-e  Opens with TextEdit. 
-f  Reads input from standard input and opens with TextEdit.

0

Vedi se hai l'editor VIM, non avevo nemmeno realizzato che il mio terminale potesse usarlo.

Provare:

user> vimtutor 

per capire i suoi controlli.

È possibile modificare i file abbastanza bene con esso. La sintassi è simile a:

user> vim foo.txt

0

TextWrangler (ora defunto e sostituito con BBEdit) quando installato con il Command Line Utilities, ti ha permesso di fare:

edit README.txt

per lanciare TextWrangler, che per me è più bello di open -t README.txt, ma forse sto solo soffrendo di inerzia.

Cordiali saluti - editè un file eseguibile binario (dal kit TextWrangler), non solo un alias o un collegamento simbolico.


0

Dal momento che si desidera aprire "un" editor di testo. Non dovrebbe essere sbagliato se si utilizza un editor di testo da riga di comando come vim o vi. Basta digitare

user> vim filename

Guardando le altre risposte questo potrebbe sembrare controverso. Ma mentre lavori principalmente all'interno del terminal. Usare vim o Gedit è la scelta ideale.


-3

Usa il geditcomando:

gedit your-file.ext

3
geditnon è installato per impostazione predefinita su MacOS, sebbene t possa essere installato tramite homebrewbrew install gedit
Scot il

Funziona su Linux: D
Alex Chaliy,

L'OP sta cercando una soluzione MacOS, non Linux. E menzionato alla ricerca di qualcosa per sostituire gedit su Linux. Inoltre, questo è un sito MacOS, quindi una soluzione Linux sarebbe offftopic.
Scot,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.