Vim : 탭에서 fzf로 검색하여 탭 열기
머리
자쿠로 만들어 보았으므로 공유합니다.
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 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에 대해서는 또 이번에 정리합니다.
Reference
이 문제에 관하여(Vim : 탭에서 fzf로 검색하여 탭 열기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kamykn/items/16f6129c4732a053ace1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)