2009-06-03 37 views
8

Làm cách nào để chuyển Vim sang một tab nhất định khi tôi nhấn Alt + #? Ví dụ: để chuyển đến tab thứ ba, tôi sẽ nhấn Alt + 3 (giống như hành vi trong Firefox).Chuyển sang tab cụ thể trong Vim như trong Firefox?

Edit: cũng, làm thế nào tôi có thể làm cho Control + tab == gt, Control + shift + tab == gt

Trả lời

8
:nmap <M-1> :tabnext 1<CR> 
:nmap <M-2> :tabnext 2<CR> 
etc. 

Xem :h :tabnext. Lưu ý rằng theo mặc định, bạn cũng có thể thực hiện Ngt ở chế độ bình thường trong đó N là số tab bạn muốn (bắt đầu bằng 1).

+0

Hm, điều này không thực sự hiệu quả đối với tôi ... Tôi không chắc chắn lý do. Mũi Ngt là tốt đẹp mặc dù. – victor

+0

, v.v. xung đột với các ràng buộc khóa của trình quản lý cửa sổ trên hệ thống của tôi, nhưng dường như nó hoạt động OK nếu không. chưa được lập bản đồ và tôi đã thử điều đó và nó đã hoạt động. Bạn đang gặp vấn đề gì? –

+0

Tôi không chắc ... nó không kết thúc làm bất cứ điều gì. Tôi cũng không nghĩ rằng tôi có bất cứ điều gì ràng buộc với các phím nếu không thì các phím tắt Firefox sẽ không hoạt động? Tôi đang ở trên Ubuntu. – victor

5

này làm việc cho tôi (sao chép và dán từ rc của tôi):

" Tab Control (others) 
map <A-1> 1gt 
map <A-2> 2gt 
map <A-3> 3gt 
map <A-4> 4gt 
map <A-5> 5gt 
map <A-6> 6gt 
map <A-7> 7gt 
map <A-8> 8gt 
map <A-9> 9gt 

Cũng thêm sự tốt lành:

map <C-Right> <ESC>:tabnext<CR> 
map <C-Left> <ESC>:tabprev<CR> 
map <C-t> <ESC>:tabnew<CR> 

Bạn có thể muốn thay đổi nó để nmap như ví dụ trên để hạn chế sử dụng một chút tốt hơn tôi đã được một chút lười biếng trong đó tôn trọng.

nhỡ chỉnh sửa tab tiếp theo với CTL-t sẽ là:

map <C-t> :tabnext<CR> 

Tôi không nghĩ rằng các bản đồ tabprevious là có thể trong vim do cách nó xử lý ký tự chữ hoa xem:

http://www.nabble.com/Maping-Ctrl-Shift-s-problems-td22918941.html

Để tiết kiệm thời gian tôi bỏ qua khi tôi muốn điều này

+0

Nó không hoạt động cho tôi. (Tôi sai upvoted nó và Bây giờ tôi không thể hủy bỏ nó) Tôi sử dụng này để thay thế - đồ 1gt đồ 2gt đồ 3GT đồ 4GT đồ 5GT – mac

1

Việc này hoạt động trong urxvt tỏ ra khó khăn. Cuối cùng tôi đã quyết định sử dụng các ràng buộc folowing:

:nnoremap <Esc>1 gt1 
:nnoremap <Esc>2 gt2 
:nnoremap <Esc>3 gt3 
:nnoremap <Esc>4 gt4 
:nnoremap <Esc>5 gt5 
:nnoremap <Esc>6 gt6 
:nnoremap <Esc>7 gt7 
:nnoremap <Esc>8 gt8 
:nnoremap <Esc>9 gt9 
:nnoremap <Esc>0 gt0 

Vấn đề là các kết hợp số Alt bị ràng buộc để thoát khỏi các số tiền tố theo mặc định trong rxvt. Ban đầu tôi được quản lý bằng cách sau đây trong ~/.vimrc tập tin của tôi:

:nnoremap <M-1> gt1 
:nnoremap <M-2> gt2 
... 

này đã được thực hiện để làm việc bằng cách sử dụng sau đây để '~/Xdefaults':

URxvt*meta8: true 

lực lượng rxvt này sử dụng 8 bit ký tự khi Alt được nhấn, đó là những gì Vim sử dụng để phát hiện trạng thái Alt. Đặt cài đặt này trong tệp .Xdefaults của bạn cho phép đặt bit thứ 8. Tuy nhiên, điều này gây ra sự cố trong các chương trình khác, chẳng hạn như irssi chạy trên screen, do đó giải pháp được đề xuất của tôi.

0

Trên máy Mac, bạn có thể muốn sử dụng số cmd + để chuyển đổi tab. Sau đây hoạt động tốt.

map <D-1> 1gt 
map <D-2> 2gt 
map <D-3> 3gt 
etc... 
Các vấn đề liên quan