I think this could probably be accomplished with a simple python (or ruby) script that took the line as input, then did print "%-100s" % thetext or something like that and replaced the line? (or place it in a macro that first selects the line, and the command replaces the selection...)
As for the original question, woulnd't it be failry straight forward to have something like:
sometext⇥more text somemoretext⇥and a bit more whateverelse⇥some more
then opt-shift-up, and parse the selection through a small python script that splits each line on the tab character, finds the longest first half of a line, and aligns everything using spaces...
in fact, this seems to work as a command (takes the first tab it finds in every line, and adds enough spaces before it so that all the first tabs in each line align):
Command Input: Selected Text or Nothing Output: Replace Selected Text Activation: Key Equivalent (i set it to cmd-opt-shift-r) Command:
#!/usr/bin/env python import os
selectedText = '' splitMarker = "\t" joinMarker = "\t"
if 'TM_SELECTED_TEXT' in os.environ: selectedText = os.environ['TM_SELECTED_TEXT'] lines = selectedText.splitlines() length = 0 for i in range(len(lines)): sec = lines[i].split(splitMarker) length = max(length, len(sec[0])) l = "%%-%ds" % length for j in range(len(lines)): sec = lines[j].split(splitMarker) sec[0] = l % sec[0] print joinMarker.join(sec)
This is very rough, i wrote it while writing this email, but it seems to work. Using it in the above proposed method also seems to work (i.e. write all the data in a column block, have the first tab where you want everything to align, opt-shift-up, opt-cmd-shift-R)
Note instead of the first tab, the align 'marker' can be anything...
On Jun 2, 2007, at 12:38 PM, Piero D''Ancona wrote:
Allan Odgaard <throw-away-1@...> writes:
On 2. Jun 2007, at 06:54, Helmut Granda wrote:
for example is it possible to write a snippet to do something like...
text (move to column 100)moreText
does that makes sense? sort of tabbing but using column numbers instead (margins?)
Other than actually inserting the required number of spaces, no, there is no such shortcut.
If the text to be inserted is always the same, you can record a macro which inserts some text, moves to the right (press right arrow 100 times) then inserts some more text...
For new threads USE THIS: textmate@lists.macromates.com (threading gets destroyed and the universe will collapse if you don't) http://lists.macromates.com/mailman/listinfo/textmate