Λlisue's blog

つれづれなるままに更新されないブログ

Vim初心者でもオレオレUniteソースを一瞬で作ってウハウハを味わえるプラグインを作った(定型文参照・挿入用Uniteプラグイン)

f:id:lambdalisue:20140704000252p:plain

どうも、珍しく全然ご無沙汰しておりません有末です。 本日も作ったVimプラグインの紹介記事です。

例えばブログ記事を書く際に多用する特定のURLリンクやPyPIのClassifiersのように覚えられなくて参照したり入力したりするのが面倒なものって世の中にあふれていると思います。 こういう「定型文」はどこかにファイルを作って保存しておけばいいのですが、結構そのファイルをどこに保存したか忘れたり、わざわざ開いてヤンクするのが面倒なことも多いと思います。 昨日の記事(vim-gistaで訪れる世界で最も快適なGist環境 in Vim)で紹介したプラグインの開発過程でUnite.vimプラグインの作り方が大分わかったので、こういう「定型文」もUniteの素晴らしいインターフェイスを用いて参照・検索・ヤンク・挿入を行いたいものですが、 こんなくだらないもののために労力を割いてプラグインを開発する気にもなれません

そこで、特定のフォルダ内に存在するファイルの各行を『定型文』として提供するUniteプラグインunite-linephraseを作りました。 これを使えば「大量にある自分のメールアドレスの一覧」や「READMEを書くときに毎度参照するプラグイン等のURL」、「なかなか覚えられないVimマッピングチートシート」などが自分の好きなフォーマットで簡単に作成できます。なによりUniteプラグインを作れないVim初心者でも簡単にUniteのオレオレソースが作れます

インストール

いつもどおりneobundle.vimの方法のみを記載します、が、普通にVimのフォルダにコピペしても動きます。

" neobundle.vim
NeoBundle 'lambdalisue/unite-linephrase'

" neobundle.vim (Lazy)
NeoBundleLazy 'lambdalisue/unite-linephrase', {
    \ 'autoload': {
    \   'unite_sources': 'linephrase',
    \}}

簡単なプラグインなのでUnite.vim以外の依存関係はありません。

使い方

普通に:Unite linephraseを起動すると[[ Create a new linephrase file ]]という項目が見えるので<CR>(エンターキー)を押してください。 ファイル名を入力しろと言われるので適当な名前(ファイル名として使われるので使用可能な文字に制限があることをお忘れなく)を付けてやれば、新しい linephrase ファイルが作成されます(下図参照)。

作成手順

ここで開いたファイルの各行がそのままUniteのソースになるので、好きなフォーマットで各行に定型文を書いていくだけでオレオレUniteソースが完成します。ただし

  • 先頭行はそのファイルの説明文として扱われる
  • 空白行は無視される
  • #から始まる行はコメントとして扱われる
  • !から始まる行はその手前の行の説明分として扱われる

というルールがあります。したがって下記のようなファイルを作るとよく利用するWebサイトのURLを参照・挿入するためのUniteソースになります。

よく使うサイトのURLリスト(ここがファイルの説明として使われる)
#
# This is a linephrase file. All lines except the following will be included as unite candidates.
#
# - Empty lines
# - Comment lines (a line start from #)
# - Candidate description lines (a line start from !)
#
# Candidate description lines are used as a description of the previous candidate (optional).
#
https://github.com/ (これが実際にヤンクや挿入に使われる文字列)
!GitHub (上の説明、無くてもOK)
http://www.kawaz.org/
!Kawaz
http://lambdalisue.hatenablog.com/
!はてなブログ

このように作成したソースは:Unite linephraseにて選択できます。 また:Unite linephrase:fileA:fileBのようにオプションとして指定すると、ファイル選択をスキップしていきなり定型文選択を起動することもできます(この場合fileAfileBが指定されているので、表示される定型文は二つのファイルの内容を統合したものとなります。ファイルは何個でも指定可能)。 ファイル名などはちょっと違いますが実行イメージは下図を参照してください。

実際の使い方例

また、簡単にオレオレUniteソースが作れる利点を活用して、下図のようになかなか覚えられないVimキーバインドチートシートとしての利用方法も考えられます。

チートシート的な使い方例

定型文ソースの作成・編集・削除はすべてUniteソースから行えるようになっているので、普段使いが楽に出来ます。 アイディア次第で結構便利に使えると思います。よろしければ使ってみてください :-)

なお、詳細はいつもどおり:help unite-linephraseVimのヘルプファイルを参照してください。