9

Vimは非常に生産性の高いエディターであり、毎日使用することを楽しんでいますが、タブ間を移動するのに必要以上に時間がかかることがわかりました。

別のタブに切り替えたいときは、何度も繰り返しgtたりgT、何度も繰り返したりします。Vimは、必要なタブに到達するためのより良い方法を提供します- n+ gt、ここで、nはタブ番号です。ただし、これを使用するには、最初にタブ番号を数える必要があります。数十個のタブを開くと、すぐに退屈になります。

タブを列挙するといいと思います。ファイル名の前の各タブにある単一の番号。次のようになります。

1 Readme | 2 main.c | 3 main.h | 4 process.h

configを編集するか、プラグインを使用して、これを行うようにvimを構成できることを願っています。

それを達成する方法はありますか?

4

2 に答える 2

6

tablinevimのコンソールモードでタブのラベルを設定するためのオプションを使用できます。非常に基本的な最小限の例も示しているヘルプを参照してください。:h setting-tablineこれは、必要に応じて微調整できます。たとえば、必要なものについては、次のようなものを使用します。

fu! MyTabLabel(n)
let buflist = tabpagebuflist(a:n)
let winnr = tabpagewinnr(a:n)
let string = fnamemodify(bufname(buflist[winnr - 1]), ':t')
return empty(string) ? '[unnamed]' : string
endfu

fu! MyTabLine()
let s = ''
for i in range(tabpagenr('$'))
" select the highlighting
    if i + 1 == tabpagenr()
    let s .= '%#TabLineSel#'
    else
    let s .= '%#TabLine#'
    endif

    " set the tab page number (for mouse clicks)
    "let s .= '%' . (i + 1) . 'T'
    " display tabnumber (for use with <count>gt, etc)
    let s .= ' '. (i+1) . ' ' 

    " the label is made by MyTabLabel()
    let s .= ' %{MyTabLabel(' . (i + 1) . ')} '

    if i+1 < tabpagenr('$')
        let s .= ' |'
    endif
endfor
return s
endfu
set tabline=%!MyTabLine()
于 2012-07-06T18:22:19.687 に答える
2

使用している場合gvim

set guitablabel=(%N)\ %t\ %M

入力:help tabline:help guitablabelて詳細をご覧ください。

function MyTabLine()ドキュメントにがあります。

于 2012-07-06T16:50:22.750 に答える