在MacVim中切换选项卡的快捷方式


16

在MacVim中,是否有任何快捷方式可将选项卡从一个切换到另一个?

MacVim标签

自己将快捷方式绑定到.vimrc中的任何技巧,如Tab 1的⌘+ 1和Tab 2的⌘+2。例如,切换浏览器选项卡。

Answers:


17

由于MacVim是Mac OS上的实际程序,因此您可以使用与映射任何程序中的命令相同的方式映射选项卡切换(我个人最近才了解到)。

打开系统偏好设置,选择“键盘”,然后选择“应用程序快捷方式”(在左侧菜单中)。在右侧菜单下,单击加号(+)以添加新命令。为该应用程序选择MacVim,并为菜单标题键入“选择下一个选项卡”,然后选择一个快捷方式(我选择了Cmd +向右箭头)。然后对命令“选择上一个选项卡”执行相同的操作。

在MacVim的“窗口”菜单下可以找到“选择下一个选项卡”和“选择上一个选项卡”。您可以使用此方法重新映射在应用程序的任何菜单中看到的任何选项。


1
由于问题是关于Macvim的,所以这种解决方案更好。唯一的事情是,当您要将.vimrc移植到其他计算机时,可能无法在其中运行,但我仍然更喜欢这样做。谢谢。
sabertooth 2013年

在Windows / Linux上,我将Alt + 1 ... 10映射到制表符顺序。最好让command + 1转到第一个选项卡,因为它适用于macs上的每个其他应用程序。无论如何要这样做?菜单是“缓冲区>> <文件名>(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
谢谢,我更喜欢此解决方案,而不是所选的解决方案,因为我使用command-right | left-arrow来结束/开始行!
Brian Underwood 2015年

1
如何使它在插入模式下工作?
奥利弗·约瑟夫·阿什

这是美丽的!谢谢!🙏–
Nik

12

您可以选择下一个标签+ }选择上一个标签+{

shift键,需要不只是打了一个[,而不是}
这样的快捷键是+ shift+ ]+ shift+ [
中的许多应用程序,即在终端这个快捷方式工作


这不是OP所要的...问题是要在MacVim中切换标签,而不是终端
JESii,2015年

2
但这是MacVim键盘快捷键。命令键不会转换为终端vim。
spoulson '16

我正在使用MacVim,如本解决方案中所述,它已经具有键盘命令来切换选项卡。在执行<kbd>⌘</ kbd> + <kbd>} </ kbd>时,我只是缺少了<kbd> Shift </ kbd>键。
brettlyman

5

我在Linux的〜/ .vimrc中具有以下内容。您应该可以将“ <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带您到第三个标签。您也可以只gt转到下一个标签,或者gT转到上一个。

(从vim 7.some开始,即使在文本模式的非gvim版本中,选项卡也已被烘焙。)


完善!vim的本机方式;谢谢。
JESii 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.