2013-09-02 5 views
0

".1 : File1.txt"또는 "2 : File2.tx"등의 탭 제목을 표시하려면이 .vimrc에이 루프가 있지만 tabpagenr ('$') 및 tabpagenr()은 열려있는 탭의 수와 관계없이 항상 1을 반환합니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?내 tabpagenr이 항상 1을 반환하는 이유

for t in range(tabpagenr('$')) 
    if (t + 1) == tabpagenr() 
     let &titlestring = t + 1 . ': ' 
    endif 
endfor 

let &titlestring .= expand("%:M") 
    if &term == "screen" || &term == "xterm" 
     set title 
endif 
+0

당신이 그 무슨 일이 일어나고 있는지의 확신 : 당신은 지속적으로 평가가 적어도합니다 (TabEnter 이벤트 예) 모든 탭 페이지 변경에서 'titlestring'를 업데이트 :autocmd를 사용하거나 더 나은 옵션에 식을 사용할 필요가 에? 명령 줄에서': echo tabpagenr ('$')'을 그냥 쓰면 무엇이 표시됩니까? – intuited

+0

예, 방금 명령 줄에서 이득을 시도했습니다. 1 –

+0

몇 개의 탭을 열어 놓았습니까? – intuited

답변

0

샘플 코드에서 누락 된 일부 비트가있는 것처럼 보입니다. 몇 줄만 탭 레이블을 변경하려고합니까?

아무튼 인수가없는 경우 tabpagenr()현재 탭의 수를 반환합니다. 루프 동안 항상 동일한 탭에 있기 때문에이 함수는 항상 동일한 수를 반환합니다.

:help setting-tabline 예를 들어 보셨습니까?

0

코드가 실행 된 이벤트에 관해서는 알려주지 않았습니다. ~/.vimrc에이 값을 명시 적으로 입력하면 Vim이 시작될 때 번만 번만 실행됩니다.

:set titlestring=%{tabpagenr()} 
+0

내 .vimrc에서 귀하의 제안을 시도했습니다 : "탭 제목에 파일 이름 만 표시 & titlestring = % { tabpagenr()}하자 및 titlestring =. ':' 하자 및 titlestring = 확장합니다. ("% M") 세트 제목 을이 오류 가지고 : 처리 /home/viet.pham/.vimrc 동안 감지 오류 : 행 44 : E15 : 유효하지 않은 표현식 : % {tabpagenr()} E15 : 유효하지 않은 표현식 : % {tabpagenr()} ENTER를 누르거나 계속하려면 command를 입력하십시오. –

+0

q가 누락되었습니다. 'let ':'let & titlestring ='% {tabpagenr()} ''을 사용할 때 uoting. –

관련 문제