Eshell for RTL文件名

时间:2014-06-18 17:26:42

标签: emacs eshell

默认情况下,Emacs 24可以处理阿拉伯语,希伯来语和其他从右到左(RTL)语言。我有多语言术语模拟器在X中处理这个,但我想在emacs中使用eshell来查看非英文字符文件名(男孩我有很多)。当我使用eshell时,角色的顺序不正确,并且说出了胡言乱语。 (setq-default bidi-display-reordering t)(默认情况下)显然没有区别。

这可能吗?

1 个答案:

答案 0 :(得分:1)

我相信你正在通过emacs + mlterm进行双重重新排序,并且需要禁用一个。

Your screenshot显示在上半部分mlterm成功检测逐行基本方向并重新排序字符。 默认情况下,Emacs 24会在终端重新排序bidi,假设非bidid LTR termianl 。 结合两者导致双重重新排序ABC - > CBA - > ABC

您有两个选择:

  1. 在mlterm中禁用bidi(至少在运行emacs时,不知道如何自动执行)。

  2. 在emacs中禁用bidi(至少在mlterm下运行时)。 即将bidi-display-reordering设置为 nil ,而不是 t

  3. 我希望第一个会更好。 mlterm只能给你一个愚蠢的“比迪显示”图层,这可能会让编辑器感到困惑; emacs为您提供“双向编辑”,让有人想到整个互动应该如何运作。

    • 具体来说,emacs中的并排“窗口”应该在emacs执行bidi时运行良好,并且当mlterm运行时可能会非常突破。
    • OTOH,当mlterm执行bidi时,鼠标复制粘贴可能效果更好 如果emacs发送重新排序的字符,那就是mlterm鼠标选择将复制的内容。 Emacs 可以主要接管带有xterm-mouse-mode的鼠标,但是(未经测试的推测)它适用于终端坐标,需要额外的工作才能将它们与逻辑顺序文本相匹配。

    P.S。我不确定为什么最终结果是右对齐的,因为它似乎之前有一个空白行,因此Emacs应该将其视为一个新段落,决定它是RTL并将右对齐文本发送到mlterm,我希望mlterm然后反转该行导致它左对齐。我可能错过了一些东西。