【问题标题】:make (Mac)Vim display certain character as something else使(Mac)Vim 将某些字符显示为其他字符
【发布时间】:2017-01-20 21:25:05
【问题描述】:

我想将 vim 配置为能够将某些字符 显示为其他字符 =>

显然第一个字符是非ASCII字符,而第二个实际上是两个字符。

我正在研究类似于listchars 的东西,但具有更大的灵活性,因为我可以指定字符以及转换。

我只是为了可视化目的而这样做,即我不想编辑实际文件。

另外,我正在考虑编辑字体本身以不同方式显示此字符,然后仅在 MacVim 中使用此“修改”版本的字体。但它似乎非常复杂,并且从不与 fontforge 一起使用。

在 vim/macVim 中是否有类似的东西?

【问题讨论】:

  • vim 中也有类似的东西,是的:语法高亮的conceal 选项。看看 youtube 上的一些例子。人们通常用它来缩短文本,但我不明白为什么你不能反过来使用它。这是一个使用隐藏的插件:youtube.com/watch?v=37rIbrdHKwM
  • @moopet 隐藏很棒,完美解决了我的问题,隐藏级别和光标很不错,我不得不更改 '=>' 因为我不能真正隐藏一个字符与多个字符.但这对我来说已经足够了。谢谢!

标签: vim macvim vim-plugin vim-syntax-highlighting fontforge


【解决方案1】:

隐藏 功能允许将 [sequence of] 字符[s] 显示为不同的单个字符。这可用于将=> 显示为,但不幸的是,反之则不然。

同样,修改字体也不起作用;每个字符只占据一个显示单元(好吧,除了双宽字符,但你不能只将单宽变成双宽)。

我不确定你的动机是什么,但想象一下,如果你可以将单个 (即使是加宽形式)作为两个字符来处理(但编辑像 f 或 @987654325 这样的命令,那么编辑会变得多么混乱@ 仍然会看到单个字符)。

实现类似功能的唯一方法是在编辑缓冲区时执行:%substitute/⇒/=>/g,并为:write 撤消该操作(使用:autocmds),但我建议不要这样做。

【讨论】:

  • 我不得不将 '=>' 更改为一个字符,但隐藏对我来说非常有效,感谢您的详细说明。
  • 啊,太好了。从您的抽象问题中,您的动机不是很清楚。请注意,隐藏是一种语法突出显示功能,因此如果存在底层语法/文件类型,它可能会与之产生负面影响(但这取决于语法本身)。
  • FWIW 如果您编辑/创建字体,您可以将字符字形制作成您想要的任何宽度。在 OpenType 字体规范中为每个单独指定字形长度。
猜你喜欢
  • 2018-04-29
  • 1970-01-01
  • 2012-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多