Настройка цветов панели вкладок vim - PullRequest
31 голосов
/ 30 августа 2011

Как можно изменить цвет панели вкладок vim?

Я пытался использовать

:hi TabLineFill ctermbg=N

, который меняет цвет фона панели вкладок на цвет, обозначенный буквой «N», но это все, что мне удалось найти в Google. Я посмотрел на :help cterm-colors, но не получил от него большего понимания.

Смогу ли я использовать это средство выделения, чтобы изменить цвет переднего плана и фона активной вкладки, а также переднего плана и фона неактивной вкладки? Если так, как бы я поступил так?

Ответы [ 3 ]

48 голосов
/ 30 августа 2011

Вы можете сделать следующее, например:

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

Эта строка влияет на счетчик окон на вкладке:

:hi Title ctermfg=LightBlue ctermbg=Magenta

Яркие цвета, выбранные, чтобы подчеркнуть, что меняется каждый из предметов.

Я считаю, что просмотр $VIMRUNTIME/colors/*.vim действительно помогает при игре с , выделяя .

Обратите внимание, что они изменяют цвета для Vim, работающего в консоли. Если вы хотите изменить цвета для GVim, вам нужно использовать guibg, guifg, и так далее . Например:

:hi TabLineFill guifg=LightGreen guibg=DarkGreen ctermfg=LightGreen ctermbg=DarkGreen
10 голосов
/ 30 августа 2011

Да, вы бы.

В строке вкладки есть три элемента, которые можно настроить по своему вкусу: TabLine , TabLineSel и TabLineFill .

TabLineSel - это текущая (так сказать) активная метка вкладки.
TabLine - это меткикоторые в данный момент не активны.
TabLineFill - это оставшаяся часть таблицы, где нет меток (фон).

Вы модифицируете все три из них обычным способом.

1 голос
/ 27 ноября 2013

Параметр «tabline» указывает, как выглядит строка с метками вкладок. Он используется только при отсутствии строки вкладки GUI.

Вы можете использовать опцию 'showtabline', чтобы указать, когда вы хотите строку с метки закладок: никогда, если имеется более одной вкладки или всегда.

Подсветка строки вкладок задается группами TabLine. TabLineSel и TabLineFill. | Гектолитров-TabLine | | Гектолитров-TabLineSel | | Гектолитров-TabLineFill |

«+» будет показано для вкладки, которая имеет измененное окно. Номер окна на вкладке также отображается. Таким образом, «3+» означает три окна и одно из у них есть модифицированный буфер.

Параметр «tabline» позволяет вам определять предпочитаемый способ перехода на вкладки этикетки. Это не легко, поэтому пример будет приведен здесь.

Для ознакомления с основами см. Опцию statusline. Те же самые предметы могут быть использованы в опция 'tabline'. Кроме того, | tabpagebuflist () |, | tabpagenr () | а также | Tabpagewinnr () | функции полезны.

Так как количество ярлыков вкладок будет различным, вам нужно использовать выражение для весь вариант. Что-то вроде:> : установить tabline =%! MyTabLine ()

Затем определите функцию MyTabLine () для вывода списка всех ярлыков вкладок. Удобный способ разделить его на две части: сначала переберите все вкладки страницы и определить ярлыки для них. Затем получите ярлык для каждой вкладки. >

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

Теперь функция MyTabLabel () вызывается для каждой вкладки, чтобы получить ее метку. >

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

Это просто упрощенный пример, который приводит к строке вкладки, которая напоминает значение по умолчанию, но без добавления + для модифицированного буфера или усечение имен. Вы хотите уменьшить ширину меток в умный способ, когда не хватает места. Проверьте опцию «столбцы» для свободное место.

...