6

vimでタブを閉じた後、左側のタブが自動的に表示されるようにするにはどうすればよいですか?

タブを閉じるときのデフォルトでは、右側のタブが表示されているようです。これは、現在のタブの右側で新しいタブが開くため、煩わしいものです。したがって、新しいタブを開いて閉じると、別のタブが表示されます。

4

5 に答える 5

3

「tabcloseleft」オプションを追加するパッチが提案されています。これは、Vim に統合される予定の todo リストにあります (将来、Bram が作業する時間ができたら)。

于 2012-12-29T11:33:41.457 に答える
2

1つのアイデアがあります:TabCloseイベントはありませんTabEnterが、あなたが望むものを達成するために使用できるイベントがあります:イベントの1つでタブの数が以前に記録された数よりも少ない場合、明らかにタブが閉じられたためにトリガーされました:

let s:prevtabnum=tabpagenr('$')
augroup TabClosed
    autocmd! TabEnter * :if tabpagenr('$')<s:prevtabnum && tabpagenr()>1
                \       |   tabprevious
                \       |endif
                \       |let s:prevtabnum=tabpagenr('$')
augroup END
于 2012-12-29T18:17:38.440 に答える
0

疑わしい; 私が見ることができる方法はありません。ラッチできる自動コマンドイベントさえありません (たとえばTabClose、必要なものですが、存在しません)。

最も近いのは、おそらくタブを閉じるだけでなく、通常モードを実行する独自のコマンドまたはマッピングを持つことですgT。(関数に凝って、ウィンドウの状態を検出し、それを望んでいるかどうかを検出できるかもしれませgTん。それには、もう少し考えて調査する必要があります。)

もちろん、タブに対する別のソリューションを使用して調査することもできます。ここにいくつかあります:

  • 分割ウィンドウを使用する
  • 代替ファイルを使用する (を参照CTRL-6)
  • タグ スタックを使用してファイル間を移動する (CTRL-]移動する、CTRL-T戻る)
于 2012-12-29T07:13:24.810 に答える
0

これは便利に見えます:

http://vim.wikia.com/wiki/Have_focus_on_left_tab_after_tab閉じる

これを行うために少し変更するつもりだと思います:

function! CloseSomething()
    if winnr("$") == 1 && tabpagenr("$") > 1 && tabpagenr() > 1 && tabpagenr() < tabpagenr("$")
        q | tabprev
    else
        q
    endif
endfunction
cnoremap q<CR> :call CloseSomething()<CR>

だから今:q、私がやりたいことをします...

于 2012-12-29T20:37:43.747 に答える