vim의 굉장히 편리한데 별로 사용되지 않는 「탭 페이지」기능

9191 단어 vimrcVim

vim 탭 페이지



여러분 vim의 탭 페이지 기능을 사용하고 있습니까?

이 맨 위 바에 나와있는 브라우저 등에서 자주있는 "탭"입니다. ↓



이것은 vim 7.3부터 도입된 기능이지만 왠지 많이 사용되지 않습니다.
Google 검색 vim 탭 페이지

 

그러나 이것은 엄청 편리합니다!

지금까지 tmux에서 vim을 여러 개 시작하고 있어, 조금 다른 작업을 할 때는 다른 vim을 기동하고 있었습니다만, 탭 페이지를 이용하는 것에 의해 1개의 vim에서 작업할 수 있어 또한 양크도 물론 탭간에 공유되므로 개발 효율이 상당히 올랐습니다.

별로 사용되지 않는 원인은 아마, 디폴트 상태라면, 탭간의 이동이 꽤 귀찮기 때문이라고 생각합니다.

디폴트는 이런 느낌


오른쪽 탭으로 이동할 때마다 :tabnext마지막 탭으로 이동하려면 :tablast 등을 칠 수 없습니다.

또한 :tabnext3와 같은 명령으로 왼쪽에서 세 번째 탭으로 이동할 수 있습니다.
기본 탭 라인 (탭의 상태 표시 줄)은 번호도 쓰지 않으므로 쉽게 이동할 수 없습니다.

 

거기서 암흑미몽왕(다크빔 마스터) 일 Shougo씨의 .vimrc를 참고로
편안하게 탭 페이지 기능을 사용할 수 있도록 .vimrc를 만들었습니다.

참고 Shougo/shougo-s-github

.vimrc
" 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 " 常にタブラインを表示

" The prefix key.
nnoremap    [Tag]   <Nop>
nmap    t [Tag]
" Tab jump
for n in range(1, 9)
  execute 'nnoremap <silent> [Tag]'.n  ':<C-u>tabnext'.n.'<CR>'
endfor
" t1 で1番左のタブ、t2 で1番左から2番目のタブにジャンプ

map <silent> [Tag]c :tablast <bar> tabnew<CR>
" tc 新しいタブを一番右に作る
map <silent> [Tag]x :tabclose<CR>
" tx タブを閉じる
map <silent> [Tag]n :tabnext<CR>
" tn 次のタブ
map <silent> [Tag]p :tabprevious<CR>
" tp 前のタブ

이것을 .vimrc에 쓰면 아래와 같은 사진 상태가됩니다.


  • t1 , t2 ,,, t9 에서 왼쪽에서 n 번째 탭으로 점프
  • tc 에서 새 탭, tx 에서 탭 닫기

  • 에서 탭 페이지를 효율적으로 사용할 수 있습니다.

    t에 이미 명령을 할당한 경우에는 [Tag]를 별도의 키에 적용하면 문제없이 사용할 수 있다고 생각합니다.

    P.S.
    S와 RYS. JP , coincheck 등의 서비스를 운영, 개발하고 있습니다. 흥미가 있는 분은 꼭 와다 까지 연락을!

    좋은 웹페이지 즐겨찾기