所以这对于vim大师来说应该很简单,但基本上我的状态行如下。它看起来很棒,但你会看到.hpp文件的文件类型是[cpp]。理想情况下,我只想在状态行中像[hpp]一样放文件扩展名,这样我就不希望它是/path/file.hpp了
set statusline+=[<file_extension>]
而不是
set statusline+=%y
" Status Line {
set laststatus=2 " always show statusbar
set statusline=
set statusline+=%-10.3n " buffer number
set statusline+=%F " filename
set statusline+=%h%m%r%w " status flags
set statusline+=%y " file type
set statusline+=%= " right align remainder
set statusline+=0x%-8B " character value
set statusline+=%-14(%l,%c%V%) " line, character
set statusline+=%<%P " file position
您可以使用expand()
函数来完成此操作。
set statusline+=[%{expand('%:e')}]
%
表示当前文件,:e
表示获取扩展名。
在我看来,了解当前缓冲区的FileType可能非常有用。
有关更多帮助,请参阅:
:h 'statusline'
:h expand(
:h 'filetype'
:h filetype
我知道这个线程很旧,但如果某个伙伴正在寻找更好的方法,只需使用
set statusline+=%{expand(&filetype)}
这种方法也是缓冲区不可知的,这意味着如果在拆分中打开不同的文件类型,则statusline将显示不同的类型。
相反,如果你选择这个
set statusline+=&filetype
整个窗口的状态线的文件类型将显示活动缓冲区的文件类型