vim에서 탭 사이를 빠르게 전환하려면 어떻게해야합니까?


126

그놈 터미널에서, I는 누를 수 Alt(+ 1, 2, 3특별한 탭으로 전환 등). 또한 Ctrl+ ( PgUp/ PgDn)를 사용 하여 탭을 순환 할 수 있습니다 (물론 덜 편리하지만 다시 매핑 할 수 있음).

그놈 터미널 탭 대신 vim 탭을 사용하려면을 입력 :tabn하고 :tabp매우 성가신 일입니다. 키보드 단축키에 매핑 할 수는 있지만 Alt+ 로 탭 4로 직접 점프하는 것보다 훨씬 편리하지 않습니다 4.

vim에서 탭 사이를 전환하는 더 빠른 방법이 있습니까?

답변:


209

다음 탭 : gt

이전 탭 : gT

번호 매기기 탭 : nnngt


1
나는 타이핑 할 수 있다는 것을 알고 nnn g t있지만 , 즉, 또는 빨리 입력 하고 싶습니다 . 그러나 gnome-terminal에 의해 이미 취해졌으며 바인딩 은 아무런 영향 을 미치지 않는 것 같습니다. Alt + nnnCtrl + nnnAlt + nCtrl + n
Matthew

6
기능 키를 매핑하는 것은 nnn g t어떻습니까? 예, :map <F2> 2gt. <F1>그놈에 의해 종종 도움말 기능에 매핑되는 문제가 있습니다. 또는 일반 모드에서 자주 사용하지 않는 키를 선택하고 쉼표를 말한 후 다음과 같이 매핑 할 수 :map , gt있습니다. 그런 다음 1,탭 1, 2,탭 2 등으로 이동합니다.
garyjohn

2
'<'와 '>'를 사용하는 것이 매우 편리하다는 것을 알았습니다.
Igor Stoppa

더 나은 답변을 보려면 아래로 스크롤하십시오.
Vivandiere

41

리더를 사용하지 않는 이유 (내 리더는에 매핑 됨 Space) :

" Go to tab by number
noremap <leader>1 1gt
noremap <leader>2 2gt
noremap <leader>3 3gt
noremap <leader>4 4gt
noremap <leader>5 5gt
noremap <leader>6 6gt
noremap <leader>7 7gt
noremap <leader>8 8gt
noremap <leader>9 9gt
noremap <leader>0 :tablast<cr>

당신은 현재와 마지막 활성 탭 사이를 전환 할 수 아래의 설정을 사용할 수 있습니다 (여기가 맵핑 Ctrl+ L, 즉 <c-l>) :

" Go to last active tab

au TabLeave * let g:lasttab = tabpagenr()
nnoremap <silent> <c-l> :exe "tabn ".g:lasttab<cr>
vnoremap <silent> <c-l> :exe "tabn ".g:lasttab<cr>

2
당신은 필요 au TabLeave * let g:lasttab = tabpagenr()를 위해 c-l작동하는 : stackoverflow.com/questions/2119754/...
치로 틸리新疆改造中心法轮功六四事件

1
내가 추가 거라고 <leader>h/l위해 gTgt
브렌든

25

이것은 탭을 더 빠르고 간단하게 전환하는 가장 쉬운 방법입니다.
vimrc에 다음 줄을 추가하고 여기에서 vim 탭에 대한 더 많은 트릭을 즐기 십시오 .

nnoremap <C-Left> :tabprevious<CR>
nnoremap <C-Right> :tabnext<CR>

이제 Ctrl 왼쪽 Ctrl 으로 이동하여 오른쪽으로 이동할 수 있습니다.

또는 그냥 사용하십시오 :
1gt탭 1
2gt로 이동, 탭 2
3gt로 이동, 탭 3으로 이동 등 ... 이제 아이디어가 있습니다.


이것이 가장 좋은 대답이라고 생각합니다. 가지고 매우 편리합니다. 방금 시스템을 독립적으로 만들기 위해 OS X에서 해당 시스템 키 바인딩을 비활성화했습니다.
Léo Léopold Hertz 준영

1
화살표 키를 사용하면 속도가 느려집니다. 나는 그들을 비활성화했습니다
묻고 배우기

네 ... 정답입니다!
Vivandiere

슬프게도 "Ctrl"은 vmplayer에서 문제를 일으켜서 "Backspace"와 "Enter"키로 변경했습니다.
Boris Däppen

Mac 사용자 : 기본 미션 컨트롤 공간 키보드 단축키를 비활성화해야 할 수도 있습니다 : stackoverflow.com/questions/15719135/…
azatar

15

Mac에서 MacVim (단말기 내 일반 vim)을 사용하지 않기 때문에 키 조합이 터미널로 전송되지 않는 데 어려움이있었습니다.

탭을 신속하게 전환하는 가장 호환 가능하고 가장 편안한 방법은 Vim Wikia 사이트에서 온 것 입니다.

.vimrc파일 에 배치하십시오 .

nnoremap H gT
nnoremap L gt

이제 Shift-h(자본 H) 및 Shift-l(자본 L)는 탭 사이를 빠르게 전환하고, 규칙은 다음 것 h그리고 l왼쪽으로 대응하고 바로 일반 쿼티 키보드 정력에 있습니다.


나는 직관적이고 vim과 같은이 솔루션을 좋아합니다. 화살표 키가 필요 없습니다.
Ivan Ivković

동의한다. 아주 좋은 해결책
j 슬프게

이것은 실제로 직관적 인 솔루션입니다. 감사합니다!
LeOn-Han Li


2

gvim 또는 이와 유사한 것을 사용하는 경우 (즉, 터미널 외부에있는 gnome-terminal것) 다음과 같이 설명 하는 동작을 모방 할 수 있습니다 .

" Map alt-x keys to jump to a tab
for i in range(1, 8)
  execute "nmap \<M-" . i . "> " . i . "gt"
endfor
nmap <M-9> :tablast<CR>

따라서 alt-1첫 번째 탭 등으로 alt-9이동 하지만 Chrome에서와 같이 마지막 탭으로 이동합니다.

이것을 랩핑 if has("gui_running")하거나 (Neovim에서는 작동하지 않는 것처럼 보이지만) 이것을 넣을 수 있습니다 .gvimrc.


2

.vimrc에 추가하여 탭 탐색 단축키를 활성화하십시오.

<ctrl-l> 가장 최근 탭 2 개 간을 전환합니다.

<ctrl-j/k> 마지막 / 다음 탭으로 이동하십시오.

<ctrl-t> 새 탭을 엽니 다.

" tab navigation: Alt or Ctrl+Shift may not work in terminal: " http://vim.wikia.com/wiki/Alternative_tab_navigation " Tab navigation like Firefox: only 'open new tab' works in terminal nnoremap <C-t> :tabnew<CR> inoremap <C-t> <Esc>:tabnew<CR> " move to the previous/next tabpage. nnoremap <C-j> gT nnoremap <C-k> gt " Go to last active tab au TabLeave * let g:lasttab = tabpagenr() nnoremap <silent> <c-l> :exe "tabn ".g:lasttab<cr> vnoremap <silent> <c-l> :exe "tabn ".g:lasttab<cr>


<Ctrl>-<Tab>을 마지막 토글 탭 기능에 매핑 할 수 있습니까? 나는 해봤 nnoremap <silent> <C-Tab> :exe "tabn ".g:lasttab<cr>vnoremap <silent> <C-Tab> :exe "tabn ".g:lasttab<cr>행운을하지 않고.
zzeroo
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.