2009-11-04 7 views
0

Comment est-ce que je peux faire un script de coquille qui saura où le caret est et saisir le texte choisi, ainsi je peux emballer le texte dans quelque chose? Par exemple, ceci est un script d'un faisceau TextMate:Script shell pour récupérer le texte sélectionné et le modifier?

<${1:p}>$TM_SELECTED_TEXT</${1/\s.*//}> 

Il saisit le texte et l'enveloppe dans les balises HTML ouvrir/fermer. Et il est variable de sorte que la deuxième balise est mise en miroir lorsque vous tapez le premier. Je veux créer un script comme celui-ci mais en dehors de Textmate pour pouvoir l'utiliser dans TextEXpander.
Est-ce que cela a du sens? :)

+0

Je pense que vous avez besoin de clarifier ce que vous voulez - je ne comprends pas, et de l'absence de réponse, ni quelqu'un d'autre. Le TM_SELECTED_TEXT est-il une variable d'environnement? D'où vient le $ {1: p} (que j'interprète comme signifiant 'argument 1 s'il est donné, mais' p 'pour le paragraphe s'il n'est pas donné'). Et que signifie la séquence '$ {1/\ s. * //}'? Il pourrait être quelque chose d'étrange comme «prendre l'argument 1 et couper une séquence de zéro ou plusieurs espaces de lui», mais alors pourquoi pas dans la balise d'ouverture aussi? –

+0

Ah ok, je suis désolé à ce sujet.

Le 'p' est surligné et peut être sur-typé lors de l'insertion, et le point final 'p' est mis en miroir. Donc, si je souligne CE et activer, je me retrouve avec

CE

et peut surtyper le premier 'p' pour obtenir
THIS
ou quelque chose. C'est le $ {1: p} il est dit de mettre en évidence le p en premier et de le mettre en miroir avec le dernier. Avoir du sens? Et je pense que les variables sont l'environnement, je ne sais pas. – thatryan

Répondre

1

$TM_SELECTED_TEXT est pas une variable d'environnement prévu pour l'exécution de scripts en dehors de TextMate - il est une variable qui est définie par TextMate et fourni aux scripts qui sont exécutés dans le cadre de son système d'extrait. Il n'est même pas fourni à la commande "Run Script" des paquets Shell. Ce que vous voulez faire peut être faisable via d'autres fonctions shell (par exemple, sed) afin que la fonctionnalité puisse être répliquée par un script shell - cela dépend de votre scénario d'utilisation.

Questions connexes