На днях, читая документацию к Vim, я к своему удивлению обнаружил, что он предоставляет возможность назначать собственные функции, которые будут генерировать имена для каждой вкладки. Там же был простой пример того, как это можно сделать. Пробежавшись глазами по руководству о написании скриптов для Vim, я модифицировал приведенный пример, получив следующий результат (для текстового и GUI режима отображения):
Вот код, который вам необходимо вставить в свой ~/.vimrc, чтобы получить такой же результат:
" Задаем собственные функции для назначения имен заголовкам табов --> function MyTabLine() let tabline = '' " Формируем tabline для каждой вкладки --> for i in range(tabpagenr('$')) " Подсвечиваем заголовок выбранной в данный момент вкладки. if i + 1 == tabpagenr() let tabline .= '%#TabLineSel#' else let tabline .= '%#TabLine#' endif " Устанавливаем номер вкладки let tabline .= '%' . (i + 1) . 'T' " Получаем имя вкладки let tabline .= ' %{MyTabLabel(' . (i + 1) . ')} |' endfor " Формируем tabline для каждой вкладки <-- " Заполняем лишнее пространство let tabline .= '%#TabLineFill#%T' " Выровненная по правому краю кнопка закрытия вкладки if tabpagenr('$') > 1 let tabline .= '%=%#TabLine#%999XX' endif return tabline endfunction function MyTabLabel(n) let label = '' let buflist = tabpagebuflist(a:n) " Имя файла и номер вкладки --> let label = substitute(bufname(buflist[tabpagewinnr(a:n) - 1]), '.*/', '', '') if label == '' let label = '[No Name]' endif let label .= ' (' . a:n . ')' " Имя файла и номер вкладки <-- " Определяем, есть ли во вкладке хотя бы один " модифицированный буфер. " --> for i in range(len(buflist)) if getbufvar(buflist[i], "&modified") let label = '[+] ' . label break endif endfor " <-- return label endfunction function MyGuiTabLabel() return '%{MyTabLabel(' . tabpagenr() . ')}' endfunction set tabline=%!MyTabLine() set guitablabel=%!MyGuiTabLabel() " Задаем собственные функции для назначения имен заголовкам табов <--Кстати, довольно интересный язык используется в Vim для написания скриптов - очень похож на Python и так же прост и удобен в использовании - быстро разобраться в нем при необходимости не составит никакого труда.
Комментариев нет:
Отправить комментарий