[TxMt] Re: Emacs like "Tab Stop List"

Brad Choate bchoate at gmail.com
Thu Aug 10 14:37:47 UTC 2006


Anything that binds to the tab key is going to prevent tab triggers  
from working. And who wants to run a subprocess each time they hit  
the tab key? I think something like this would need to be implemented  
within the editor itself.


On Aug 10, 2006, at 5:26 AM, Jacob Rus wrote:

> Carsten Hoever wrote:
>> Hi,
>> at the moment I have to write some code in ancient Fortran77  
>> (don't ask ;-) ). I am nearly going nuts about the fixed column  
>> structure a Fortran77 source code has to (at least in my case)  
>> obey to:
>> column	function
>> 1		comment sign (c,*)
>> 1-5		statement label
>> 6		continuation sign if line wrap in previous line
>> 7-72		actual code
>> The problem is that this fixed source form makes it very hard to  
>> work with any special tab stop size, even with "Soft tabs" turned  
>> on as I don't need to access any column between 1-5, but instead  
>> would like to go from 1 to 6 to 7 (and vice versa!).
>> In emacs I would be able to specifiy a tab stop list, i.e. a list  
>> with the actual columns a tab should bring me to, e.g.: 6, 7, 11,  
>> 15, 19...
>> Is there any way to simulate something in Textmate? I am tired of  
>> adding and deleting spaces manually in order to obey to that  
>> structure.
>
> I think you want to make a command which, taking into account where  
> you are on the current line, inserts the correct number of spaces.   
> The environment variable is $TM_LINE_INDEX, and you should be able  
> to just insert x - $TM_LINE_INDEX spaces, where x is the next  
> number in your list.
>
> In python this would look something like:
>
> #!/usr/bin/env python
> from os import environ as env
> from sys import stdout
> columnList = [1, 5, 6, 10, 14, 18, 22]
> curPos = env['TM_LINE_INDEX']
> spacesLeft = [num - curPos for num in columnList if num - curPos > 0]
> stdout.write(" " * spacesLeft[0])
>
> Bind this to the ⇥ key, set the input to selected text or line,  
> and set the output to insert text, and you should be all set.
>
> -Jacob
>
>
> ______________________________________________________________________
> 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