summaryrefslogtreecommitdiffstats
path: root/runtime/doc/rileft.txt
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/doc/rileft.txt')
-rw-r--r--runtime/doc/rileft.txt124
1 files changed, 124 insertions, 0 deletions
diff --git a/runtime/doc/rileft.txt b/runtime/doc/rileft.txt
new file mode 100644
index 0000000..8589bb6
--- /dev/null
+++ b/runtime/doc/rileft.txt
@@ -0,0 +1,124 @@
+*rileft.txt* For Vim version 9.1. Last change: 2022 Oct 12
+
+
+ VIM REFERENCE MANUAL by Avner Lottem
+ updated by Nadim Shaikli
+
+
+Right to Left display mode for Vim *rileft*
+
+
+These functions were originally created by Avner Lottem:
+ E-mail: alottem@iil.intel.com
+ Phone: +972-4-8307322
+
+ *E26*
+{only available when compiled with the |+rightleft| feature}
+
+
+Introduction
+------------
+Some languages such as Arabic, Farsi, Hebrew (among others) require the
+ability to display their text from right-to-left. Files in those languages
+are stored conventionally and the right-to-left requirement is only a
+function of the display engine (per the Unicode specification). In
+right-to-left oriented files the characters appear on the screen from
+right to left.
+
+Bidirectionality (or bidi for short) is what Unicode offers as a full
+solution to these languages. Bidi offers the user the ability to view
+both right-to-left as well as left-to-right text properly at the same time
+within the same window. Vim currently, due to simplicity, does not offer
+bidi and is merely opting to present a functional means to display/enter/use
+right-to-left languages. An older hybrid solution in which direction is
+encoded for every character (or group of characters) are not supported either
+as this kind of support is out of the scope of a simple addition to an
+existing editor (and it's not sanctioned by Unicode either).
+
+As many people working on the code do not use the right-to-left mode, this
+feature may not work in some situations. If you can describe what is wrong
+and how it would work when fixed, please create an issue on github, see
+|bug-reports|.
+
+
+Highlights
+----------
+o Editing left-to-right files as in the original Vim, no change.
+
+o Viewing and editing files in right-to-left windows. File orientation
+ is per window, so it is possible to view the same file in right-to-left
+ and left-to-right modes, simultaneously. (Useful for editing mixed files
+ in which both right-to-left and left-to-right text exist).
+
+o Compatibility to the original Vim. Almost all features work in
+ right-to-left mode (see Bugs below).
+
+o Backing from reverse insert mode to the correct place in the file
+ (if possible).
+
+o No special terminal with right-to-left capabilities is required. The
+ right-to-left changes are completely hardware independent.
+
+o Many languages use and require right-to-left support. These languages
+ can quite easily be supported given the inclusion of their required
+ keyboard mappings and some possible minor code change. Some of the
+ current supported languages include - |arabic.txt|, |farsi.txt| and
+ |hebrew.txt|.
+
+
+Of Interest...
+--------------
+
+o Invocations
+ -----------
+ + 'rightleft' ('rl') sets window orientation to right-to-left.
+ + 'delcombine' ('deco'), boolean, if editing UTF-8 encoded languages,
+ allows one to remove a composing character which gets superimposed
+ on those that preceded them (some languages require this).
+ + 'rightleftcmd' ('rlc') sets the command-line within certain modes
+ (such as search) to be utilized in right-to-left orientation as well.
+
+o Typing backwards *ins-reverse*
+ ----------------
+ In lieu of using the full-fledged 'rightleft' option, one can opt for
+ reverse insertion. When the 'revins' (reverse insert) option is set,
+ inserting happens backwards. This can be used to type right-to-left
+ text. When inserting characters the cursor is not moved and the text
+ moves rightwards. A <BS> deletes the character under the cursor.
+ CTRL-W and CTRL-U also work in the opposite direction. <BS>, CTRL-W
+ and CTRL-U do not stop at the start of insert or end of line, no matter
+ how the 'backspace' option is set.
+
+ There is no reverse replace mode (yet).
+
+ If the 'showmode' option is set, "-- REVERSE INSERT --" will be shown
+ in the status line when reverse Insert mode is active.
+
+o Pasting when in a rightleft window
+ ----------------------------------
+ When cutting text with the mouse and pasting it in a rightleft window
+ the text will be reversed, because the characters come from the cut buffer
+ from the left to the right, while inserted in the file from the right to
+ the left. In order to avoid it, toggle 'revins' before pasting.
+
+
+Bugs
+----
+o Does not handle CTRL-A and CTRL-X commands (add and subtract) correctly
+ when in rightleft window.
+
+o Does not support reverse insert and rightleft modes on the command-line.
+ However, functionality of the editor is not reduced, because it is
+ possible to enter mappings, abbreviations and searches typed from the
+ left to the right on the command-line.
+
+o Somewhat slower in right-to-left mode, because right-to-left motion is
+ emulated inside Vim, not by the controlling terminal.
+
+o When both 'rightleft' and 'revins' are on: 'textwidth' does not work.
+ Lines do not wrap at all; you just get a single, long line.
+
+o There is no full bidirectionality (bidi) support.
+
+
+ vim:tw=78:ts=8:noet:ft=help:norl: