将vim的vertsplit字符更改为│

13

我认为这与代码页有关,但还是问一下无妨。

在Windows XP的cmd中,如何更改gvim 7.2的vertsplit字符,使其不再是默认的 |,而是 │(这样就可以生成完整的行而不是分割的行)?

通常使用以下命令更改该字符:

set fillchars=vert:\|

我可以将ASCII图形线复制粘贴到vim中,但它显示的是乱码。我猜我需要更改vim的内部代码页才能正确显示?

有人知道如何做到这一点吗?

4个回答

14

好的,我来晚了,但这就是我所做的。

字符的呈现方式取决于字体,因此您可以使用某些字体而不是其他字体来获得连续线条。 我发现使用以下之一可以给我一个不间断的行。

  • Menlo
  • Monaco
  • Inconsolata
  • DejaVu Sans Mono
  • Consolas
  • Bitstream Vera Sans Mono

至于设置,以下内容就足够了。 请注意,这与键盘上常见的|字符不同。

set fillchars=vert:\│

比不做好晚做好,Tim! :) 你肯定给了我一些有趣的片段 - 给我一个ASCII / Unicode值,那是另一个垂直线字符,我将把这个答案标记为正确! - Rook
2
你可以复制粘贴它,它会起作用。然而,在vim中按下ga会转储出这个 <│> 9474, Hex 2502, Octal 22402 - kshenoy

7

我尝试了以下方法:

set enc=utf-8
set fillchars=vert:\│

它确实起作用了,但结果并不如人意,仍然没有完整的一行(使用Consolas字体,如果您使用其他字体可以得到一条直线,我会很感兴趣知道是哪个字体)。


到目前为止,我只能在cmd中得到一条直线,这意味着我可以使用“光栅字体”和“Lucida控制台”来获取它。但我相信其他字体也有这些字符,只是我无法获取代码页来显示它们。 - Rook
还有,当你说你得到了一个不完整的行时。您确定正在使用框字符而不是垂直线吗? - Rook
是的,我看到了一些改进,但它仍然没有连接。 - Raoul Supercopter
为了解决这个问题...如果我理解正确的话,“set encoding”会处理vim的内部编码。但是尽管我可以更改它,我无法找到一个与cmd使用的同步的代码页(而且我不知道cmd使用什么:()。 - Rook
我应该提到我正在使用gvim,cmd中的vim对我来说太笨重了。 - Raoul Supercopter
只要我使用 Liberation Mono 并且 :set linespace=0,在 gvim 中我就能得到一条直线。我怀疑你的空气隙是由于行之间有额外的空格造成的,而不是你在每行中绘制的字符。另一方面,gvim 对我来说太笨重了,我更喜欢大多数情况下使用终端。你确定你知道如何配置你的终端吗?;-) - Caleb

2

虽然不完全符合您的要求,但我已经设置fillchars=\并且仅使用高亮显示将空格颜色变为不同的颜色。这种方法不够优雅,但在我看来效果还不错。


1

在查找有向图表时,我发现“方框绘制轻竖线”非常适合此目的。Vim的有向图表条目:│ vv 2502 9474 方框绘制轻竖线。要使用它,请在插入或命令模式下按<c-k>vv获取字符(请参见:h i_CTRL-K)。正如其他人指出的那样,可以使用set fillchars=vert:|进行设置。


我该如何在Vim中使用它?我尝试了复制粘贴,但它没有起作用。 - Rook
更改了帖子以反映使用情况 :) - Ketan Kanishka
顺便提一下,我在多个场合都发现:h digraph-table非常有用,当我想要查找特殊字符时。 - Ketan Kanishka

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接