Comment démarrer TextEditor à partir de la ligne de commande?

67

Je travaille beaucoup en ligne de commande dans un terminal et j'aimerais démarrer un éditeur de texte sur un fichier donné. Je viens de Linux Land et utilise normalement kwrite ou gedit à partir d'un shell bash. En essayant de trouver l’équivalent Mac, devinez, a essayé

user> textedit somefile.txt

et

user> texteditor somefile.txt

et

user> TextEditor somefile.txt

et d'autres variations. Je n'arrive pas à trouver le nom correct de l'application de l'éditeur de texte. (Non, vi n'est pas à mon goût.) Bizarrement, le gars d'un Apple Store ne le savait pas.

DarenW
la source
Nathan et mipadi apportent tous deux des réponses, mais comme je ne pense qu’elles ne sont que partielles, j’en ai ajouté une. Je ne suis pas sûr s'il aurait été préférable de combiner leurs réponses d'une manière ou d'une autre et, le cas échéant, comment l'avoir fait.
Viktor Haag le
@Viktor il n'est généralement pas bon de republier ce que les gens ont déjà dit, et les doublons exacts sont supprimés. Puisque vous aviez quelque chose à ajouter, une bonne réponse serait: "En plus des techniques de Nathan et de mipadi ...", ou commentez ces réponses avec vos addenda. Ce que vous avez fait ici est correct, mais pas exactement une "meilleure pratique". Merci d'avoir posé la question; maintenant vous savez pour l'avenir :-).
Nathan Greenstein

Réponses:

105

Voici quelques réponses possibles, toutes utilisant l'utilitaire de ligne de commande 'open'.

L' option -a signifie "ouvrir l'argument de fichier avec l'application nommée":

open -a TextEdit file.txt

L' option -e signifie "ouvrir l'argument de fichier avec l'application TextEdit":

open -e file.txt

L' option -t signifie "ouvrez le fichier avec l'application par défaut pour éditer les fichiers texte, comme déterminé par LaunchServices". Par défaut, ce sera /Applications/TextEdit.app; Cependant, il est possible que ce paramètre soit remplacé:

open -t file.txt

Enfin, tout fichier de type "texte" sera ouvert par l'application liée au type de texte si vous venez de le dire open file.txt. Vous pouvez utiliser la commande « Fichier » pour révéler ce que le système d' exploitation pense que le type de fichier est: file file.txt. Ainsi, par exemple, si vous renommiez "fichier.txt" en "fichier texte", vous l'ouvriez open textfiletoujours dans l'application d'édition de fichier texte par défaut, tant que vous file textfilepensiez toujours que "fichier texte" était en fait un fichier texte.

Un court fichier d'aide openpeut être trouvé en exécutant

open --help

Ou vous pouvez lire tout le manuel avec

man open
Viktor Haag
la source
2
Je mets ceci dans mon .bash_profile: "alias o = 'open -a Sublime \ Text \ 2'" et je peux simplement taper à l'invite de commande: "o text.txt". C'est très facile pour les doigts;)
cmroanirgo
openest le seul "bon" moyen de le faire.
CousinCocaine
13

L'éditeur de texte par défaut est TextEdit. Vous pouvez ouvrir un fichier texte en utilisant open -a:

$ open -a TextEdit hi.txt

Si vous voulez utiliser une autre application, entrez simplement son nom, comme ceci:

$ open -a Coda index.html
Nathan Greenstein
la source
Cela a fonctionné pour moi (OSX Mojave) avec TextEdit et Visual Studio Code. Je vous remercie!
RJ Dunnill
8

Il y a deux manières:

Si votre éditeur de texte par défaut est TextEdit, vous pouvez simplement utiliser

open -t file.txt

pour l'ouvrir dans TextEditor.

Si votre éditeur de texte par défaut n'est pas TextEdit et que vous souhaitez l'ouvrir spécifiquement dans TextEdit, vous pouvez utiliser

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

