[TxMt] Re: latex_watch.pl modification?

Zvi Biener zvistrash at gmail.com
Fri Mar 27 12:53:23 UTC 2015


Thank you, René.

On 27 Mar 2015, at 8:13, René Schwaiger wrote:

> Hi Zvi,
>
>> On 26 Mar 2015, at 16:18 , Zvi Biener <zvistrash at gmail.com> wrote:
>>
>> Hi TextMaters,
>>
>> I have a very superficial knowledge of perl, so I wonder if someone 
>> can help.
>> Setup: before I compile my LaTeX document, I need to run a shell 
>> script (using sed) to find/replace certain strings. [There is a long 
>> story for why I need to do this, and why its not easily avoidable.]
>>
>> Possible solution: I was wondering if I can insert something in the 
>> latex_watch.pl script that would run this shell script, without 
>> causing latex_watch to go into an infinite loop (since the shell 
>> script changes the underlying LaTeX file/s).
>>
>> I've tried inserting the relevant code in several locations, but I 
>> can't seem to avoid the loop. That's not surprising, since I don't 
>> really know perl. Does anyone know if there is easy way to
>>
>> 1) modify latex_watch.pl so it executes a shell script that modifies 
>> the underlying LaTeX file without going in to a loop?
>> or
>
> since the main loop of `latex_watch.pl` triggers the compilation after 
> file changes, I don't think there is an easy way to execute your 
> script in there, without causing an infinite loop.
>
>> 2) cause the shell script to run on the file whenever the file 
>> changes by some other means?
>
> That sounds like a good idea. You can use 
> `callback.document.will-save` for that. A command with this semantic 
> class will be called just before you save a file. E.g. To replace 
> every occurrence of the word `bla` with the word `blubb` in tex files, 
> create a command with the following content:
>
>  #!/bin/bash
>
>  sed s/bla/blubb/g
>
> Use the following options:
>
> Scope Selector: text.tex
> Semantic Class: callback.document.will-save
> Save: Nothing
> Input: Document
> Format: Text
> Output: Replace Input
> Format: Text
> Caret Placement: Line Interpolation
>
> I included a bundle with one command called “Replace Strings” 
> which does exactly that. You can extend this command by replacing `sed 
> s/bla/blubb/g` with the name of your shell script. Just make sure that 
> your shell script works with input from standard input (`STDIN`).
>
>> Thanks!
>> Zvi
>
> Kind regards,
> René
>
>
> [Zvi’s Bundle.tmbundle.zip]
>
> _______________________________________________
> textmate mailing list
> textmate at lists.macromates.com
> http://lists.macromates.com/listinfo/textmate


More information about the textmate mailing list