Ярлик для переключення вкладок у MacVim


16

Чи є ярлики для переключення вкладок з однієї на іншу в MacVim?

Вкладки MacVim

Будь-які поради зв'язати ярлики в .vimrc, як ⌘ + 1 для Tab 1 і 1 + 2 для Tab 2. Наприклад, як переключення вкладок браузера.

Відповіді:


17

Оскільки MacVim - це фактична програма в Mac OS, ви можете перемикати вкладки на карті так само, як ви відображаєте команди в будь-якій програмі (про яку я нещодавно особисто дізнався).

Відкрийте Налаштування системи, виберіть "Клавіатура", потім "Ярлики програм" (у меню ліворуч). У меню праворуч натисніть на плюс (+), щоб додати нову команду. Виберіть MacVim для програми, а для заголовка меню введіть "Select Next Tab" та виберіть ярлик (я вибрав Cmd + стрілка праворуч). Потім зробіть те ж саме для команди "Вибрати попередню вкладку".

"Вибрати наступну вкладку" та "Вибрати попередню вкладку" можна знайти в MacVim у меню "Вікно". За допомогою цього методу можна змінити будь-яку опцію, яку ви бачите в будь-якому меню програми.


1
Оскільки питання стосувалося Macvim, це рішення приємніше. Єдине, що коли ви хочете перенести свій .vimrc на інші машини, це може не працювати там, але я все одно віддаю перевагу цьому. Спасибі.
sabertooth

на windows / linux я карта Alt + 1 ... 10 до порядку вкладки. Було б добре мати команду + 1 перейти до першої вкладки, як це стосується кожного іншого додатка на Mac. У будь-якому випадку це робити? Меню для цього - "Буфер >> <ім'я файла> (1)"
gcb

20

Ви можете ярлики змінити курс до системних налаштувань грошової OSXs для клавіатури , як показано тут: Як перепризначити Будь клавіш в Mac OS X

Деякі можуть вважати за краще це зробити через .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
Дякую, я віддаю перевагу цьому рішенню обраному, тому що я використовую команду-праву | стрілку вліво для переходу до кінця / початку рядків!
Брайан Андервуд

1
Як можна змусити це працювати в режимі вставки?
Олівер Джозеф Еш

Це поза прекрасним! Спасибі! 🙏
Нік

12

Ви можете вибрати наступну вкладку з + }та вибрати попередню вкладку з +{

Клавіша shift потрібна, щоб не просто натискати на [а, а не. }
Отже, ярлик є + shift+ ]або + shift+ [
Цей ярлик працює у багатьох додатках, тобто у Терміналі


Це не те, що просить ОП ... питання полягало в переключенні вкладок у MacVim, а не термінал
JESii

2
Але це комбінація клавіш MacVim. Командні клавіші не перекладаються на термінал vim.
подружжя

Я використовую MacVim, і як уже згадувалося в цьому рішенні, він вже має команди клавіатури для переключення вкладок. Мені просто не вистачало клавіші <kbd> Shift </kbd> під час виконання <kbd> ⌘ </kbd> + <kbd>} </kbd>.
brettlyman

5

У моєму ~ / .vimrc для Linux є наступне. Ви повинні мати можливість змінити <M-послідовність " <D-" на " ", щоб отримати те, що ви хочете:

" 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

Окрім того, щоб робити власні відображення, є вбудовані ярлики vim. Спробуйте номер, за яким слідує gt. Наприклад: 3gtпереведе вас до 3-ї вкладки. Ви також можете просто gtперейти до наступної вкладки або gTперейти до попередньої.

(Оскільки vim 7.щось, вкладки випікаються навіть у текстовому режимі, не у гвімі.)


Ідеально! Рідний vim спосіб зробити це; Спасибі.
JESii
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.