Estaba yo jugueteando con LSCOLORS cuando me han pasado
http://mipsisrisc.com/lscolors/
Muy chulo pero, sería mucho más cómodo poder ver directamente la
combinación mientras edito el string desde TextMate.
Es posible forzar el color de un substring sin usar el scope (es decir,
los colores del theme)?
Alguna sugerencia alternativa en caso de que no se pueda?
--
arnau siches
blog.esbudellat.net
Esta es fácil: no.
Si estuvieras infinitamente aburrido podrías intentar usar AppleScript
para decirle a TextMate que reescribiera un theme para ir mostrándote
colores de una forma pseudodinámica.
Pero como se trata de divertirse, y no de hacer el g*l*, yo preferiría
que me sacaran los ojos con un tenedor...
Lo que sí puedes hacer es...
> Alguna sugerencia alternativa en caso de que no se pueda?
...usar Web Preview!
Si le das a Control + Alt + Comando + P se te abrirá la ventana de Web
Preview (esto ya lo sabías, pero por si acaso). Si le das a "Show
Options" y marcas "Pipe text through" puedes enchufar en el campo de
texto un script de shell (por ejemplo, un grep) que te busque la línea
y te escupa un bonito HTML coloreado.
Puedes arrastrar in fichero .sh (o lo que sea, siempre que sea
ejecutable) al campo de texto y el documento se "pipeará" a través del
script.
Aunque ahora que lo pienso quizá lo del AppleScript no fuera tan mala idea... :P
Ánimo!
--
Ale Muñoz
http://sofanaranja.com
http://bomberstudios.com
Si lo guardas como lscolors.rb en alguna parte y lo arrastras al pipe
del Web Preview, teóricamente te irá mostrando los cambios que hagas
en la línea del bash_profile en pseudo tiempo real...
Testeado cero (de hecho peta si hay más de una línea con LSCOLORS),
pero es que a partir de ahora deja de ser divertido : )
Que aproveche!
---------------------------------------------------------------------------------------
#!/usr/bin/env ruby
input = STDIN.readlines.to_s
ls_line = ""
input.each do |line|
ls_line = line if line =~ /LSCOLORS/
end
colors = /\'(.*)\'/.match(ls_line)[1]
color_array = colors.scan(/../)
item_types = [
"1-directory",
"2-system_link -> /dev/null",
"3-socket",
"4-pipe",
"5-executable",
"6-block_special",
"7-char_special",
"8-exe_setuid",
"9-exe_setgid",
"a-dir_writeothers_sticky",
"b-dir_writeothers_NOsticky",
]
color_table = {
"a" => "black",
"b" => "red",
"c" => "green",
"d" => "brown",
"e" => "blue",
"f" => "magenta",
"g" => "cyan",
"h" => "grey",
"A" => "black; font-weight: bold;",
"B" => "red; font-weight: bold;",
"C" => "green; font-weight: bold;",
"D" => "brown; font-weight: bold;",
"E" => "blue; font-weight: bold;",
"F" => "magenta; font-weight: bold;",
"G" => "cyan; font-weight: bold;",
"H" => "grey; font-weight: bold;",
"x" => "",
}
puts "<code>"
color_array.each do |color_pair|
foreground_color = color_table[color_pair[0,1]]
background_color = color_table[color_pair[1,1]]
puts "<span style='color: #{foreground_color}; background-color:
#{background_color}'>" + item_types.shift + "</span><br/>"
end
puts "</code>"
lscolors.rb:11: undefined method `[]' for nil:NilClass (NoMethodError)
gracias por el curro de todas maneras :)
--
arnau siches
blog.esbudellat.net