这也困扰着我;我讨厌文本挤在一个实心颜色块旁边。这会让我感到幽闭恐怖。
以下是我的解决方法(在 MacVim 中,但我认为在其他地方使用相同的技巧也可以):
在你喜欢的颜色方案中,将行号列的背景颜色设置为与普通文本相同的背景颜色,并将行号前景颜色设为低对比度和不引人注目的颜色(这样它看起来不像是你正常文本的一部分)。我使用黑底白字作为正常文本,黑底深灰色字作为行号:
hi LineNr guifg=#505050 guibg=Black
hi Normal guifg=White guibg=Black
不可否认,这并没有真正解决问题,只是把它隐藏起来,但这对我很有效。
https://github.com/vim/vim/blob/master/src/screen.c#L2220
根据代码来看,不经过修补,似乎无法实现:vim总是要将行号格式化为占用整个可用宽度,之后只剩下一个空格(代码中的"%*ld "格式说明确保了这一点)。
set nuw=6
。其中的数字 "6" 是指每列的宽度,以字符数为单位。根据需要替换为较小或较大的数字。我认为这仅适用于更高版本的 Vim(>=7?)。请注意保留HTML标记。autocmd VimEnter * :%left 5
%left 5
在vim终端中使用(%
表示整个文档,left
表示代码到行号的距离,0-无限大
表示等宽距离(=列数))
init.vim
或.vimrc
文件中? - mohammad以下是第二个解决方案(参考如何在gvim中更改左边距):
解决方案1(如%left 5
)只是在代码区域中添加“空格”。我猜它做的事情和线程发起者一样......但它没有回答原始问题。
解决方案2:foldcolumn
可以解决问题(foldcolumn是行号左侧的列)。在exec模式下输入:set foldcolumn=12
。如果你还想改变颜色(像参考文献中一样),输入hi FoldColumn guibg=#003f3f
(参考文献中写成了FoldColumns
,这是错误的)。