Vimの:tabsからfzfで検索してタブを開く
まえがき
ザクッと作ってみたので共有します。
vim8でも、NeoVimでも大丈夫です。
fzfはすでにインストールしてある前提です。
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
Plug 'junegunn/fzf.vim'
.vimrc または init.vimに以下を記述
以下を.vimrcまたはinit.vimに書きます
" [tab open] ----------------------------------
" 数あるタブから開く
" leader to で開始するための設定
nnoremap <leader>to :FZFTabOpen<CR>
command! FZFTabOpen call s:FZFTabOpenFunc()
function! s:FZFTabOpenFunc()
call fzf#run({
\ 'source': s:GetTabList(),
\ 'sink': function('s:TabListSink'),
\ 'options': '-m -x +s',
\ 'down': '40%'})
endfunction
function! s:GetTabList()
let s:tabList = execute('tabs')
let s:textList = []
for tabText in split(s:tabList, '\n')
let s:tabPageText = matchstr(tabText, '^Tab page')
if !empty(s:tabPageText)
let s:pageNum = matchstr(tabText, '[0-9]*$')
else
let s:textList = add(s:textList, printf('%d %s',
\ s:pageNum,
\ tabText,
\ ))
endif
endfor
return s:textList
endfunction
function! s:TabListSink(line)
let parts = split(a:line, '\s')
execute 'normal ' . parts[0] . 'gt'
endfunction
実行イメージ
あとがき
:tabs
コマンドと同じように現在開いているものには>
が付いたりもします。(基本的に:tabs
のファイル名の行をそのまま出力します)
一つのタブの中で複数のbufferを開いている場合もすべて列挙し、左の数字がどのタブ番号かを教えてくれます。
最近OniVimを使っていて、一つのVimを開きっぱなしにしていることが多くなったので開きっぱなしのタブも増えてきた…ということで組んでみました。
OniVimについてはまた今度まとめます。
Author And Source
この問題について(Vimの:tabsからfzfで検索してタブを開く), 我々は、より多くの情報をここで見つけました https://qiita.com/kamykn/items/16f6129c4732a053ace1著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .