--- rxvt-unicode/doc/rxvtperl.3.html 2006/01/10 19:46:28 1.21 +++ rxvt-unicode/doc/rxvtperl.3.html 2006/01/18 09:40:53 1.32 @@ -87,12 +87,42 @@
(More) intelligent selection. This extension tries to be more intelligent -when the user extends selections (double-click). Right now, it tries to -select urls and complete shell-quoted arguments, which is very convenient, -too, if your ls supports --quoting-style=shell. +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.
-

It also offers the following bindable keyboard command:

+

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: \\|([^|]+)\\|
+
+
+

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:

rot13
@@ -124,26 +154,78 @@
Adds regex search functionality to the scrollback buffer, triggered -by a hotkey (default: M-s). When in search mode, normal terminal -input/output is suspended. +by a hotkey (default: M-s). While in search mode, normal terminal +input/output is suspended and a regex is displayed at the bottom of the +screen.
-

/ starts an incremental regex search, n searches further, p or -N jump to the previous match, G jumps to the bottom and clears the -history, enter leaves search mode at the current position and escape -returns to the original position.

+

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.

-
digital-clock
+
selection-autotransform
-Displays a digital clock using the built-in overlay. +This selection allows you to do automatic transforms on a selection +whenever a selection is made. +
+
+

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.

mark-urls
-Uses per-line display filtering (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.

block-graphics-to-ascii
@@ -154,6 +236,12 @@ similar-looking ascii character.

+
digital-clock
+
+
+Displays a digital clock using the built-in overlay. +
+

example-refresh-hooks
@@ -161,6 +249,48 @@ window. Illustrates overwriting the refresh callbacks to create your own overlays or changes.
+

+
selection-pastebin
+
+
+This is a little rarely useful extension that Uploads the selection as +textfile to a remote site (or does other things). (The implementation is +not currently secure for use in a multiuser environment as it writes to +/tmp directly.). +
+
+

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/%
+

@@ -185,7 +315,7 @@
Rxvt-unicodes special way of encoding text, where one ``unicode'' character -always represents one screen cell. See row_t for a discussion of this format. +always represents one screen cell. See ROW_t for a discussion of this format.

$string
@@ -303,7 +433,9 @@ Called whenever the user tries to extend the selection (e.g. with a double click) and is either supposed to return false (normal operation), or should extend the selection itelf and return true to suppress the built-in -processing. +processing. This can happen multiple times, as long as the callback +returns true, it will be called on every further click by the user and is +supposed to enlarge the selection more and more, if possible.

See the selection example extension.

@@ -404,6 +536,14 @@ resource in the rxvt(1) manpage).

+
on_x_event $term, $event
+
+
+Called on every X event received on the vt window (and possibly other +windows). Should only be used as a last resort. Most event structure +members are not passed. +
+

on_focus_in $term
@@ -478,23 +618,11 @@ The current terminal. This variable stores the current urxvt::term object, whenever a callback/hook is executing.
-

-
- +

Functions in the urxvt Package

-
$term = new urxvt [arg...]
-
-
-Creates a new terminal, very similar as if you had started it with -system $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. -
-

urxvt::fatal $errormessage
@@ -514,13 +642,8 @@

Using this function has the advantage that its output ends up in the correct place, e.g. on stderr of the connecting urxvtc client.

-

-
$is_safe = urxvt::safe
-
-Returns true when it is safe to do potentially unsafe things, such as -evaluating perl code specified by the user. This is true when urxvt was -started setuid or setgid. +

Messages have a size limit of 1023 bytes currently.

