2010-01-05 70 views
54

Tôi đang cố gắng chuyển từ tab sang tab khác (có thể không nằm cạnh tab trước đó) trong VIM. Có bất kỳ phím tắt cho rằng, giống như chúng ta có Ctrl - p/Ctrl - n cho chuyển sang tab liền kề?Chuyển sang một tab cụ thể trong VIM

Ngoài ra, tôi đã cố gắng viết một ánh xạ khóa sẽ cung cấp một biến làm đầu vào cho một hàm và thực hiện thao tác. Ví dụ: giả sử tôi nhấn Ctrl - và chức năng (được viết bởi người dùng) sẽ được gọi và đưa vào làm đầu vào 5 và con trỏ sẽ chuyển đến tab 5 (nếu có tab thứ 5 nào được mở).

Bạn có thể đề xuất cách thực hiện điều này không?

+0

Điều này nên được chia thành hai câu hỏi riêng biệt, vì vậy bạn có thể chấp nhận hai câu trả lời riêng biệt cho hai câu hỏi riêng biệt. –

+0

@James, để biết liệu đây có phải là hai câu hỏi hay không, bạn nên biết liệu có một chức năng tích hợp để chuyển sang tab thứ N hay không. ;-) –

+0

Cảm ơn tất cả các câu trả lời. Nhưng làm thế nào người ta có thể viết một hàm chấp nhận đầu vào biến. viết nmap tt : tabnew có vẻ dễ dàng nhưng ràng buộc như thế nào: tabnew x (trong đó x là một biến) để một chìa khóa có thể được thực hiện? – Sumit

Trả lời

77

sử dụng 5gt để chuyển sang tab 5

: tabN [ext] {count}

{count} gt

Đến trang tab {count}. Trang tab đầu tiên có trang số một.

bạn cũng có thể gắn nó vào một chìa khóa:

:map <C-5> 5gt 
:imap <C-5> <C-O>5gt 

(Mapping Ctrl-<number> có thể là khác nhau/không thể đối với một số thiết bị đầu cuối xem xét Alt-<number> sau đó.)

+4

Be ** RẤT ** cẩn thận không trộn lẫn ': tabnext' và' tabNext' – puk

+0

Sự khác nhau ... là gì? – dmonopoly

+3

': tabnext' = tab tiếp theo; ': tabNext' = tab trước –

17

Giải quyết chỉ câu hỏi đầu tiên của bạn, và trích dẫn từ help tabs trong vim:

{count}gt  Go to tab page {count}. The first tab page has number one. 
{count}gT  Go {count} tab pages back. Wraps around from the first one 
       to the last one. 

tức là, nhập 3gt chuyển đến tab thứ ba, 3gT chuyển 3 tab trở lại từ tab hiện tại.

+1

không chính xác. 3gt di chuyển đến tab thứ ba, không phải 3 tab về phía trước –

+0

urgh. Thật uể oải. –

+0

Để chuyển '3gt' sang tab thứ ba, hãy làm' nnoremap gt: bình thường! gt ' – rampion

2

Chỉ để chia sẻ ánh xạ khóa để chuyển trực tiếp vào tab cụ thể. Hãy đặt chúng vào _vimrc và làm cho nó hoạt động.

" Jump to particular tab directly 
"NORMAL mode bindings for gvim 
noremap <unique> <M-1> 1gt 
noremap <unique> <M-2> 2gt 
noremap <unique> <M-3> 3gt 
noremap <unique> <M-4> 4gt 
noremap <unique> <M-5> 5gt 
noremap <unique> <M-6> 6gt 
noremap <unique> <M-7> 7gt 
noremap <unique> <M-8> 8gt 
noremap <unique> <M-9> 9gt 
noremap <unique> <M-0> 10gt 

"INSERT mode bindings for gvim 
inoremap <unique> <M-1> <C-O>1gt 
inoremap <unique> <M-2> <C-O>2gt 
inoremap <unique> <M-3> <C-O>3gt 
inoremap <unique> <M-4> <C-O>4gt 
inoremap <unique> <M-5> <C-O>5gt 
inoremap <unique> <M-6> <C-O>6gt 
inoremap <unique> <M-7> <C-O>7gt 
inoremap <unique> <M-8> <C-O>8gt 
inoremap <unique> <M-9> <C-O>9gt 
inoremap <unique> <M-0> <C-O>10gt 
Các vấn đề liên quan