2011-04-06 2 views
3

은 내가 필요하지 않은 삭제 버퍼을 바로 가기 (,q)를 사용할 bdelete` 나열 할 때하지만 난 에 동일한 단축키를 사용하려면 vim을 종료하십시오. 현재 버퍼가 유일한 버퍼 인 경우 입니다.정력은`: q` 대신`의 : 하나의 버퍼

function! MyClose() 
    " :q if at most one buffer is loaded 
    " :bdelete otherwise 
    let bufcount = len(filter(range(1,bufnr('$')), 'buflisted(v:val)==1')) 
    if bufcount < 2 
     exe ":q" 
    else 
     exe ":bdelete" 
    endif 
endfunction 

다음

nnoremap <leader>q :call MyClose()<cr> 

을하지만 난 바로 그 일을하고 있지 않다 느낌 :

나는 현재이 기능을 사용하고 있습니다.

  • 나열된 버퍼를 계산하는 더 좋은 방법이 있습니까?
  • 이 기능을 구현하는 더 좋은 방법이 있습니까? tabpagebuflist이

    기존의 모든 버퍼의 목록을 얻으려면,이 경우

    tablist = [] 
    for i in range(tabpagenr('$')) 
        call extend(tablist, tabpagebuflist(i + 1)) 
    endfor 
    

    을 도움, 당신은 단지 필요한 것 :

답변

0

당신이 바로, 당신은

사용할 수 있습니다 현재 탭의 버퍼를 확인하려면 : q는 탭을 닫을뿐입니다.