$time = urxvt::NOW
@@ -535,6 +658,22 @@ Mod3Mask, Mod4Mask, Mod5Mask, Button1Mask, Button2Mask, Button3Mask, Button4Mask, Button5Mask, AnyModifier
+
urxvt::NoEventMask, KeyPressMask, KeyReleaseMask, +ButtonPressMask, ButtonReleaseMask, EnterWindowMask, LeaveWindowMask, +PointerMotionMask, PointerMotionHintMask, Button1MotionMask, Button2MotionMask, +Button3MotionMask, Button4MotionMask, Button5MotionMask, ButtonMotionMask, +KeymapStateMask, ExposureMask, VisibilityChangeMask, StructureNotifyMask, +ResizeRedirectMask, SubstructureNotifyMask, SubstructureRedirectMask, +FocusChangeMask, PropertyChangeMask, ColormapChangeMask, OwnerGrabButtonMask
+
+
urxvt::KeyPress, KeyRelease, ButtonPress, ButtonRelease, MotionNotify, +EnterNotify, LeaveNotify, FocusIn, FocusOut, KeymapNotify, Expose, +GraphicsExpose, NoExpose, VisibilityNotify, CreateNotify, DestroyNotify, +UnmapNotify, MapNotify, MapRequest, ReparentNotify, ConfigureNotify, +ConfigureRequest, GravityNotify, ResizeRequest, CirculateNotify, +CirculateRequest, PropertyNotify, SelectionClear, SelectionRequest, +SelectionNotify, ColormapNotify, ClientMessage, MappingNotify
+
Various constants for use in X calls and event processing.
@@ -614,6 +753,20 @@

The urxvt::term Class

+
$term = new urxvt::term $envhashref, $rxvtname, [arg...]
+
+
+Creates a new terminal, very similar as if you had started it with system +$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->destroy
@@ -685,6 +838,20 @@ utmpInhibit visualBell

+
$value = $term->x_resource ($pattern)
+
+
+Returns the X-Resource for the given pattern, excluding the program or +class name, i.e. $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.

+
+

$success = $term->parse_keysym ($keysym_spec, $command_string)
@@ -717,11 +884,21 @@ and optionally set them to new values.

+
$term->selection_make ($eventtime[, $rectangular])
+
+
+Tries to make a selection as set by 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. +
+

$success = $term->selection_grab ($eventtime)
-Try to request the primary selection from the server (for example, as set -by the next method). +Try to request the primary selection text from the server (for example, as +set by the next method). No visual feedback will be given. This function +is mostly useful from within on_sel_grab hooks.

$oldtext = $term->selection ([$newtext])
@@ -810,8 +987,8 @@
XORs the rendition values in the given span with the provided value -(default: RS_RVid). Useful in refresh hooks to provide effects similar -to the selection. +(default: RS_RVid), which MUST NOT contain font styles. Useful in +refresh hooks to provide effects similar to the selection.

$term->scr_xor_rect ($beg_row, $beg_col, $end_row, $end_col[, $rstyle1[, $rstyle2]])
@@ -820,7 +997,7 @@ Similar to 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. +it instead. Both styles MUST NOT contain font styles.

$term->scr_bell
@@ -880,6 +1057,17 @@ Return the window id of the terminal window.

+
$term->vt_emask_add ($x_event_mask)
+
+
+Adds the specified events to the vt event mask. Useful e.g. when you want +to receive pointer events all the times: +
+
+
+   $term->vt_emask_add (urxvt::PointerMotionMask);
+
+

$window_width = $term->width
$window_height = $term->height
@@ -902,22 +1090,29 @@
$nrow_plus_saveLines = $term->total_rows
-
$lines_in_scrollback = $term->nsaved
+
$topmost_scrollback_row = $term->top_row
Return various integers describing terminal characteristics.

+
$x_display = $term->display_id
+
+
+Return the DISPLAY used by rxvt-unicode. +
+

$lc_ctype = $term->locale
Returns the LC_CTYPE category string used by this rxvt-unicode.

-
$x_display = $term->display_id
+
$env = $term->env
-Return the DISPLAY used by rxvt-unicode. +Returns a copy of the environment in effect for the terminal as a hashref +similar to \%ENV.

$modifiermask = $term->ModLevel3Mask
@@ -934,8 +1129,8 @@
$view_start = $term->view_start ([$newvalue])
-Returns the negative row number of the topmost line. Minimum value is -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.

@@ -956,7 +1151,7 @@ Returns the text of the entire row with number $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.
@@ -1051,7 +1246,8 @@
Returns the character offset of the given row|col pair within the logical -line. +line. Works for rows outside the line, too, and returns corresponding +offsets outside the string.

($row, $col) = $line->coord_of ($offset)
@@ -1289,7 +1485,9 @@
>= 3 - script loading and management
-
>=10 - all events received
+
>=10 - all called hooks
+
+
>=11 - hook reutrn values