[TxMt] Changing cursor position from command

Kevin Cox kevintcox at gmail.com
Tue Feb 13 20:42:30 UTC 2007


Wow. Thanks so much!

If anybody's interested, here's the finished source:

#!/usr/bin/env ruby

$t = STDIN.read

if $t =~ /\A(.*)\;\Z/
  $c = ENV['TM_LINE_INDEX'].to_i
  print $t.insert($c, ';$0')
else
  print $t+';$0'
end


On 2/13/07, Charilaos Skiadas <skiadas at hanover.edu> wrote:
> On Feb 13, 2007, at 2:16 PM, Kevin Cox wrote:
> > Hello all,
> >
> > input: selected text or line
> > output: replace selected text
> > activation: key equivalent ';'
> > scope: "source"
> >
> > #!/usr/bin/env ruby
> >
> > $t = STDIN.read
> >
> > if $t =~ /\A(.*)\;\Z/
> >  $c = ENV['TM_LINE_INDEX'].to_i
> >  print $t.insert($c, ';')
> > else
> >  print $t+';'
> > end
> >
> > Any idea how to move the cursor? Snippets handle cursor motion, but
> > I'm not sure I can get the semicolon to go to the right spot. Ideas?
> > Tricks?
>
> Set your output to Insert as snippet. This will actually replace
> whatever the input is, but will interpret the output as a snippet.
> Then you do the processing of the line, and you snippet-escape the
> result, and add $0 at the location where you want the caret to end
> up. The library escape.rb will be of help to you, it contains an
> "e_sn" command that escapes the text for use in a snippet.
>
> > Best,
> > Kevin
>
> Haris
>
> ______________________________________________________________________
> For new threads USE THIS: textmate at lists.macromates.com
> (threading gets destroyed and the universe will collapse if you don't)
> http://lists.macromates.com/mailman/listinfo/textmate
>



More information about the textmate mailing list