Bien sûr, l’un ou l’autre de ceux-ci peut devenir un alias dans votre fichier de configuration du shell.

Mipadi
la source
Notez que je ne suis pas sûr que la convention consistant à passer l'argument de nom de fichier directement au nom de l'application sur la ligne de commande ne fonctionne pas pour toutes les applications. Seules les applications conçues pour accepter les noms de fichiers sur la ligne de commande en tant qu'arguments valides pour l'ouverture fonctionneront de cette manière. Je pense que la opencommande plus générale utilise une méthode plus complète pour qu'une application «ouvre» l'argument de fichier transmis à la commande open (c'est-à-dire que cela dépend de la même fonctionnalité par laquelle l'action «double-clic pour ouvrir» du Finder fonctionne).
Viktor Haag le
@Viktor Haag: les deux fonctionneront avec TextEdit.
Mipadi
6

Si vous recherchez une manière confortable avec plus de "sensation linux", ajoutez quelque chose comme ce qui suit à votre ~/.profile:

alias textmate='open -a TextMate'

ou

alias textedit='open -a TextEdit'

en fonction de vos éditeurs.

Martin
la source
2
Bien que cela .profilefonctionne, .bash_profileest plus commun sur OS X.
CousinCocaine
3

Si vous avez déjà commencé à écrire dans le terminal et que vous voulez continuer sur votre éditeur favori, vous pouvez appuyer sur ctrl+ X, ctrl+ Eet continuer à travailler dans emacs ou votre éditeur bash par défaut.

Si vous souhaitez modifier l'éditeur par défaut, remplacez la variable d'environnement EDITOR par celle que vous préférez:

EDITOR=vim;export EDITOR
EDSancha
la source
1

1) Ouvrez rapidement l'interface d'édition de contenu textEdit, notez que les fichiers générés sont stockés dans le /tmprépertoire:

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

#open empty tempfile
echo|open -f

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

2) Préfère prendre l’entrée standard et la sortir vers TextEdit

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

3) Ouvrez un TextEdit:

open -e

De man open:

-e  Opens with TextEdit. 
-f  Reads input from standard input and opens with TextEdit.
Rod Terry
la source
0

Voyez si vous avez l'éditeur vim, je ne savais même pas que mon terminal pourrait l'utiliser.

Essayer:

user> vimtutor 

pour comprendre ses contrôles.

Vous pouvez très bien éditer des fichiers avec. La syntaxe ressemble à quelque chose comme:

user> vim foo.txt
utilisateur70580
la source
0

TextWrangler (maintenant supprimé et remplacé par BBEdit), une fois installé avec Command Line Utilities, vous permettait de faire:

edit README.txt

pour lancer TextWrangler, ce qui pour moi est plus agréable que open -t README.txt, mais peut-être que je souffre juste d'inertie.

FYI - editest un fichier exécutable binaire (du kit TextWrangler), pas simplement un alias ou un lien symbolique.

Sridhar Sarnobat
la source
0

Puisque vous voulez ouvrir "un" éditeur de texte. Cela ne devrait pas être faux si vous utilisez un éditeur de texte en ligne de commande tel que vim ou vi. Il suffit de taper

user> vim filename

En regardant les autres réponses, cela peut paraître controversé. Mais comme vous travaillez principalement à l'intérieur du terminal. Utiliser vim ou Gedit est le choix idéal.

Himsara Gallege
la source
-3

Utilisez la geditcommande:

gedit your-file.ext
Alex Chaliy
la source
3
geditn'est pas installé par défaut sur MacOS, bien qu'il soit possible de l'installer via un homebrewbrew install gedit
Scot
Cela fonctionne sous Linux: D
Alex Chaliy
L'OP recherche une solution MacOS, pas Linux. Et mentionné à la recherche de quelque chose pour remplacer gedit sur Linux. En outre, il s’agit d’un site MacOS, donc une solution Linux serait offftopic.
Écossais