RTL文件名的shell



默认情况下,Emacs 24可以处理阿拉伯语、希伯来语和其他从右向左(RTL)语言。我在X中有多语言术语模拟器来处理这个问题,但是我想在emacs中使用shell来查看非英语字符文件名(我有很多)。当我使用shell时,字符的顺序不正确,它会拼出胡言乱语。(setq-default bidi-display-reordering t)(默认)无明显差异。

这可能吗?

我相信你得到了emacs + mlterm的双重重新排序,需要禁用一个。

您的屏幕截图显示在上半部分mlterm成功检测逐行基方向并重新排序字符。Emacs 24默认情况下在终端中重新排序bidi, 假设非bidi LTR终端。结合这两种方法可以得到ABC -> CBA -> ABC的双重排序。

你有两个选择:

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

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

我希望第一个会更好。Mlterm只能给你一个愚蠢的"bidi display"层,这可能会让你在编辑器上感到困惑;Emacs为您提供了"bidi编辑",其中有人想到了整个交互应该如何工作。

  • 具体来说,emacs中的并行"窗口"应该在emacs执行bidi时工作得很好,而在mlterm执行bidi时则会严重中断。
  • OTOH,鼠标复制粘贴可能在mlterm做bidi时效果更好。
    如果emacs发送重新排序的字符,则mlterm鼠标选择将复制这些字符。Emacs 可以大多接管鼠标与xterm-mouse-mode,但(未经测试的猜测),它工作在终端坐标,将需要额外的工作,以匹配他们的逻辑顺序文本。

注:我不知道为什么最终结果是右对齐的,因为它似乎有一个空白行之前,所以Emacs应该考虑它是一个新的段落,决定它的RTL和发送右对齐的文本mlterm,我希望mlterm然后反转行导致它左对齐。我可能漏掉了什么

相关内容

  • 没有找到相关文章

最新更新