我已经为 vim 制作了自定义状态行,但遇到了一个问题,当我执行 :split 时,由于我设置它的方式,很难看到缓冲区之间的分隔。我现在想添加一个字符作为左侧文本与右侧文本之间的分隔边界。在左边,我有一个文件名和它的路径(长度会改变),在右边我有一些关于缓冲区号等的信息。我无法对字符进行硬编码,因为有时文件路径太长会被切断。我希望能够调用一个函数,该函数将根据状态行两端之间的空白量返回可变数量的字符。
我想了多种方法来解决这个问题,但我只是不知道该怎么做,而且我在网上找不到答案。起初,我有一个想法,只是在整个状态行下划线,但我不知道该怎么做。
现在我添加可变数量字符的想法是不同的,我想定义一个函数,它使用正则表达式来读取状态行文本并用可变数量的字符替换该行,这些字符完全适合给定的空白。
我不知道该怎么做,我将不胜感激。此外,我还想让状态栏的某个元素根据我的光标所在的缓冲区改变颜色,这样更容易找到正确的窗口,我也找不到这样做的方法和指针正确的方向将不胜感激。
set laststatus=2
set statusline=
set statusline+=%2*\ %l
set statusline+=\ %*
set statusline+=%1*\ ‹‹
set statusline+=%1*\ %t\ %*
set statusline+=%1*\ ››
set statusline+=%1*\ %m
set statusline+=%3*\ %F
set statusline+=%{AddSeperator()}
set statusline+=%=
set statusline+=%3*\ ‹‹
set statusline+=%3*\ %{strftime('%R',getftime(expand('%')))}
set statusline+=%3*\ ::
set statusline+=%3*\ %n
set statusline+=%3*\ ››\ %*