# Vimにポップアップウィンドウが入りました

こんにちわ。 ゴリラ.vim (opens new window)を運営しているゴリラ (opens new window)です。

Vim 8.1.1391でポップアップウィンドウという機能が入りました。 これは名前の通り、ポップアップウィンドウを出すという機能です。

現在も実装が進められていてまだ完成ではないのですが、良い感じになってきたので紹介していこうと思います。

# どんな感じか?

こんな感じでポップアップウィンドウを出せます。

popup.gif

こちらはゴリラ製翻訳プラグインです。

翻訳結果をポップアップウィンドウに表示し、カーソルを動かしたら自動で閉じる様になっています。 わざわざバッファを作成して表示しなくて済むのはめちゃくちゃ便利です。

# ポップアップウィンドウの作り方

とっても簡単です。 これだけで作れます。

let winid = popup_create("hello gorilla", {})
1

第一引数は文字列、文字列の配列を渡します。 第二引数はポップアップウィンドウのオプションになります。

ポップアップウィンドウを閉じるにはpopup_clear()popup_close(winid)で閉じれます。

# オプション

詳しくはヘルプを引いて頂いたほうがわかりやすいので、ここでは軽く紹介します。

オプション 設定値 説明
line 1, "corsor+1" ポップアップの位置(横),"corsor+1"だと現在のカーソルから1セル下になります
col 1,"cursor+1" ポップアップの位置(縦)、"cursor+1"だと現在のカーソルから1セル横になります
border [1,1,1,1] ポップアップをボーダーで囲う、数値はボーダーの太さになります
moved "any","word" カーソルを動かしたときに自動で閉じるときに使用します
filter function('filter_func') ポップアップウィンドウが表示されている間にキーを取得するためのコールバック、特定キーが押されたら閉じるといった処理をしたいときに指定します

# 最後に

ポップアップウィンドウは現在も絶賛実装中でまだまだ良くなっていきます。 今後が楽しみですね。

ちなみにvim-quickrun (opens new window)もポップアップウィンドウ対応していたので興味ある方はアップデートして試してみてください。