Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

Vimの:tabsからfzfで検索してタブを開く

$
0
0

まえがき

ザクッと作ってみたので共有します。
vim8でも、NeoVimでも大丈夫です。
fzfはすでにインストールしてある前提です。

.vimrc
Plug 'junegunn/fzf',{'dir':'~/.fzf','do':'./install --all'}
Plug 'junegunn/fzf.vim'

.vimrc または init.vimに以下を記述

以下を.vimrcまたはinit.vimに書きます

.vimrc
" [tab open] ----------------------------------" 数あるタブから開く" leader to で開始するための設定
nnoremap <leader>to:FZFTabOpen<CR>
command! FZFTabOpen calls:FZFTabOpenFunc()function!s:FZFTabOpenFunc()call fzf#run({            \'source':s:GetTabList(),            \'sink':function('s:TabListSink'),            \'options':'-m -x +s',            \'down':'40%'})endfunctionfunction!s:GetTabList()lets:tabList= execute('tabs')lets:textList=[]for tabText  in split(s:tabList,'\n')lets:tabPageText= matchstr(tabText,'^Tab page')if!empty(s:tabPageText)lets:pageNum= matchstr(tabText,'[0-9]*$')elselets:textList= add(s:textList, printf('%d %s',                \s:pageNum,                \ tabText,                \))endifendforreturns:textListendfunctionfunction!s:TabListSink(line)let parts = split(a:line,'\s')
    execute 'normal '. parts[0].'gt'endfunction

実行イメージ

スクリーンショット 2018-04-03 21.03.53 1.png

あとがき

:tabsコマンドと同じように現在開いているものには>が付いたりもします。(基本的に:tabsのファイル名の行をそのまま出力します)
一つのタブの中で複数のbufferを開いている場合もすべて列挙し、左の数字がどのタブ番号かを教えてくれます。

最近OniVimを使っていて、一つのVimを開きっぱなしにしていることが多くなったので開きっぱなしのタブも増えてきた…ということで組んでみました。
OniVimについてはまた今度まとめます。


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>