Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

タブページ数に応じて幅が変わる tabline プラグインを作成しました

$
0
0

Vim (その2) Advent Calendar 2016の 19日目の記事です。

vim-responsive-tabline

タブページ数に応じて幅が変わる tabline を実現する vim-responsive-tablineを作りました。

vim-responsive-tabline.gif

動機

自分はウィンドウの分割等はせず、1バッファを1タブページに割り当てる使い方をしているため、タブページが増えやすく tabline に表示しきれなくなることが度々あります。
そこで、chrome のようにタブが増えたらタブ1つあたりの幅を小さくしてくれると嬉しいなと思い vim-responsive-tabline を作成しました。

仕組み

1つのタブページあたりの幅を &columnsをタブページ数で割って算出するという単純な仕組みです。

表示するファイル名が tab_width (タブ1つあたりの幅)を超えていた場合は切り詰め、tab_width以下の場合はスペースで埋めることで、幅を固定しています。

let label_margin =2let filename_length = strwidth(filename)+ label_margin
  if filename_length >a:tab_width
    " Truncate filenamelet ellipsis ='...'letfilename=filename[0:(a:tab_width - strwidth(ellipsis)- label_margin -1)].ellipsis
  else    " Append spacerletfilename=filename . repeat(' ',a:tab_width - filename_length)endif

課題

  • オプションの追加
  • help の作成

参考

vim-responsive-tabline を作成するにあたって、以下のサイトを参考にさせていただきました。

感想

小さいプラグインではありますが、Vim を自分好みにちょっと近づけられたような気がして満足度は高めです。


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>