【问题标题】:display soft hyphen character in vim in Mac OS X Terminal在 Mac OS X 终端的 vim 中显示软连字符
【发布时间】:2011-05-16 12:14:09
【问题描述】:

vim 与 Mac OS X 终端中的软连字符 (0xAD) 完全混淆。不显示,虽然“虚拟列”号是对的,但是插入乱了。

所以如果我有一行a-b,其中- 是软连字符,它在vim 中显示为ab,当我尝试用c 替换字符b 时,我得到而是acb。相当混乱。

pico 也会发生同样的情况,但emacs 不会。

有没有办法解决这个问题?

我在 Mac OS X 的终端中使用 vim。

【问题讨论】:

  • 刚刚尝试编辑带有软连字符的文件。它适用于 Linux 下的 Urxvt(使用 Monaco 字体)。软连字符显示为普通连字符(当然,上面的ga 表示<­> 173, Hex 00ad, Octal 255)。所以我认为这是特定终端(和/或可能是特定字体)的问题。
  • 好点。这不是字体,因为它适用于 MacVim,所以可能是 Mac OS X 终端的一些怪癖?事实上,它似乎也不是特定于 vim 的。
  • 你使用什么编码?如果 0xAD 是多字节的前导字符,则可能不显示。
  • 我刚遇到这个问题。奇怪的是,在 MacVim 中,虽然它不会搞砸列数,但软连字符会导致 MacVim 停止在该行上绘制字符,直到它换行。手动将插入点移到字符上会使它们一个一个地渲染,但是任何导致线条重绘的东西都会使它们再次消失。

标签: macos vim terminal soft-hyphen


【解决方案1】:

iTerm2 没有软连字符的这个问题。

@Kevin Ballard 如果您在 MacVim 的首选项中打开“实验渲染器”,MacVim 会正确渲染软连字符。

【讨论】:

    【解决方案2】:

    Unicode 分配 U+00AD SOFT HYPHEN 字符 East Asian Width Ambiguous,这意味着它占用一或两个终端列——它应该被呈现出来——但终端使用 OS X 中可用的完整 Unicode 文本渲染器,它没有呈现软连字符,除非它正在执行换行。

    有趣的是,emacs 通过向终端发送连字符而不是依赖它来呈现软连字符来显示软连字符。 vim 只是将软连字符发送到终端并假设它会被显示。

    从 OS X Mountain Lion 10.8 开始,终端显示软连字符。

    【讨论】:

      猜你喜欢
      • 2011-07-17
      • 1970-01-01
      • 2010-10-29
      • 2011-07-31
      • 2016-06-22
      • 2016-01-10
      • 1970-01-01
      • 2015-10-03
      • 1970-01-01
      相关资源
      最近更新 更多