vi / vim - как установить фиксированный размер метки вкладки / заголовка в символах - PullRequest
8 голосов
/ 28 января 2009

Когда я открываю новые вкладки в vi / vim (7.2), если открытые файлы находятся по разным путям, заголовок вкладки отображает полный путь и переключает экран, так что другие вкладки не видны. Это означает, что я не могу использовать мышь, чтобы щелкнуть по нужной вкладке, но вынужден прибегать к: & клавиатурным командам для перемещения между вкладками.

Можно ли как-нибудь ограничить заголовки вкладок максимальным «размером / длиной», чтобы я мог видеть только последние 12 символов файла в относительном пути?

Ответы [ 4 ]

7 голосов
/ 21 января 2010

Вы можете сделать это довольно хорошо для gvim с настройкой 'guitablabel'.

Вот выдержка из моего .gvimrc, который изменяет значение по умолчанию, чтобы отображать только до 12 символов имени файла, но сохраняет «+» для измененных буферов. Всплывающая подсказка остается неизменной, поэтому вы можете получить полный путь к ней или нажать Ctrl-G в командном режиме.

if version >= 700
    "set showtabline to show when more than one tab
    set showtabline=1
    "set tab labels to show at most 12 characters
    set guitablabel=%-0.12t%M
endif

" don't show the toolbar in the GUI (only the menu)
set guioptions-=T

" don't show tear-off menus
set guioptions-=t
2 голосов
/ 28 января 2009

В ответ на мой собственный вопрос:

После прочтения Chad Birch выше и поиска в настройках tabline я нашел плагин TabLineSet , который делает трюк, и некоторые объяснения сценариев здесь

1 голос
/ 11 июля 2009

Я нашел следующее сообщение в блоге было самым кратким из всех.

Ссылка обеспечивает следующую функцию, которая должна быть размещена в вашем файле .gvimrc.

function! GuiTabLabel()
    " add the tab number
    let label = '['.tabpagenr()

    " modified since the last save?
    let buflist = tabpagebuflist(v:lnum)
    for bufnr in buflist
        if getbufvar(bufnr, '&modified')
            let label .= '*'
            break
        endif
    endfor

    " count number of open windows in the tab
    let wincount = tabpagewinnr(v:lnum, '$')
    if wincount > 1
        let label .= ', '.wincount
    endif
    let label .= '] '

    " add the file name without path information
    let n = bufname(buflist[tabpagewinnr(v:lnum) - 1])
    let label .= fnamemodify(n, ':t')

    return label
endfunction

set guitablabel=%{GuiTabLabel()}
1 голос
/ 28 января 2009
:help setting-tabline

Кажется, у меня есть соответствующая информация, но я недостаточно знаком со сценариями vim, чтобы помочь вам получить именно тот эффект, который вы хотите. Надеюсь, что кто-то еще может забрать с этого момента.

Также см .:

:help statusline

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...