En me basant sur la réponse de CousinCocaine, et sur cette réponse à une vieille question que je me suis posée moi-même sur le forum BBEdit, je suis arrivé à ce AppleScript, qui est pour Python:
-------------------------------------------- -----------------------------------------------
# Auth: Christopher Stone
# modif Fabio Grazioso
# dCre: 22/09/2015 11:00
# dMod: 03/10/2017 18:40
# Appl: BBEdit, Terminal
# Tâche: tentative d'exécuter le document texte avant dans Terminal.app.
# Libs: Aucun
# Osax: Aucun
# Balises: @Applescript, @Script, @BBEdit, @Run, @Front, @Document, @Terminal, @Python
-------------------------------------------------- -----------------------------------------
dire à l'application "BBEdit"
dire le document texte avant
si sur le disque = false alors l'erreur "Le document avant n'est pas enregistré!"
si modifié = vrai alors enregistrez
si le contenu de la ligne 1 ne commence pas par "#!" puis erreur "Aucune ligne shebang valide trouvée!"
définir docName sur son nom
définir docFile sur le chemin POSIX de (obtenir son fichier)
fin dire
fin dire
définir shCMD sur le texte 2 à -1 de "
FILE = "& docFile &";
si [[ ! -x \ "$ FILE \"]]; puis
chmod + x \ "$ FICHIER \";
Fi
"
faire un script shell shCMD
définir {oldTIDS, les délimiteurs d'élément de texte d'AppleScript} sur {les délimiteurs d'élément de texte d'AppleScript, "/"}
définir docName sur la forme citée de docName
définir docParentPath à la forme citée de ((éléments de texte 1 à -2 de docFile) en tant que texte)
définir les délimiteurs d'éléments de texte d'AppleScript sur oldTIDS
dire à l'application "Terminal"
Activer
si le nom de la fenêtre = {valeur manquante} alors faites le script
si les processus de la fenêtre avant = {} alors faire un script
dire la fenêtre avant
si c'est occupé = vrai alors
faire script "cd" & docParentPath & "&& python -i" & docName
autre
faire le script "cd" & docParentPath & "&& python -i" & docName dans l'onglet sélectionné
fin si
fin dire
fin dire
-------------------------------------------------- -----------------------------------------
Je trouve cette réponse meilleure que celle proposée par CousinCocaine simplement parce que je peux créer un raccourci clavier vers le script (AFAIK il n'est pas possible d'associer un raccourci à un service).
Les étapes à suivre pour que cela fonctionne sont les suivantes:
- Copiez le code du script dans Script Editor.app (qui se trouve dans le dossier / Applications / Utilities /)
- Compilez le script (icône marteau dans la barre de l'éditeur)
- Enregistrez-le dans le dossier des scripts BBEdit: / Users // Library / Application \ Support / BBEdit / Scripts /
- Facultatif Dans BBEdit associez le script à un raccourci clavier, dans les Préférences -> Menus & Raccourcis -> Scripts (vous devez cliquer à droite du nom du script, où il est dit "aucun ", et appuyez sur votre raccourci)
- Enfin, vous créez un script dans BBEdit, par exemple un script python, vous l'enregistrez et, alors qu'il s'agit de la fenêtre principale de BBEdit, vous sélectionnez le script AppleScript dans le menu Scripts de BBEdit. Cela enverra le script python au terminal et le script sera exécuté.
À propos d'AppleSript, notez que l'option "-i" dans l'appel python dans la ligne
do script "cd" & docParentPath & "&& python -i" & docName
fait en sorte qu'après l'exécution du script python, l'interpréteur python ne soit pas quitté, comme indiqué dans la requête de la question.
Si les lignes
do script "cd" & docParentPath & "&& python -i" & docName
faire le script "cd" & docParentPath & "&& python -i" & docName dans l'onglet sélectionné
sont remplacés par les lignes
faire script "cd" & docParentPath & "&& ./" & docName
faire le script "cd" & docParentPath & "&& ./" & docName dans l'onglet sélectionné
alors cet AppleScript peut lancer n'importe quel script, à condition que la bonne ligne "shebang" soit présente dans le script, comme toute première ligne.
Pour un script python, la ligne shebang doit être:
#! / usr / bin / env python
alors que pour un script shell bash, la ligne shebang doit être:
#! / bin / bash