2 votes

Ouvrir la pièce jointe d'un courrier avec des programmes Unix standard

J'utilise emacs comme mon éditeur de texte standard. Lorsque quelqu'un m'envoie une pièce jointe contenant du texte (par exemple un fichier LaTeX *.tex ), Mail ne sait pas comment l'ouvrir et me demande de sélectionner une application pour l'ouvrir. Une fenêtre du Finder s'affiche, répertoriant toutes les applications installées, dont certaines sont des éditeurs de texte, par exemple TextEdit.

Les emacs Le programme vit en /usr/bin/emacs mais le /usr n'est pas visible par défaut dans le Finder. Après quelques recherches sur Google, j'ai découvert que l'exécution d'une commande

sudo chflags nohidden /usr

rendra le /usr visible dans le Finder. Je peux alors naviguer vers /usr/bin et voir emacs dans ce répertoire, mais il est grisé et ne peut être sélectionné.

Comment sélectionner un produit non Applications (c'est-à-dire /usr/bin/emacs, /usr/bin/vim, /usr/bin/gs, etc.) à utiliser pour ouvrir les pièces jointes du courrier ?

2voto

yoliho Points 340

Vous ne pouvez pas, car le processus est contrôlé par LaunchServices

Lorsqu'une application, par exemple Mail.app, souhaite ouvrir un document, elle lance (ou relance) l'application qui le lit et envoie des informations au document par le biais d'événements Apple, comme décrit dans la section Opérations ouvertes

Les gestionnaires doivent donc reconnaître ces événements Apple qui sont gérés par les bibliothèques Cocoa ou Carbon.

Ainsi, pour utiliser emacs, vi, etc., vous devez en utiliser un sous la forme d'une application, par exemple Aquamacs, la version Cocoa ou Carbon d'emacs, MacVim, etc.

Une autre façon de voir les choses est de se demander, s'il n'y a pas de terminal ouvert, comment la commande Unix peut écrire dans l'interface graphique.

2voto

Daniel Points 32917

D'accord, vous pouvez donc le faire pour n'importe quel programme Unix pour lequel vous voulez créer un wrapper.

Créer une application Automator avec une seule action : Exécuter AppleScript.

Faites-lui exécuter le script suivant :

on run {input, parameters}
        set x to "/usr/bin/vim " & quoted form of POSIX path of input
    tell application "Terminal"
        activate
        do script x
    end tell
end run

Si vous souhaitez vraiment utiliser un autre éditeur à la place de vim, vous pouvez remplacer /usr/bin/vim dans la deuxième ligne du script avec le chemin d'accès à la commande que vous essayez d'utiliser pour ouvrir des fichiers à partir de Mail.

1voto

Asmus Points 7195

Selon la façon dont vous avez installé emacs, il y a de fortes chances qu'il soit déjà livré avec Emacs.app. Vous pouvez alors simplement copier (ou lier) ce fichier dans le répertoire /Applications. Dans mon cas (une installation par Homebrew), cela suffira :

cp -R /usr/local/Cellar/emacs/23.2/Emacs.app /Applications/

ou

ln -s /usr/local/Cellar/emacs/23.2/Emacs.app /Applications/

Emacs.app peut alors être utilisé dans n'importe quelle boîte de dialogue Mac OS X "Ouvrir avec ".

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