在vim的状态行显示文件扩展名



所以这对于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

整个窗口的状态线的文件类型将显示活动缓冲区的文件类型

最新更新