Phím tắt để chuyển tab trong MacVim


16

Có phím tắt nào để chuyển Tab từ cái này sang cái khác trong MacVim không?

Tab MacVim

Bất kỳ mẹo nào để tự ràng buộc các phím tắt trong .vimrc như ⌘ + 1 cho Tab 1 và ⌘ + 2 cho Tab 2. Ví dụ: như chuyển đổi tab trình duyệt.

Câu trả lời:


17

Vì MacVim là một chương trình thực tế trên Mac OS, bạn có thể ánh xạ tab chuyển đổi giống như cách bạn ánh xạ các lệnh trong bất kỳ chương trình nào (mà cá nhân tôi mới tìm hiểu gần đây).

Mở Tùy chọn hệ thống, chọn "Bàn phím", sau đó "Phím tắt ứng dụng" (trong menu bên trái). Trong menu bên phải, nhấp vào dấu cộng (+) để thêm lệnh mới. Chọn MacVim cho ứng dụng và cho tiêu đề menu, nhập "Chọn Tab tiếp theo" và chọn phím tắt (Tôi đã chọn Cmd + mũi tên phải). Sau đó thực hiện tương tự cho lệnh "Chọn Tab trước".

"Chọn tab tiếp theo" và "Chọn tab trước" được tìm thấy trong MacVim trong menu "Cửa sổ". Bất kỳ tùy chọn nào bạn thấy trong bất kỳ menu nào cho ứng dụng đều có thể được ánh xạ lại bằng phương pháp này.


1
Vì câu hỏi là về Macvim, giải pháp này đẹp hơn. Điều duy nhất là khi bạn muốn chuyển .vimrc của mình sang các máy khác thì điều này có thể không hoạt động ở đó nhưng tôi vẫn thích điều này. Cảm ơn.
sabertooth

trên windows / linux i map Alt + 1 ... 10 theo thứ tự tab. Sẽ rất tuyệt nếu có lệnh + 1 chuyển đến tab đầu tiên, vì nó dành cho mọi ứng dụng khác trên máy Mac. Dù sao để làm điều đó? Menu cho đó là "Bộ đệm >> <tên tệp> (1)"
gcb

20

Tất nhiên bạn có thể thay đổi các phím tắt với tùy chọn hệ thống OSX cho bàn phím của mình như được hiển thị ở đây: Cách ánh xạ lại bất kỳ Phím tắt nào trong Mac OS X

Một số có thể thích làm điều đó thông qua .vimrc:

if has("gui_macvim")
  " Press Ctrl-Tab to switch between open tabs (like browser tabs) to 
  " the right side. Ctrl-Shift-Tab goes the other way.
  noremap <C-Tab> :tabnext<CR>
  noremap <C-S-Tab> :tabprev<CR>

  " Switch to specific tab numbers with Command-number
  noremap <D-1> :tabn 1<CR>
  noremap <D-2> :tabn 2<CR>
  noremap <D-3> :tabn 3<CR>
  noremap <D-4> :tabn 4<CR>
  noremap <D-5> :tabn 5<CR>
  noremap <D-6> :tabn 6<CR>
  noremap <D-7> :tabn 7<CR>
  noremap <D-8> :tabn 8<CR>
  noremap <D-9> :tabn 9<CR>
  " Command-0 goes to the last tab
  noremap <D-0> :tablast<CR>
endif

1
Cảm ơn, tôi rất thích giải pháp này cho giải pháp đã chọn vì tôi sử dụng lệnh-phải | mũi tên trái để đi đến cuối / đầu dòng!
Brian Underwood

1
Làm thế nào một người có thể làm cho điều này làm việc trong chế độ chèn?
Oliver Joseph Ash

Cái này đẹp quá! Cảm ơn! 🙏
Nik

12

Bạn có thể chọn Tab tiếp theo với + }chọn Tab trước với +{

Phím shift được yêu cầu không chỉ nhấn a [thay vì }
phím tắt là + shift+ ]hoặc + shift+ [
Phím tắt này hoạt động trong nhiều ứng dụng, tức là trong Terminal


Đây không phải là những gì OP đang yêu cầu ... câu hỏi là chuyển đổi các tab trong MacVim, không phải thiết bị đầu cuối
JESii

2
Nhưng đây là một phím tắt MacVim. Các phím lệnh không dịch sang terminal vim.
spoulson

Tôi đang sử dụng MacVim và như đã đề cập trong giải pháp này, nó đã có các lệnh bàn phím để chuyển đổi các tab. Tôi chỉ đơn giản là thiếu phím <kbd> Shift </ kbd> khi thực hiện <kbd> </ kbd> + <kbd>} </ kbd>.
brettlyman

5

Tôi có phần sau trong ~ / .vimrc cho Linux. Bạn sẽ có thể thay đổi " <M-" chuỗi thành " <D-" để có được những gì bạn muốn:

" Meta+1-0 jumps to tab 1-10, Shift+Meta+1-0 jumps to tab 11-20:
let s:windowmapnr = 0
let s:wins='1234567890!@#$%^&*()'
while (s:windowmapnr < strlen(s:wins))
    exe 'noremap <silent> <M-' . s:wins[s:windowmapnr] . '> ' . (s:windowmapnr + 1) . 'gt'
    exe 'inoremap <silent> <M-' . s:wins[s:windowmapnr] . '> <C-O>' . (s:windowmapnr + 1) . 'gt'
    exe 'cnoremap <silent> <M-' . s:wins[s:windowmapnr] . '> <C-C>' . (s:windowmapnr + 1) . 'gt'
    exe 'vnoremap <silent> <M-' . s:wins[s:windowmapnr] . '> <C-C>' . (s:windowmapnr + 1) . 'gt'
    let s:windowmapnr += 1
endwhile
unlet s:windowmapnr s:wins

3

Ngoài việc ánh xạ của riêng bạn, có được tích hợp các phím tắt vim. Hãy thử một số theo sau gt. Ví dụ: 3gtđưa bạn đến tab thứ 3. Bạn cũng có thể làm chỉ gtđể đi đến tab tiếp theo hoặc gTđi đến tab trước.

(Kể từ vim 7. một cái gì đó, các tab đã được đưa vào ngay cả trong phiên bản không phải là chế độ văn bản.)


Hoàn hảo! Cách vim bản địa để làm điều này; cảm ơn.
JESii
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.