Personnaliser les couleurs de la barre de tabulation vim

comment modifier la couleur de la barre d'onglets de vim?

j'ai essayé d'utiliser

:hi TabLineFill ctermbg=N

ce qui change la couleur du fond de la barre d'onglets à la couleur que 'N' signifie, Mais c'est tout ce que j'ai réussi à glaner à partir de Googling. J'ai eu un coup d'oeil à :help cterm-colors, mais je n'en ai pas tiré beaucoup plus de compréhension.

<!-Est-ce que je pourrais utiliser cette fonction de mise en évidence pour changer la couleur de l'avant-plan et du fond d'un onglet actif?, et le premier plan et le fond d'un onglet inactif? Si oui, comment pourrais-je aller sur le faire?

27
demandé sur Pádraig 2011-08-30 06:32:01

3 réponses

Vous pouvez effectuer les opérations suivantes, par exemple:

:hi TabLineFill ctermfg=LightGreen ctermbg=DarkGreen
:hi TabLine ctermfg=Blue ctermbg=Yellow
:hi TabLineSel ctermfg=Red ctermbg=Yellow

cette ligne affecte le compteur de fenêtres par onglet:

:hi Title ctermfg=LightBlue ctermbg=Magenta

couleurs criardes choisies pour mettre en évidence ce que chacun des éléments change.

je trouve que le fait de regarder $VIMRUNTIME/colors/*.vim aide vraiment quand on joue avec le l.

notez que ceux-ci changent les couleurs pour Vim tournant dans une console. Si vous voulez changer les couleurs pour GVim, vous devez utiliser guibg,guifg, etc. Par exemple:

:hi TabLineFill guifg=LightGreen guibg=DarkGreen ctermfg=LightGreen ctermbg=DarkGreen
42
répondu Johnsyweb 2011-08-30 05:46:35

Oui, vous.

Il y a trois éléments dans le onglet ligne qui peuvent être personnalisés à votre goût: TabLine, TabLineSel et TabLineFill.

TabLineSel - est l'étiquette courante (pour ainsi dire) de l'onglet actif.

TabLine - sont les étiquettes qui ne sont pas actuellement active.

TabLineFill - est le reste de la tabline où il n'y a pas les étiquettes (arrière-plan).

vous les modifiez tous les trois de la façon habituelle.

8
répondu Rook 2011-08-30 02:53:15

l'option' tabline ' spécifie à quoi ressemble la ligne avec les étiquettes des pages d'onglets. Il n'est utilisé que lorsqu'il n'y a pas de ligne d'onglet GUI.

vous pouvez utiliser l'option' showtabline ' pour spécifier quand vous voulez la ligne avec étiquettes de page d'onglet à apparaître: jamais, quand il ya plus d'une page d'onglet ou toujours.

la mise en surbrillance de la ligne des pages de l'onglet est définie avec les groupes TabLine TabLineSel et TabLineFill. |hl-TabLine| / hl-TabLineSel| / hl-TabLineFill/

l'option 'tabline' vous permet de définir votre méthode préférée pour tabuler les pages étiquette. Ce n'est pas facile, donc un exemple sera donné ici.

pour les bases, voir l'option 'statusline'. Les mêmes articles peuvent être utilisés dans option "tabline". En outre, le |tabpagebuflist()|, |tabpagenr()| et |tabpagewinnr()| fonctions sont utiles.

Depuis le numéro de l'onglet étiquettes varient, vous devez utiliser une expression pour l'ensemble de l'option. Quelque chose comme: > : set tabline=%!MyTabLine ()

puis définir la fonction MyTabLine () pour lister toutes les étiquettes des pages d'onglets. Un la méthode commode est de le diviser en deux parties: D'abord passer en revue tout l'onglet pages et définir des étiquettes pour eux. Puis obtenez l'étiquette pour chaque page d'onglet. >

function MyTabLine()
  let s = ''
  for i in range(tabpagenr('$'))
    " select the highlighting
    if i + 1 == tabpagenr()
      let s .= '%#TabLineSel#'
    else
      let s .= '%#TabLine#'
    endif

    " set the tab page number (for mouse clicks)
    let s .= '%' . (i + 1) . 'T'

    " the label is made by MyTabLabel()
    let s .= ' %{MyTabLabel(' . (i + 1) . ')} '
  endfor

  " after the last tab fill with TabLineFill and reset tab page nr
  let s .= '%#TabLineFill#%T'

  " right-align the label to close the current tab page
  if tabpagenr('$') > 1
    let s .= '%=%#TabLine#%999Xclose'
  endif

  return s
endfunction

function MyTabLabel(n)
  let buflist = tabpagebuflist(a:n)
  let winnr = tabpagewinnr(a:n)
  return bufname(buflist[winnr - 1])
endfunction

ceci est juste un exemple simpliste qui résulte en une ligne de pages d'onglets qui ressemble à la valeur par défaut, mais sans ajouter un + pour un tampon modifié ou tronquer les noms. Vous voulez réduire la largeur des étiquettes manière habile quand il n'y a pas assez de place. Cochez l'option "colonnes" l'espace disponible.

1
répondu KJlmfe 2013-11-27 06:00:06