Подтвердить что ты не робот

Настройка цветов панели вкладок vim

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

Я пробовал использовать

:hi TabLineFill ctermbg=N

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

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

4b9b3361

Ответ 1

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

: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

Ответ 2

Да, вы бы.

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

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

Вы изменяете все три из них обычным способом.

Ответ 3

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

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

Выделение строки с вкладками задается с помощью групп TabLine TabLineSel и TabLineFill. | Гектолитров-TabLine | | Гектолитров-TabLineSel | | Гектолитров-TabLineFill |

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

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

Для основ см. параметр "statusline". Эти же элементы могут использоваться в опция "tabline". Кроме того, | tabpagebuflist() |, | tabpagenr() | а также | Tabpagewinnr() | функции полезны.

Поскольку количество ярлыков вкладок будет различным, вам нужно использовать выражение для весь вариант. Что-то вроде: >   : set 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

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