MacVimでタブを切り替えるためのショートカット


16

MacVimでタブを切り替えるためのショートカットはありますか?

MacVimタブ

.vimrcで自分でショートカットをバインドするためのヒント。たとえば、タブ1の場合は⌘+ 1、タブ2の場合は⌘+ 2。

回答:


17

MacVimはMac OS上の実際のプログラムであるため、任意のプログラムでコマンドをマッピングするのと同じ方法でタブ切り替えをマッピングできます(最近個人的に知りました)。

[システム環境設定]を開き、[キーボード]、[アプリケーションのショートカット](左側のメニュー)の順に選択します。右側のメニューで、プラス(+)をクリックして新しいコマンドを追加します。アプリケーションにMacVimを選択し、メニュータイトルに「次のタブを選択」と入力し、ショートカットを選択します(Cmd +右矢印を選択しました)。次に、「前のタブを選択」コマンドに対して同じことを行います。

「次のタブを選択」と「前のタブを選択」は、MacVimの「ウィンドウ」メニューにあります。アプリのメニューに表示されるオプションは、このメソッドを使用して再マップできます。


1
質問はMacvimについてだったので、この解決策はより優れています。唯一のことは、.vimrcを他のマシンに移植したい場合、そこでは動作しないかもしれませんが、私はまだこれを好むということです。ありがとう。
sabertooth

Windows / Linuxでは、Alt + 1 ... 10をタブオーダーにマッピングします。command + 1は、Mac上の他のすべてのアプリケーションの場合と同様に、最初のタブに移動すると便利です。とにかくそれをする?そのためのメニューは「バッファ>> <ファイル名>(1)」
gcb

20

もちろん、ここに示すように、キーボードのOSXシステム設定でショートカットを変更できます。MacOS 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+です。[
このショートカットは、多くのアプリ、つまりターミナルで機能します。


これはOPが求めているものではありません...質問はターミナルではなくMacVimでタブを切り替えることでした
-JESii

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。例:3gt3番目のタブに移動します。gt次のタブgTに移動するか、前のタブに移動することもできます。

(vim 7.somethingから、テキストモードの非gvimバージョンでもタブが焼き付けられています。)


パーフェクト!これを行うネイティブvimの方法。ありがとう。
JESii
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.