2012-03-24 2 views
3

Это не вопрос в отпечатке.Раздражающие этикетки линии вкладки vim

Поведение Вима для навигации по окну действительно меня раздражает. Предположим, что есть такая конфигурация окон тока открыта, а файл wp-config-sample.php является текущей:

enter image description here

Как и все другие файлы в другой каталог, если я остановлюсь ни один из них делает <ESC>gt все они получают их содержание изменилось, и язычки получить изменения размера, а также:

enter image description here

Это простой пример, но проблема действительно возникает, когда есть много вкладок отворилась, и я просто не могу понять, где я am, поскольку t он сфокусировал вкладку значительно изменил свою позицию от первоначальной.

То, что я ожидаю от хорошего поведения, - это одна и та же система в Firefox, где сфокусированная и не сфокусированная вкладка никогда не меняет свое положение, а сосредоточенный только слегка подчеркивается.

Есть ли способ остановить его?

+0

регулируется название, чтобы удалить _'That не углубление question'_ типа неоднозначность – sehe

ответ

3

tappi, on #vim at Freenode, уточнил, что у меня есть autochdir включен. Чтобы быстро исправить это:

:set noautochdir 

И лысуха указал мне хороший vim's wiki link, с хорошим сниппета, который работает очень хорошо в .vimrc, чтобы сохранить autochdir поведение, а также держать регулярное название вкладки при переходе через окна.

Теперь мои вкладки прекрасны!

1

Да, вы можете отображать только имена файлов в Vim. См. :h tabline и :h filename-modifiers.

1

Да, ярлыки вкладки по умолчанию делают вкладки действительно раздражающими, когда у вас включен autochdir. В основном, они показывают вам полный путь (сокращенно), если ваш :pwd - это нечто иное, чем местоположение файла, и просто имя файла, если ваш :pwd совпадает с файлом. Когда вы используете autochdir, ваш :pwd изменяется при каждом загрузке буфера, в том числе при переключении вкладок. Мне нравится autochdir, потому что :ls и любые операции с файлами автоматически относятся к cwd активного буфера. Я всегда знаю это местоположение, потому что у меня есть полный путь в моей строке состояния.

У меня есть вкладки gui, чтобы показать мне несколько разных вещей ... Номер вкладки, измененный индикатор, если на вкладке (показано количество) есть более одного окна и всегда отображается только имя файла буфера (используя один в активном окне, если имеется более одного окна).

" GUI Tab label full path 
function! GuiTabLabeler() 
    let tabno = tabpagenr() 
    let label = '' 
    let bufnrlist = tabpagebuflist(v:lnum) 

    " Add '+' if one of the buffers in the tab page is modified 
    for bufnr in bufnrlist 
    if getbufvar(bufnr, "&modified") 
     let label = '[+]' 
     break 
    endif 
    endfor 

    " Append the number of windows in the tab page if more than one 
    let wincount = tabpagewinnr(v:lnum, '$') 
    if wincount > 1 
    let label .= ' [' . wincount . ']' 
    endif 

    " Append the buffer name 
    return tabno . " " . 
     \ fnamemodify(bufname(bufnrlist[tabpagewinnr(v:lnum) - 1]), ":t") 
     \ . label 
endfunction 

set guitablabel=%!GuiTabLabeler() 

числа Tab в закладках хороши, особенно если вы делаете что-то вроде карты ключи альт-номерные им:

" Tab navigation in with alt-# 
noremap <A-1> :tabnext 1<CR> 
noremap <A-2> :tabnext 2<CR> 
noremap <A-3> :tabnext 3<CR> 
noremap <A-4> :tabnext 4<CR> 
noremap <A-5> :tabnext 5<CR> 
noremap <A-6> :tabnext 6<CR> 
noremap <A-7> :tabnext 7<CR> 
noremap <A-8> :tabnext 8<CR> 
noremap <A-9> :tabnext 9<CR> 
noremap <A-0> :tabnext 0<CR> 

Таким образом, мои закладки GUI остаться довольно узкие и чистые.Я предпочитаю иметь имя файла с полным путем в моем статусной строке (среди прочего):

" Statusline 
set laststatus=2 
let &statusline='%F %r%m [%{&fileformat}]%y[%{strlen(&fenc)?&fenc:&enc}]' 
      \ . '%= --%3p%% -- l:%3l, c:%3c (%03b 0x%02B)' 
Смежные вопросы