2 votes

iTerm2 Fournir PWD au coprocessus dans le déclenchement de la sortie de capture

Comment fournir PWD à un coprocess script ?

Par exemple, si l'on considère le déclencheur ci-dessous : Trigger

Lorsque je double-clique sur la sortie capturée, le script script est exécuté : ~/rerun_test.sh en fournissant le nom du fichier qui a été trouvé : \1 .

Cependant, l'application avec laquelle je travaille n'affiche pas le répertoire de travail actuel (PWD), et j'ai donc besoin de l'avoir à ma disposition sous la forme d'une variable que je peux fournir d'une manière ou d'une autre. Pour l'histoire sémantique, lorsque vous exécutez une commande, le PWD est \5 par exemple :

La commande est exécutée lorsque vous activez l'historique sémantique sur un nom de fichier. Utiliser \1 pour le nom de fichier, \2 pour le numéro de ligne, \3 pour le texte avant le clic, \4 pour le texte après le clic, \5 pour pwd. Vous pouvez également utiliser la syntaxe des chaînes interpolées.

Y a-t-il quelque chose d'équivalent auquel je puisse avoir recours ? Évidemment dans ce contexte : ~/rerun_test.sh \1 \5 ne fonctionne pas.

0voto

cwa Points 448

Confirmation - Je suppose qu'il s'agit d'un bogue dans iTerm2.

IMHO, le sous-shell dans lequel votre commande est exécutée devrait pointe vers le même répertoire de travail que votre shell principal (à ce moment-là). Ce n'est pas le cas, et il s'agit en fait de / - ce qui est mauvais et empêche votre script/tout éditeur de trouver le fichier.

Une petite remarque au cas où quelqu'un utiliserait "capture output" en combinaison avec "capture output". clang ou clang++ : il existe une solution de contournement peu glorieuse... il est possible de forcer le compilateur à imprimer les chemins absolus seulement même si les entrées sont données sous forme de chemins relatifs :

`-fdiagnostics-absolute-paths`

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