2012-03-24 4 views
3

들여 쓰기 문제는 아닙니다.vim 탭 라인 레이블 귀찮음

창 탐색을위한 Vim의 동작은 실제로 나를 귀찮게합니다. 이 열 창 전류의 구성, 그리고 파일 wp-config-sample.php이 현재 하나입니다 가정 : 나는 그들 중 하나가 <ESC>gt을하고 집중하면 다른 모든 파일로

enter image description here

는, 다른 디렉토리에있는, 모든 그들은 그 내용이 변경 얻을, 그리고 탭뿐만 아니라 크기가 조정받을 :

간단한 예를 들어,하지만 많은 탭과 내가 어디서 알아낼 수 없습니다 연있을 때 문제가 실제로 발생

enter image description here

I 오전, 왜냐하면 그는 집중된 태브 (tab)를 원래 위치에서 크게 바꿨다.

좋은 동작으로 기대되는 것은 파이어 폭스의 동일한 시스템으로 초점을 맞춘 탭과 초점이 ​​맞지 않는 탭은 절대 위치를 변경하지 않으며 초점을 맞춘 탭은 약간 강조됩니다.

중단시킬 수있는 방법이 있습니까?

+0

제거 된 제목 _ 들여 쓰기 질문이 없습니다. _ 유형 모호성 – sehe

답변

3

Freenode #vim에서 tappi가 autochdir을 켰다는 것을 분명히했습니다. 빨리이 문제를 해결하려면 :

:set noautochdir 

그리고 물닭은 autochdir 동작을 보존하고 창을 전환 할 때 또한 일반 탭 타이틀을 유지하기 위해, 정말 잘 .vimrc에서 작동하는 멋진 조각으로 나에게 좋은 vim's wiki link을 지적했다.

내 탭이 아름답습니다!

1

예, 파일 이름 만 Vim에 표시 할 수 있습니다. :h tabline:h filename-modifiers을 참조하십시오.

1

그래, 기본 탭 레이블을 사용하면 실제로 autochdir을 사용하면 탭을 귀찮게 만듭니다. 기본적으로 파일은 :pwd이 파일의 위치가 아닌 경우 전체 경로 (축약 됨)를 표시하고 :pwd이 파일의 위치와 동일한 경우 파일 이름 만 표시합니다. autochdir을 켜면 탭을 전환 할 때를 포함하여 버퍼를로드 할 때마다 :pwd이 변경됩니다. 및 모든 파일 작업이 자동으로 활성 버퍼의 cwd와 관련되기 때문에 autochdir을 좋아합니다. 내 상태 표시 줄에 전체 경로가 있기 때문에 항상 위치를 알고 있습니다.

내가보기에 몇 가지 다른 점을 표시하도록 탭이 설정되어 있습니다 ... 탭에 창이 하나 이상인 경우 (개수 표시) 탭 번호, 수정 된 표시기가 표시되며 항상 버퍼의 파일 이름 만 표시합니다. (하나 이상의 창이있는 경우 활성 창에있는 것을 사용). 내 GUI 탭이 꽤 좁고 청결 유지,

" 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 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() 

탭 번호는 당신이 그들에지도처럼 고도 - 숫자 키를 뭔가를 할 경우 특히 좋은입니다.내 상태 행에 전체 경로가 포함 된 파일 이름을 사용하는 것이 좋습니다 (다른 것들 중에서) :

" Statusline 
set laststatus=2 
let &statusline='%F %r%m [%{&fileformat}]%y[%{strlen(&fenc)?&fenc:&enc}]' 
      \ . '%= --%3p%% -- l:%3l, c:%3c (%03b 0x%02B)'