web-dev-qa-db-ja.com

VIMで特定のタブに切り替える

VIMでタブから別のタブ(前のタブに隣接していない可能性があります)に切り替えようとしました。私たちが持っているように、そのためのショートカットはありますか Ctrl-p/Ctrl-n 隣接するタブに切り替えるには?

また、関数への入力として変数を指定して操作を実行するキーマッピングを記述しようとしました。たとえば、私が押すとしましょう Ctrl-5 関数(ユーザーが作成したもの)が呼び出され、入力5として渡されます。カーソルはタブ5に移動します(5番目のタブが開いている場合)。

これを行う方法を提案していただけますか?

55
Sumit

使用する 5gtタブ5に切り替えます

:tabn [ext] {count}

{count} gt

タブページ{count}に移動します。最初のタブページはナンバーワンです。

キーにバインドすることもできます:

:map <C-5> 5gt
:imap <C-5> <C-O>5gt

(マッピングCtrl-<number>は、一部の端末では異なる/不可能である可能性があります。考慮してくださいAlt-<number>その後)

78

最初の質問だけに取り組み、vimでhelp tabsから引用します。

{count}gt       Go to tab page {count}.  The first tab page has number one.
{count}gT       Go {count} tab pages back.  Wraps around from the first one
                to the last one.

つまり、3gtと入力すると3番目のタブに移動し、3gTと入力すると現在のタブから3つ前のタブに移動します。

19
James Polley

特定のタブに直接ジャンプするためのキーマッピングを共有するためだけに。それらを_vimrcに入れて動作させてください。

" Jump to particular tab directly
"NORMAL mode bindings for gvim
noremap <unique> <M-1> 1gt
noremap <unique> <M-2> 2gt
noremap <unique> <M-3> 3gt
noremap <unique> <M-4> 4gt
noremap <unique> <M-5> 5gt
noremap <unique> <M-6> 6gt
noremap <unique> <M-7> 7gt
noremap <unique> <M-8> 8gt
noremap <unique> <M-9> 9gt
noremap <unique> <M-0> 10gt

"INSERT mode bindings for gvim
inoremap <unique> <M-1> <C-O>1gt
inoremap <unique> <M-2> <C-O>2gt
inoremap <unique> <M-3> <C-O>3gt
inoremap <unique> <M-4> <C-O>4gt
inoremap <unique> <M-5> <C-O>5gt
inoremap <unique> <M-6> <C-O>6gt
inoremap <unique> <M-7> <C-O>7gt
inoremap <unique> <M-8> <C-O>8gt
inoremap <unique> <M-9> <C-O>9gt
inoremap <unique> <M-0> <C-O>10gt
2
Alfred Chan