.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "urxvt-matcher 1" .TH urxvt-matcher 1 "2021-06-13" "9.26" "RXVT-UNICODE" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" matcher \- match strings in terminal output and change their rendition .SH "DESCRIPTION" .IX Header "DESCRIPTION" Uses per-line display filtering (\f(CW\*(C`on_line_update\*(C'\fR) to underline text matching a certain pattern and make it clickable. When clicked with the mouse button specified in the \f(CW\*(C`matcher.button\*(C'\fR resource (default 2, or middle), the program specified in the \f(CW\*(C`matcher.launcher\*(C'\fR resource (default, the \f(CW\*(C`url\-launcher\*(C'\fR resource, \f(CW\*(C`sensible\-browser\*(C'\fR) will be started with the matched text as first argument. The default configuration is suitable for matching URLs and launching a web browser, like the former \*(L"mark-urls\*(R" extension. .PP The default pattern to match URLs can be overridden with the \&\f(CW\*(C`matcher.pattern.0\*(C'\fR resource, and additional patterns can be specified with numbered patterns, in a manner similar to the \*(L"selection\*(R" extension. The launcher can also be overridden on a per-pattern basis. .PP It is possible to activate the most recently seen match or a list of matches from the keyboard. Simply bind a keysym to \*(L"matcher:last\*(R" or \&\*(L"matcher:list\*(R" as seen in the example below. .PP The \f(CW\*(C`matcher:select\*(C'\fR action enables a mode in which it is possible to iterate over the matches using the keyboard and either activate them or copy them to the clipboard. While the mode is active, normal terminal input/output is suspended and the following bindings are recognized: .ie n .IP """Up""" 4 .el .IP "\f(CWUp\fR" 4 .IX Item "Up" Search for a match upwards. .ie n .IP """Down""" 4 .el .IP "\f(CWDown\fR" 4 .IX Item "Down" Search for a match downwards. .ie n .IP """Home""" 4 .el .IP "\f(CWHome\fR" 4 .IX Item "Home" Jump to the topmost match. .ie n .IP """End""" 4 .el .IP "\f(CWEnd\fR" 4 .IX Item "End" Jump to the bottommost match. .ie n .IP """Escape""" 4 .el .IP "\f(CWEscape\fR" 4 .IX Item "Escape" Leave the mode and return to the point where search was started. .ie n .IP """Enter""" 4 .el .IP "\f(CWEnter\fR" 4 .IX Item "Enter" Activate the current match. .ie n .IP """y""" 4 .el .IP "\f(CWy\fR" 4 .IX Item "y" Copy the current match to the clipboard. .PP It is also possible to cycle through the matches using a key combination bound to the \f(CW\*(C`matcher:select\*(C'\fR action. .PP Example: load and use the matcher extension with defaults. .PP .Vb 1 \& URxvt.perl\-ext: default,matcher .Ve .PP Example: use a custom configuration. .PP .Vb 7 \& URxvt.url\-launcher: sensible\-browser \& URxvt.keysym.C\-Delete: matcher:last \& URxvt.keysym.M\-Delete: matcher:list \& URxvt.matcher.button: 1 \& URxvt.matcher.pattern.1: \e\ebwww\e\e.[\e\ew\-]+\e\e.[\e\ew./?&@#\-]*[\e\ew/\-] \& URxvt.matcher.pattern.2: \e\eB(/\e\eS+?):(\e\ed+)(?=:|$) \& URxvt.matcher.launcher.2: gvim +$2 $1 .Ve