diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-10 20:09:20 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-10 20:09:20 +0000 |
commit | 029f72b1a93430b24b88eb3a72c6114d9f149737 (patch) | |
tree | 765d5c2041967f9c6fef195fe343d9234a030e90 /runtime/doc/rileft.txt | |
parent | Initial commit. (diff) | |
download | vim-029f72b1a93430b24b88eb3a72c6114d9f149737.tar.xz vim-029f72b1a93430b24b88eb3a72c6114d9f149737.zip |
Adding upstream version 2:9.1.0016.upstream/2%9.1.0016
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'runtime/doc/rileft.txt')
-rw-r--r-- | runtime/doc/rileft.txt | 124 |
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: |