View on
MetaCPAN is shutting down
For details read Perl NOC. After June 25th this page will redirect to
Moshe Kamensky > Text-Bidi > bidi


Annotate this POD



New  1
Open  2
View/Report Bugs


bidi - Make urxvt present Bidi text correctly


This extension filters the text displayed by Urxvt, so that Bi-directional text (e.g., Hebrew or Arabic mixed with English) is displayed correctly. It does so using the Text::Bidi module (which should be installed).

The extension emulates a cursor via rendition. This means that when typing, there will be two cursors, the original one whose location corresponds to the current location within the logical string (so, mostly useless), and a fake one which corresponds to the current insertion point.

To enable the extension, add bidi to the Urxvt.perl-ext-common resource. See urxvt(1) and urxvtperl(1) for other options and more details.

The extension recognises the following resources:


This should be a string on which each line is split before applying the Bidi algorithm. This permits creating tables, where each cell is treated separately, e.g., in the index of an email client. Note that this is a string, not a regular expression. The default is \x{2502}.


A regular expression. The plugin insert an explicit left-right mark where it matches.


A regular expression. The plugin insert a PDF mark (end of LRE) where it matches.


Boolean, if true work in paragraph mode: the paragraph direction is not reset on each line, but only on lines that start or end a paragraph


A regular expression. A line matching this will start a new paragraph.


Similar to bidi.ParReset, but the paragraph starts after the matching line.

For example, I use urxvt with this plugin to edit LaTeX documents in Hebrew. I have the following resources defined:

    URxvt.bidi.LRE: \\\\[([]
    URxvt.bidi.PDF: \\\\[)\\]]
    urxvt-vimh.bidi.par: true
    urxvt-vimh.cursorUnderline: true
    urxvt-vimh.bidi.ParReset: ^\\s*$|^\\\\begin|^\\\\\\[
    urxvt-vimh.bidi.ParResetAfter: ^\\\\end|\\\\\\]$

This causes inline equations (delimited by \( and \)) be displayed correctly, and equation environments be considered a paragraph (so that it is displayed on the left).

syntax highlighting: