Xorg窗口‹|›窗口=根本没有任何内容
Tmux窗格‹|›窗格= 1px分隔线
Vim split ‹|› split = 1个字符的彩色列
以下示例显示了一个并排的窗口,窗格和vim拆分:
即使没有单击完整分辨率版本,您看到的白色分隔线也没有什么意义在屏幕上拆分vim窗格。 (请注意,vim会话右侧的灰色列实际上是第80列突出显示的内容,尽管我经常以该大小工作,但不是任何分隔符。)拆分或降低配色方案的对比度。我想做的是使用与tmux相同的分割条,该条不会占用任何宽度,因为它是在列之间而不是在列之间绘制的。基于终端的vim是否可行? Gvim? Neovim?如果无法制作外观上不显眼的分隔器,分隔柱是否可以完全关闭?
P.S.使用外观上相似的分隔符之所以有意义,是因为我使用相同的键绑定在tmux窗格和vim拆分之间导航。相同的键在它们之间无缝导航,只有视觉边界也相同时才有意义。
#1 楼
您对tmux错误。像每个基于终端的程序(包括Vim)一样,它仅在单元内绘制内容。这意味着Vim和tmux都使用相同的方法绘制垂直边框:它们只是使用类似管道的字符。Tmux默认使用
│
(U+2502
),而Vim使用|
(U+007C
)。 br /> 如果要在Vim中使用相同的分隔符,则可以使用相同的字符:
set fillchars+=vert:│
请注意,您的颜色方案可能会设置背景-垂直分割的颜色。在这种情况下,您可以直接在颜色图中删除背景色:
hi VertSplit ctermbg=NONE guibg=NONE
#2 楼
即使在我自己的屏幕截图中,tmux也不使用任何魔术,拆分仍然是单个字符宽的列。不太引人注目的视觉效果是使用了比vim的ASCII默认值笨拙的Unicode框绘图字符,并且缺少突出显示的背景颜色。在rc文件中添加类似以下几行的内容:使用
autocmd
可以确保在切换配色方案时,高光倍率保持有效。您可能希望也可能不希望这种行为,因为某些颜色方案对此颜色组具有合理的值。以及您尝试使用的任何fg / bg值。#3 楼
不,这不能在Vim中完成,并且可能很难在GVIM中实现。Vim坚持使用终端中基于单元的寻址方式。在缓冲区中,这对于使用
j
/ k
进行一致的垂直导航至关重要。这种基于单元格的x和y坐标的寻址在Vim的实现中已根深蒂固,我想很难克服。还要注意
:help design-not
:Vim不是一个花哨的GUI编辑器,它试图以在所有平台上不一致的代价来看起来不错。
评论
我在大约一分钟之前就打败了你,但还是要谢谢你。我不确定为什么我曾经假设不这样做。我想我给人的印象是,它正在执行某种Unicode字符合并魔术,以将分隔符覆盖在字符空间的边缘,但是我现在意识到,我有意识地考虑了一下,这将是多么荒谬。
–卡莱布
15年4月15日在12:31
原来我需要的是Hi VertSplit cterm = NONE,因为默认情况下它是反向的。
– Lloeki
16年2月10日在10:57
您是否有机会将tmux分隔符从“│”更改为“ /”?罗曼
–klaus
18年5月1日下午4:04
@EnanAjmain IIRC我在其源代码中找到了tmux分隔符。我认为没有选择的余地,但是我距离tmux专家还很远,因此您应该查看手册。
– romainl
18年5月1日在9:56
@romainl我认为你是对的。我可以更改tmux的任何主要内容,都必须破解源代码。
–klaus
18年5月1日在13:14