【Vim】流暢切換buffer或者tab

文中所談及代碼在這里t-vim

最終目的:

  1. 在只有一個(gè)tab的情況下嗤堰,按<Leader>?數(shù)字戴质,切換buffer,而且不需要關(guān)心真正的buffer number是多少(真正的Buffer number通常不是從1開始的踢匣,而且Buffer刪除之后不會(huì)重新排序)告匠,所見即所得。
  2. 在多個(gè)tab的情況下离唬,按<Leader>?數(shù)字后专,切換tab。

分兩種情況:

  1. 使用vim-airline
  2. 使用vim-bufferline

第一種情況:使用vim-airline自帶功能進(jìn)行tab和Buffer之間的切換输莺,如下配置

airline 部分關(guān)鍵的配置戚哎,主要是設(shè)置tabline擴(kuò)展:

let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#tabline#tab_nr_type = 1 " tab number
let g:airline#extensions#tabline#show_tab_nr = 1
let g:airline#extensions#tabline#formatter = 'default'
let g:airline#extensions#tabline#buffer_nr_show = 0
let g:airline#extensions#tabline#fnametruncate = 16
let g:airline#extensions#tabline#fnamecollapse = 2
let g:airline#extensions#tabline#buffer_idx_mode = 1

第二種情況,使用vim-bufferline嫂用,在cmd窗口顯示buffer型凳。

關(guān)鍵配置:

這里設(shè)置不顯示buffer number,因?yàn)閷?duì)我們來說已經(jīng)沒有意義嘱函。

   let g:bufferline_show_bufnr = 0

按鍵映射:

" tab or buf 1
nnoremap <leader>1 :call te#utils#tab_buf_switch(1)<cr>
" tab or buf 2
nnoremap <leader>2 :call te#utils#tab_buf_switch(2)<cr>
" tab or buf 3
nnoremap  <leader>3 :call te#utils#tab_buf_switch(3)<cr>
" tab or buf 4
nnoremap  <leader>4 :call te#utils#tab_buf_switch(4)<cr>
" tab or buf 5
nnoremap  <leader>5 :call te#utils#tab_buf_switch(5)<cr>
" tab or buf 6
nnoremap  <leader>6 :call te#utils#tab_buf_switch(6)<cr>
" tab or buf 7
nnoremap  <leader>7 :call te#utils#tab_buf_switch(7)<cr>
" tab or buf 8
nnoremap  <leader>8 :call te#utils#tab_buf_switch(8)<cr>
" tab or buf 9
nnoremap  <leader>9 :call te#utils#tab_buf_switch(9)<cr>

函數(shù):

function! te#utils#tab_buf_switch(num) abort
    if exists('g:feat_enable_airline') && g:feat_enable_airline == 1
        execute 'normal '."\<Plug>AirlineSelectTab".a:num
    else
        if exists( '*tabpagenr' ) && tabpagenr('$') != 1
            " Tab support && tabs open
            execute 'normal '.a:num.'gt'
        else
            let l:temp=a:num
            let l:buf_index=a:num
            let l:buf_count=len(filter(range(1, bufnr('$')), 'buflisted(v:val)'))
            if l:temp > l:buf_count
                return
            endif
            while l:buf_index != 0
                while !buflisted(l:temp)
                    let l:temp += 1
                endw
                let l:buf_index -= 1
                if l:buf_index != 0
                    let l:temp += 1
                endif
            endw
            execute ':'.l:temp.'b'
        endif
    endif
endfunction

上面函數(shù)首先做了這些判斷:

  1. 是否使用vim-airline甘畅,那么使用airline統(tǒng)一接口切換tab或者bufer
  2. 是否存在多于一個(gè)tab,那么切換tab
  3. 切換buffer
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末往弓,一起剝皮案震驚了整個(gè)濱河市疏唾,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌函似,老刑警劉巖槐脏,帶你破解...
    沈念sama閱讀 206,482評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異撇寞,居然都是意外死亡准给,警方通過查閱死者的電腦和手機(jī)泄朴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來露氮,“玉大人祖灰,你說我怎么就攤上這事∨瞎妫” “怎么了局扶?”我有些...
    開封第一講書人閱讀 152,762評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)叁扫。 經(jīng)常有香客問我三妈,道長(zhǎng),這世上最難降的妖魔是什么莫绣? 我笑而不...
    開封第一講書人閱讀 55,273評(píng)論 1 279
  • 正文 為了忘掉前任畴蒲,我火速辦了婚禮,結(jié)果婚禮上对室,老公的妹妹穿的比我還像新娘模燥。我一直安慰自己,他們只是感情好掩宜,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,289評(píng)論 5 373
  • 文/花漫 我一把揭開白布蔫骂。 她就那樣靜靜地躺著,像睡著了一般牺汤。 火紅的嫁衣襯著肌膚如雪辽旋。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,046評(píng)論 1 285
  • 那天檐迟,我揣著相機(jī)與錄音补胚,去河邊找鬼。 笑死追迟,一個(gè)胖子當(dāng)著我的面吹牛糖儡,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播怔匣,決...
    沈念sama閱讀 38,351評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼桦沉!你這毒婦竟也來了每瞒?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,988評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤纯露,失蹤者是張志新(化名)和其女友劉穎剿骨,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體埠褪,經(jīng)...
    沈念sama閱讀 43,476評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡浓利,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,948評(píng)論 2 324
  • 正文 我和宋清朗相戀三年挤庇,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片贷掖。...
    茶點(diǎn)故事閱讀 38,064評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡嫡秕,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出苹威,到底是詐尸還是另有隱情昆咽,我是刑警寧澤,帶...
    沈念sama閱讀 33,712評(píng)論 4 323
  • 正文 年R本政府宣布牙甫,位于F島的核電站掷酗,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏窟哺。R本人自食惡果不足惜泻轰,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,261評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望且轨。 院中可真熱鬧浮声,春花似錦、人聲如沸殖告。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)黄绩。三九已至羡洁,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間爽丹,已是汗流浹背筑煮。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留粤蝎,地道東北人真仲。 一個(gè)月前我還...
    沈念sama閱讀 45,511評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像初澎,于是被迫代替她去往敵國(guó)和親秸应。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,802評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • leoatchina的vim配置文件 This is leoatchina's vim config forked...
    leoatchina閱讀 3,979評(píng)論 0 2
  • space-vim 現(xiàn)已支持 Layer 碑宴,以下內(nèi)容大都陳舊软啼,歡迎訪問 github 查看最新版本:>>>> sp...
    liuchengxu閱讀 42,891評(píng)論 2 98
  • 安裝依賴庫(kù)(支持Python 3、Lua延柠、Ruby) sudo apt-get install libncurse...
    Cyfeng閱讀 2,096評(píng)論 0 2
  • 第八章 “系昪念祸挪,我們以前是不是見過?” 在電梯上贞间,岳卿項(xiàng)冷不丁的問了一句贿条,系昪念被他問的渾身抑制不住的顫抖雹仿,可能...
    崖柏今天早起了閱讀 219評(píng)論 0 2
  • 一個(gè)鼻炎患者的自述。整以。胧辽。 鼻炎是絕癥... 出門紙要備全....要帶墨鏡...口罩最好也要帶....但是打噴嚏擤鼻...
    斯普特尼克sptnk閱讀 82評(píng)論 0 0