FuzzyFinder 找分頁
如果用了之前寫的 Vim 分頁列(tabline)設定,script 空間就會出現變數 s:tabLineTabs,內含所有分頁編號、檔名等資料。
於是可以用 FuzzyFinder 尋找分頁,例如 map
接著按 <CR> 便會跳到該分頁,按 <LocalLeader><CR> 則是關閉該分頁。(當然 g:fuf_keyOpen 系列變數要先設好)
原始碼展開如下(放在 .vimrc)
let g:fuf_tabListener = {} function! g:fuf_tabListener.onComplete(item, method) let l:tabnr = matchstr(a:item, '\d\+') if a:method == 4 silent exec 'normal ' . l:tabnr . 'gt' else silent exec 'tabclose ' . l:tabnr endif endf function g:fuf_tabListener.onAbort() endf function! g:fuf_tabFinder() if exists("s:tabLineTabs") let l:tabList = [] for tab in s:tabLineTabs let label = tab.n . '. ' . (strlen(tab.split) > 0 ? ('(' . tab.split . ')') : '') . tab.flag . tab.filename if tab.n == tabpagenr() let label = '*' . label endif call add(l:tabList, label) endfor call fuf#callbackitem#launch('', 1, 'tabs>', g:fuf_tabListener, l:tabList, 0) endif endf nnoremap <LocalLeader>fg :call g:fuf_tabFinder()<CR>
若沒有用之前寫的 tabline 設定,也可嘗試取該 tabline 原始碼產生 s:tabLineTabs 的部分來用;或從 :tabs
抓分頁資料,再仿照 用 FuzzyFinder 尋找 register 自己建立分頁資料 list。
有 0 個意見
☂