物置き

角括弧の中の文字列に応じてなんかするスクリプト

はてなhttp記法みたいな、[http://www.yahoo.co.jp:title=Yahoo Japan]みたいな記述の上にカーソルがある状態から
そのURLをブラウザで開く、みたいなことができるスクリプトを書きました。
あまりに自分用に特化していて、他の人にとっては役には立たなそうだけど、せっかく作ったので晒してみるテスト。



プレフィックス(http://みたいな文字列)とそれに対応するアクションを設定できます。


使い道としては、hatena.vimを使ってページを編集してるときに
http記法のリンク先をブラウザで開いてみる、とか
ChangeLogメモの日付リンクから当該エントリにジャンプする、とか
他のドキュメントファイルへのリンクを直接開く、という感じで活用できます。

使い方


1. bracketlink.vimを~/(.vim|vimfiles)/pluginにコピー


2. .vimrcに下記の設定を追加

let g:bracketlink_action = [
	\ ['https\=://',expand('!start $PROGRAMFILES/Mozilla Firefox/firefox.exe ').'"%p%d"', ':title=.*'],
	\ ["mindmap:",expand('!start $PROGRAMFILES/FreeMind/Freemind.exe ').'"%de"'],
	\ ["open:",'!start cmd /c "%de"'],
	\]
noremap <silent> <cr> :BracketLink<cr><cr>


上の設定は

  • [http://...]というテキストの上にカーソルがある状態でEnterキーを押すとFirefoxでURLを開きます。
  • [mindmap:...]という形式のテキストの上でEnterキーを押すと、FreeMindマインドマップファイルを開きます。
  • [open:...]という形式のテキストの上でEnterキーを押すと、拡張子に関連づけられたプログラムでファイルを開きます。
  • いずれにもマッチしなかったときはデフォルトの動作

という設定です。



ChangeLogメモ上からhttpリンクとか、別ドキュメントを直接開けるようになってメモの使い勝手があがり
幸せな気分に浸ることに成功!めでたしめでたし。


bracketlink.vim

(追記)
id:ka-nachtさんにutl.vimというスクリプトの存在を教えていただきました。
utl.vimの方がいろいろ高機能なのでそちらを使うのが吉かもしれません。
ヘルプを見たところ、utl.vim

  • メアドからメーラーを起動できる
  • ディレクトリも開ける
  • 脚注へのジャンプができる
  • VimScriptを実行できる -> という記述からecho出力できる
  • ほかいろいろ

とデフォルトでいろいろサポートしています。

自前スクリプトの利点を強いて挙げると、はてなhttp記法での[http://...:title=...]のように
:title=..を含む場合でもきちんと処理できる、ということくらい...
utl.vimではtitle=...を含む場合に:title以降もURLとして扱われます。