--- rxvt-unicode/doc/rxvtperl.3.html 2006/01/09 01:36:56 1.17 +++ rxvt-unicode/doc/rxvtperl.3.html 2006/01/18 09:40:53 1.32 @@ -15,10 +15,12 @@
urxvt
Packageurxvt
Package-
This section describes the extensiosn delivered with this version. You can +
This section describes the extensions delivered with this release. You can find them in /opt/rxvt/lib/urxvt/perl/.
You can activate them like this:
@@ -83,13 +86,43 @@
--quoting-style=shell
.
+(More) intelligent selection. This extension tries to be more intelligent
+when the user extends selections (double-click and further clicks). Right
+now, it tries to select words, urls and complete shell-quoted
+arguments, which is very convenient, too, if your ls supports
+--quoting-style=shell
.
+A double-click usually selects the word under the cursor, further clicks +will enlarge the selection.
+The selection works by trying to match a number of regexes and displaying +them in increasing order of length. You can add your own regexes by +specifying resources of the form:
++ URxvt.selection.pattern-0: perl-regex + URxvt.selection.pattern-1: perl-regex + ...+
The index number (0, 1...) must not have any holes, and each regex must +contain at least one pair of capturing parentheses, which will be used for +the match. For example, the followign adds a regex that matches everything +between two vertical bars:
++ URxvt.selection.pattern-0: \\|([^|]+)\\|
It also offers the following bindable event:
+You can look at the source of the selection extension to see more +interesting uses, such as parsing a line from beginning to end.
+This extension also offers following bindable keyboard commands:
M-s
). While in search mode, normal terminal
+input/output is suspended and a regex is displayed at the bottom of the
+screen.
+Inputting characters appends them to the regex and continues incremental
+search. BackSpace
removes a character from the regex, Up
and Down
+search upwards/downwards in the scrollback buffer, End
jumps to the
+bottom. Escape
leaves search mode and returns to the point where search
+was started, while Enter
or Return
stay at the current position and
+additionally stores the first match in the current line into the primary
+selection.
It works by specifying perl snippets (most useful is a single s///
+operator) that modify $_
as resources:
+ URxvt.selection-autotransform.0: transform + URxvt.selection-autotransform.1: transform + ...+
For example, the following will transform selections of the form
+filename:number
, often seen in compiler messages, into vi +$filename
+$word
:
+ URxvt.selection-autotransform.0: s/^([^:[:space:]]+):(\\d+):?$/vi +$2 \\Q$1\\E\\x0d/+
And this example matches the same,but replaces it with vi-commands you can +paste directly into your (vi :) editor:
++ URxvt.selection-autotransform.0: s/^([^:[:space:]]+(\\d+):?$/\\x1b:e \\Q$1\\E\\x0d:$2\\x0d/+
Of course, this can be modified to suit your needs and your editor :)
+To expand the example above to typical perl error messages (``XXX at +FILENAME line YYY.''), you need a slightly more elaborate solution:
++ URxvt.selection.pattern-0: ( at .*? line \\d+\\.) + URxvt.selection-autotransform.0: s/^ at (.*?) line (\\d+)\\.$/\x1b:e \\Q$1\E\\x0d:$2\\x0d/+
The first line tells the selection code to treat the unchanging part of +every error message as a selection pattern, and the second line transforms +the message into vi commands to load the file.
on_line_update
) to underline urls.
+Uses per-line display filtering (on_line_update
) to underline urls and
+make them clickable. When middle-clicked, the program specified in the
+resource urlLauncher
(default x-www-browser
) will be started with
+the URL as first argument.
It listens to the selection-pastebin:remote-pastebin
keyboard command,
+i.e.
+ URxvt.keysym.C-M-e: perl:selection-pastebin:remote-pastebin+
Pressing this combination runs a command with %
replaced by the name of
+the textfile. This command can be set via a resource:
+ URxvt.selection-pastebin.cmd: rsync -apP % ruth:/var/www/www.ta-sa.org/files/txt/.+
And the default is likely not useful to anybody but the few people around +here :)
+The name of the textfile is the hex encoded md5 sum of the selection, so +the same content should lead to the same filename.
+After a successful upload the selection will be replaced by the text given
+in the selection-pastebin-url
resource (again, the % is the placeholder
+for the filename):
+ URxvt.selection-pastebin.url: http://www.ta-sa.org/files/txt/%+
+
+
All objects (such as terminals, time watchers etc.) are typical reference-to-hash objects. The hash can be used to store anything you @@ -163,7 +315,7 @@
+
Very perl extension is a perl class. A separate perl object is created
+for each terminal and each extension and passed as the first parameter to
+hooks. So extensions can use their $self
object without having to think
+about other extensions, with the exception of methods and members that
+begin with an underscore character _
: these are reserved for internal
+use.
Although it isn't a urxvt::term
object, you can call all methods of the
+urxvt::term
class on this object.
It has the following methods and data members:
+urxvt::term
object associated with this instance of the
+extension. This member must not be changed in any way.
+on_
prefix) for
+this extension, replacing any previous hook. This is useful when you want
+to overwrite time-critical hooks only temporarily.
++
The following subroutines can be declared in extension files, and will be called whenever the relevant event happens.
-The first argument passed to them is an object private to each terminal
-and extension package. You can call all urxvt::term
methods on it, but
-its not a real urxvt::term
object. Instead, the real urxvt::term
-object that is shared between all packages is stored in the term
-member. It is, however, blessed intot he package of the extension script,
-so for all practical purposes you can treat an extension script as a class.
All of them must return a boolean value. If it is true, then the event -counts as being consumed, and the invocation of other hooks is skipped, -and the relevant action might not be carried out by the C++ code.
-When in doubt, return a false value (preferably ()
).
The first argument passed to them is an extension oject as described in
+the in the Extension Objects
section.
All of these hooks must return a boolean value. If it is true, then the +event counts as being consumed, and the invocation of other hooks is +skipped, and the relevant action might not be carried out by the C++ code.
+When in doubt, return a false value (preferably ()
). >
See the selection example extension.
@@ -304,6 +488,13 @@ output.rxvt(1)
manpage).
urxvt
Packageurxvt
.
+urxvt
Packagesystem $binfile, arg...
. Croaks (and probably outputs an error message)
-if the new instance couldn't be created. Returns undef
if the new
-instance didn't initialise perl, and the terminal object otherwise. The
-init
and start
hooks will be called during the call.
-Using this function has the advantage that its output ends up in the correct place, e.g. on stderr of the connecting urxvtc client.
Messages have a size limit of 1023 bytes currently.
+urxvt::anyevent
ClassThe sole purpose of this class is to deliver an interface to the
AnyEvent
module - any module using it will work inside urxvt without
-further work. The only exception is that you cannot wait on condition
-variables, but non-blocking condvar use is ok. What this means is that you
-cannot use blocking APIs, but the non-blocking variant should work.
urxvt::term
Class$rxvtname, arg...
. $envhashref
must be a reference to a %ENV
-like
+hash which defines the environment of the new terminal.
+Croaks (and probably outputs an error message) if the new instance
+couldn't be created. Returns undef
if the new instance didn't
+initialise perl, and the terminal object otherwise. The init
and
+start
hooks will be called during this call.
$term->x_resource ("boldFont")
should return the
+same value as used by this instance of rxvt-unicode. Returns undef
if no
+resource with that pattern exists.
+This method should only be called during the on_start
hook, as there is
+only one resource database per display, and later invocations might return
+the wrong resources.
keysym
resource in the rxvt(1)
manpage.
+selection_beg
and
+selection_end
. If $rectangular
is true (default: false), a
+rectangular selection will be made. This is the prefered function to make
+a selection.
+on_sel_grab
hooks.
$newtext
.
#=item $term->overlay ($x, $y, $text) -# -#Create a simple multi-line overlay box. See the next method for details. -# -#=cut -# -#sub urxvt::term::scr_overlay { -# my ($self, $x, $y, $text) = @_; -# -# my @lines = split /\n/, $text; -# -# my $w = 0; -# for (map $self->strwidth ($_), @lines) { -# $w = $_ if $w < $_; -# } -# -# $self->scr_overlay_new ($x, $y, $w, scalar @lines); -# $self->scr_overlay_set (0, $_, $lines[$_]) for 0.. $#lines; -#}
+Create a simple multi-line overlay box. See the next method for details.RS_RVid
), which MUST NOT contain font styles. Useful in
+refresh hooks to provide effects similar to the selection.
+scr_xor_span
, but xors a rectangle instead. Trailing
+whitespace will additionally be xored with the $rstyle2
, which defaults
+to RS_RVid | RS_Uline
, which removes reverse video again and underlines
+it instead. Both styles MUST NOT contain font styles.
+$term->locale_encode
.
urxvt::timer->events
. Make sure to always restore
+the previous value.
++ $term->vt_emask_add (urxvt::PointerMotionMask);+
\%ENV
.
+0
, which displays the normal terminal contents. Larger values scroll
+Returns the row number of the topmost displayed line. Maximum value is
+0
, which displays the normal terminal contents. Lower values scroll
this many lines into the scrollback buffer.
$row_number
. Row 0
is the topmost terminal line, row $term->$ncol-1
is the bottommost
terminal line. The scrollback buffer starts at line -1
and extends to
-line -$term->nsaved
. Nothing will be returned if a nonexistent line
+line -$term->nsaved
. Nothing will be returned if a nonexistent line
is requested.
urxvt::popup
Class$sepchr
.
+$cb
is called whenever it is
+selected.
+
urxvt::timer
Class1
) enables watching for read
-data, Bit #1 (value 2
) enables watching for write data.
+Set the event mask to watch. The only allowed values are
+urxvt::EVENT_READ
and urxvt::EVENT_WRITE
, which might be ORed
+together, or urxvt::EVENT_NONE
.