如果我打开 .js、.html、.rb 和其他文件类型,是否可以更改每种文件类型的选项卡颜色?
Tab 表示 vim 的制表符,不像空格。
使用格式%#String#
将用字符串突出显示颜色:
- set tabline=%#String#\ toto
一个脚本放入你的vimrc:
function! TabTest()
let res = ''
for i in range(tabpagenr('$'))
let i += 1
" Get open buffer
let i_window = tabpagewinnr(i)
let l_buffer = tabpagebuflist(i)
let i_buffer = l_buffer[i_window - 1]
" Get type
let s_type = getbufvar(i_buffer, '&filetype')
" Set color according to filetype
let s_color = ''
if i == tabpagenr()
let res .= '%#TabLine#'
elseif 'javascript' == s_type
let res .= '%#String#'
elseif 'html' == s_type
let res .= '%#Comment#'
else
let res .= '%#Normal#'
endif
" set the tab page number (for mouse clicks)
let res .= '%' . (i + 1) . 'T'
" Set label text
let s_buffer = bufname(i_buffer)
try
let s_file = split(s_buffer, '/')[-1]
catch
let s_file = '[No Name]'
endtry
let res .= ' ' . s_file
endfor
return res
endfunction
set tabline=%!TabTest()
当您要求根据文件类型进行颜色突出显示时,您必须获取缓冲区的文件类型:
- let s_type = getbufvar(i_buffer, '&filetype')
为此,您必须在选项卡中获取活动缓冲区的缓冲区编号:
- let i_window = tabpagewinnr(i)
- let l_buffer = tabpagebuflist(i)
- let i_buffer = l_buffer[i_window - 1]
那么你必须明智地根据文件类型用if来区分。所以你肯定想将所有这些隐藏在一个函数中:
set tabline=%!TabTest()
More :
h tabline
h statusline
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)