Bidi paragraph direction in terminal emulators (was: Proposal for BiDi in terminal emulators)
Egmont Koblinger via Unicode
unicode at unicode.org
Fri Feb 8 07:57:56 CST 2019
> Emacs implements the latest UBA from Unicode 11; and the Emacs
> terminal emulator inserts all the text into a "normal" Emacs buffer,
> and displays that buffer as any other buffer. So yes, you have there
> full UBA support.
One of the essentials of my work is that there's much more to BiDi in
terminal emulators than running the UBA. If one takes a step backwards
to look at the big picture, it becomes clear that in some cases the
UBA needs to be run, while in other cases it mustn't. And then of
course there needs to be some means of switching, and so on...
According to the description you give, Emacs's terminal always applies
the BiDi algorithm, therefore by its design only implements what I
call "implicit mode", and not the "explicit mode".
On the other hand, in order to run Emacs inside a terminal emulator,
you need to set that terminal emulator to explicit mode, so that it
doesn't reshuffle the characters. The behavior it expects from the
outer terminal doesn't match the behavior it provides in its inner
one. As an interesting consequence, if you open Emacs, then inside it
a terminal emulator, and then inside it an Emacs, it will display BiDi
incorrectly, in reversed order.
I'm making the strong claim that by running the UBA a terminal
emulator doesn't become BiDi aware, there's much more it needs to do.
More information about the Unicode