99 votes

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

Je travaille beaucoup en ligne de commande dans un Terminal et je voudrais lancer un éditeur de texte sur un certain fichier. Je viens du pays de Linux et j'utilise normalement kwrite ou gedit à partir d'un shell bash. En essayant de trouver l'équivalent Mac, à titre indicatif, j'ai essayé

user> textedit somefile.txt

et

user> texteditor somefile.txt

et

user> TextEditor somefile.txt

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

0 votes

Nathan et mipadi ont tous deux fourni des réponses, mais je pense qu'il ne s'agit que de réponses partielles, alors j'en ai ajouté une. Je ne suis pas sûr qu'il aurait été préférable de combiner leurs réponses d'une manière ou d'une autre, et si oui, comment le faire.

0 votes

@Viktor il n'est généralement pas bon de ré-afficher des choses que les gens ont déjà dites, et les doublons exacts sont supprimés. Puisque vous aviez quelque chose à ajouter, la bonne façon de procéder serait une réponse disant "En plus des techniques de Nathan et de mipadi...", ou des commentaires sur ces réponses avec vos ajouts. Ce que vous avez fait ici est correct, mais pas exactement une "meilleure pratique". Merci d'avoir posé la question ; vous êtes maintenant au courant pour l'avenir :-).

148voto

Viktor Haag Points 1707

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

Le site -a signifie "ouvrir l'argument fichier avec l'application nommée" :

open -a TextEdit file.txt

Le site -e signifie "ouvrir l'argument fichier avec l'application TextEdit" :

open -e file.txt

Le site -t signifie "ouvrir le fichier avec l'application par défaut pour l'édition de fichiers texte, telle que déterminée par LaunchServices". Par défaut, il s'agit de /Applications/TextEdit.app ; toutefois, il est possible de remplacer ce paramètre :

open -t file.txt

Enfin, tout fichier de type "texte" sera ouvert par l'application liée au type texte si vous dites simplement open file.txt . Vous pouvez utiliser la commande "file" pour révéler ce que le système d'exploitation pense être le type de fichier : file file.txt . Donc, par exemple, si vous renommez "fichier.txt" en "fichier texte", alors open textfile l'ouvrirait toujours dans l'application d'édition de fichier texte par défaut, tant que file textfile Je pensais toujours que "textfile" était en fait un fichier texte.

Un court fichier d'aide sur open peut être trouvé en exécutant

open --help

Ou vous pouvez lire l'intégralité du manuel avec

man open

3 votes

J'ai mis ceci dans mon .bash_profile : "alias o='open -a Sublime\ Text\ 2'" et ensuite je peux simplement taper à l'invite de commande : "o texte.txt". C'est très facile pour les doigts ;)

0 votes

open est la seule façon "correcte" de procéder.

15voto

Mateo Points 909

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

$ open -a TextEdit hi.txt

Si vous voulez utiliser une autre application, il suffit de mettre son nom, comme ceci :

$ open -a Coda index.html

0 votes

Cela a fonctionné pour moi (OSX Mojave) avec TextEdit et Visual Studio Code. Merci !

11voto

mipadi Points 2272

Il y a deux façons de procéder :

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 voulez l'ouvrir dans TextEdit spécifiquement, vous pouvez utiliser

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

L'un ou l'autre peut être transformé en alias dans votre fichier de configuration du shell, bien sûr.

0 votes

Remarquez que la convention consistant à passer l'argument du nom de fichier directement au nom de l'application sur la ligne de commande peut ne pas fonctionner pour toutes les applications. Seules les applications qui sont construites pour accepter les noms de fichiers sur la ligne de commande comme arguments valides pour l'ouverture fonctionneront de cette façon. I pensez à que le plus général open utilise une méthode plus approfondie pour amener une application à "ouvrir" le fichier transmis à la commande open (c'est-à-dire qu'elle dépend de la même fonctionnalité que celle utilisée par l'action "double-cliquer pour ouvrir" du Finder).

0 votes

@Viktor Haag : Les deux fonctionneront avec TextEdit.

8voto

Martin Points 191

Si vous cherchez un moyen confortable avec plus de "feeling linux", ajoutez quelque chose comme le folio. ajoutez quelque chose comme ce qui suit à votre ~/.profile :

alias textmate='open -a TextMate'

o

alias textedit='open -a TextEdit'

en fonction de vos rédacteurs.

3 votes

Bien que .profile travaux, .bash_profile est plus courant sous OS X.

3voto

EDSancha Points 31

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

Si vous voulez changer l'éditeur par défaut, changez la variable d'environnement EDITOR pour votre éditeur préféré :

EDITOR=vim;export EDITOR

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X