【发布时间】:2012-06-14 01:38:06
【问题描述】:
虽然我的大部分编码都使用 Vim,但我通常更喜欢将当前行加下划线,以便更容易看到我在代码中的位置。我避免使用线条突出显示之类的东西,因为它通常会使我的深色背景上的亮文本主题(即:'torte'colorscheme)更难看到。
这是我的 Vim 配色方案的一部分:
hi CursorLine guibg=#0F2130 ctermbg=NONE cterm=underline
hi CursorColumn guibg=#0F2130 ctermbg=darkgray cterm=NONE
然后我在我的 .vimrc 文件中启用这些功能(即:~/.vimrc)。
所以,在我的例子中,当前行有一个彩色下划线,它是它上面字符的反色,而当前列有一个深灰色背景,而所有其他文本只有一个黑色背景。
我在这里遇到的唯一问题是我在编码时看不到下划线('_')字符,因为当前行的下划线与下划线字符的颜色和粗细完全相同。唯一可行的解决方法是:
- 增加行间距
- 使下划线出现在我的文本下方几个像素处
在 Vim(不是 gVIM)中是否有可能发生这样的事情?
谢谢。
【问题讨论】:
-
我认为
vim可能是尝试解决此问题的错误位置。终端负责下划线的去向,而您选择的字体负责下划线的去向。所以要么用你的字体来移动下划线,要么用你的终端来移动下划线。 (我在xterm联机帮助页中没有看到任何明显的东西,这令人震惊——它已经太可配置了,但仍然没有下划线偏移开关。也许你必须摆弄源代码。如果你'不幸的是,它使用下划线作为下划线...) -
@sarnold:为了做到这一点,我认为它必须使用 Unicode 组合字符(我认为这不太可能)。
-
@Dennis:这是不可能的。行式打印机过去常常打印
_^HM来获得带下划线的M——下划线、退格、M。我相信今天有些终端甚至会寻找这个序列来寻找会在内部生成这些内容的旧程序……vim会生成这些吗?通过 terminfo 对自身进行排序?xterm会自己做这件事,一起打印两个字形,只是为了让下划线的高度正确吗? -
@sarnold:我不知道这些问题的确切答案。
-
在 GVim 中,您可以尝试通过设置
linespace选项来增加行距(参见:help lsp)。