Vim配置不能跨选项卡工作?

时间:2017-10-22 07:56:34

标签: vim tabs

这是我的.vimrc:

set tabstop=2 softtabstop=0 shiftwidth=2 smarttab
set number
map <F5> :tabp<CR>
map <F6> :tabn<CR>
map <F7> :e %<.cpp<CR>
map <F8> :e %<.h<CR>
map <C-F7> :e %<.vs<CR>
map <C-F8> :e %<.fs<CR>
map <F9> :w<CR>:!./m<CR>
map <F10> :w<CR>:!./%<CR>
let &path.="/home/dirk/projects/dirk/common,/home/dirk/projects/dirk/sp33d,./proj/tmp,./shaders,"
au BufRead *.fs set ft=
au BufRead *.vs set ft=

" Show tabs in light color
hi GroupTabs ctermfg=lightgray
match GroupTabs /\t/
set listchars=tab:>-
set list

我的帖子是关于&#34;以浅色显示标签&#34;部分。当我用vim打开文件时,它会正确地从选项卡中显示灰色。

但是,我喜欢使用多个选项卡,因此当我使用:tabe命令或启动vim时使用-p参数打开额外文件时,选项卡的灰化仅适用于第一个选项卡,而不适用于其他选项卡

我尝试单独打开其他标签上的文件,然后就可以了。

是否有关于标签的内容我不知道?有没有办法让其他标签上的灰色工作?

我经常使用的文件是cpp,h,py,lua,html,css,...,它们都有这个问题,所以我猜它与文件类型特定的语法高亮无关?

感谢任何帮助。

1 个答案:

答案 0 :(得分:4)

  

是否有关于我不知道的标签的内容?

至少有两件事:

  1. 它们不是“标签”,而是“标签页”,
  2. 您的问题与标签页无关。
  3.   

    有没有办法让其他标签上的灰色工作?

    :help :match的第一句话是:

    Define a pattern to highlight in the current window.
    

    表示您的:match命令仅影响当前窗口,不会对其他窗口产生任何影响。由于:tabedit和朋友创建新窗口,因此没有任何理由期望您的:match也能在那里工作。

    要使自定义匹配跨窗口工作,您需要在自动命令中使用:help matchadd()

    augroup CustomMatches
        autocmd!
        autocmd winEnter,BufEnter * call clearmatches() | call matchadd('GroupTabs', '\t', 100)
    augroup END
    

    <强>可是...

    Vim已经为这些主要标签提供了一个突出显示组:

    hi SpecialKey ctermfg=lightgray
    

    所以首先不需要任何这些。