VimでTab機能を使う。

今更ながらVimのタブを導入してみた。

結論

vimrcに

nnoremap <S-h> :tabprevious<CR>
nnoremap <S-l>   :tabnext<CR>
nnoremap <C-t>     :tabnew<CR>
inoremap <C-t>     <Esc>:tabnew<CR>

を書く。 すると、Ctr-tでタブ作成、Shift-pShift-nで切り替えることが出来る。

CtrとTabでタブの切り替えしたくね?

無理。ターミナルからだと、Tab-Ctrの区別が出来ないっぽい。なので上のShift使って切り替えるやつで妥協。

How can I map Ctrl-TAB to something in Vim? - Stack Overflow

現在使ってるタブをもっと見やすくしたい。

うーんこれが限界かな。

" Anywhere SID.
function! s:SID_PREFIX()
  return matchstr(expand('<sfile>'), '<SNR>\d\+_\zeSID_PREFIX$')
endfunction

" Set tabline.
function! s:my_tabline()  "{{{
  let s = ''
  for i in range(1, tabpagenr('$'))
    let bufnrs = tabpagebuflist(i)
    let bufnr = bufnrs[tabpagewinnr(i) - 1]  " first window, first appears
    let no = i  " display 0-origin tabpagenr.
    let mod = getbufvar(bufnr, '&modified') ? '!' : ' ' 
    let title = fnamemodify(bufname(bufnr), ':t')
    let title = '[' . title . ']' 
    let s .= '%'.i.'T'
    let s .= '%#' . (i == tabpagenr() ? 'TabLineSel' : 'TabLine') . '#' 
    let s .= no . ':' . title
    let s .= mod 
    let s .= '%#TabLineFill# '
  endfor
  let s .= '%#TabLineFill#%T%=%#TabLine#'
  return s
endfunction "}}}
let &tabline = '%!'. s:SID_PREFIX() . 'my_tabline()'
set showtabline=2

参考

vimのすごい便利なのにあまり使われていない「タブページ」機能 - Qiita