af83

URxvt autotransform

Beaucoup de langages interprétés nous donnent la ligne où le programme a planté.

Cela donne, par exemple, en Ruby :

app/controllers/admin/users_controller.rb:13:in `edit'

Il arrive souvent de vouloir aller directement à ligne en question. Grace à l'option autotransform d'URxvt c'est possible juste en sélectionnant le fichier:ligne:in qui sera automatiquement copié dans le « clipboard ».

Pour cela, il suffit de mettre dans votre fichier ~/.Xdefaults ou ~/.Xresources :

URxvt.selection-autotransform.0: if(/\\n\\[?\\d\\d(\\d\\d-|:)\\d\\d/) { s{^\\[?[\\d:_-]+\\]? +}{};
    s/\\s*\\n\\[?[\\d:_-]{5,}\\]? +/ || /g; s/^\\s+/ /mg; s/( ?) \*\\n( ?)/($1||$2)/eg; s{ $}{}; };
URxvt.selection-autotransform.1: if(/^irb.*?> /) { s{^irb.*?[>*]\\s*}{}mg; s/\\n=>/ #=>/mg; s{\\n$}{};}
URxvt.selection-autotransform.2: if(m{^[ab]/}) { s{^[ab]/}{}g; }
URxvt.selection-autotransform.3: s/^([^:\\s]*):(\\d+)(:|:in)?$/+$2 $1/g;

Cela transforme le fichier:ligne:in en fichier +ligne. Il ne reste plus qu'à faire un :

$EDITOR <Shift>+<Insert>

Ces expressions régulières ont été écrites par tpope, vous pouvez consulter son .Xresources.

blog comments powered by Disqus