_J Blog

学んだ事のまとめやメモなどが中心です

vimのウィンドウサイズを簡単に変更できる vimscript 書いてみた

動機など

最近もっぱら Unite を使ってvim生活をしています。
共通のInterfaceで機能にアクセスできるって素晴らしいですね。

ところで、私はvimを画面を分割して使っています。
(大抵の方はそうですよね、すみません)

vimのwindowのサイズを変更するときの方法色々あるかと思いますが、
一つとして下記な様なやり方があるかと思います。
※詳しくはresizeのhelp*1を見てください

内容 関数の場合 キー操作の場合
高さを増やす :resize +1 >
高さを減らす :resize -1
幅を増やす :vertical resize +1 +
幅を減らす :vertical resize -1 -
高さを最大化 :resize _(アンダースコア)
幅を最大化 :vertical resize |(shift+\の記号)
均等のサイズにする なし?*2 =

高さ、幅の最大化はよく使ってたのですが、
ちょっとした、ちょっとサイズを変更したいときに少々不便を感じておりました。

「もっと手軽に変更したいな」と思い、
最初は など、高さ、幅の増減にそれぞれ、キーマッピングを割り当てていたのですが、

  • キーマッピングをたくさん使ってしまう事
  • あまり直感的でなかった事
  • uniteプラグインにも無かった気がする
  • vimscript書きたかっただけ

などの理由からvimscriptでプラグインを書いてみました。

ソースは github に置いてあります。英語で書いてみたけど・・・色々ごめんなさい
jimsei/winresizer · GitHub


利用方法

1.インストール
NeoBundleVundleでモダンにプラグインを管理されている方は
.vimrcに下記の設定をしてインストールするだけです。
(とっても便利ですね。ありがとうございます!)

◆NeoBundleの場合
.vimrcに下記を追記

NeoBundle 'git://github.com/jimsei/winresizer.git'

Installする

:NeoBundleInstall

◆Vundleの場合
上記のNeoBundleの場合を :%s/NeoBundle/Bundle/g と読み替えてください

◆それ以外の場合
よしなにお願いします。(~/.vim/plugn と ~/.vim/autoload に..ry )


2.プラグインの起動
vimを開き、もしくは
下記コマンドを実行してください。

:WinResizerStartResize

※キーマッピングは設定で変える事ができます
すると、ウィンドウリサイズモードに入ります。


3.ウィンドウのサイズを変更する
できるだけ直感的に、h,j,k,l の操作で
ウィンドウの高さ、幅の増減をできるようにしています。
リサイズモードでのデフォルトのキーマッピングは
下記のようになっています。

動作 キー
ウィンドウサイズの変更 h,j,k,l
変更を確定して終了 Enter
変更をキャンセルして元に戻す q

適当に触ってみてください。


このあと

まだ、できていませんが、unite のプラグイン化してみたいです。
何度も言いますが、uniteはとっても便利なので。
あと、ドキュメントとヘルプ書きます。すみません・・・

あと、ソース見て頂いたかたはお分かりになるかと思いますが、
かなりvimscript初心者です。
是非、美しい書き方をご指導して頂けるとありがたいです。


もろもろ、宜しくお願いします。

*1:vim内で :h resize

*2:もし、あったら教えてください!