vim-unite-toho つくった

この記事は Vim Advent Calendar 2012 : ATND の 156 日目の参加記事です.

寝るまでがこどもの日(ry

本日,5 月 5 日は「こどもの日」,ということで Vim 弄りを少し離れて 東方 Project の作品をプレイしましょう!

まだプレイしたことがなければサイトのほうに体験版がありますのでお試しあれ.

というわけで Vim の Unite でプレイしたい東方作品を選べる Unite Source を作りました. アクションで設定に使う custom.exe と,非公式ながら一部のユーザーにはお馴染みの vpatch.exe を起動できます(設定すれば

インストール

NeoBundle 'Jagua/vim-unite-toho'

(vimproc もインストールしてればそれを利用するようにしてます)

設定

.vimrc に以下のように設定します.

" Linux 用.$LANG="ja_JP.UTF-8" とかしちゃう.
let g:unite_toho_lang_hack = 1
" <Leader>th で東方ランチャー
nnoremap <silent> <Leader>th :<C-u>Unite toho<CR>

" vim-unite-toho:
let g:unite_toho_config = [{
\   'title'          : 'th06  : 東方紅魔郷',
\   'dirname'        : expand('~/上海アリス幻樂団/東方紅魔郷'),
\   'th_command'     : '東方紅魔郷.exe',
\   'vpatch_command' : 'vpatch.exe ../vpatch.ini',
\ }, {
\   'title'          : 'th07  : 東方妖々夢',
\   'dirname'        :  expand('~/上海アリス幻樂団/東方妖々夢'),
\   'th_command'     : 'th07.exe',
\   'vpatch_command' : 'vpatch.exe ../vpatch.ini',
\ }, {
\   'title'          : 'th08  : 東方永夜抄',
\   'dirname'        : expand('~/上海アリス幻樂団/東方永夜抄'),
\   'th_command'     : 'th08.exe',
\   'vpatch_command' : 'vpatch.exe ../vpatch.ini',
\ }, {
\   'title'          : 'th09  : 東方花映塚',
\   'dirname'        : expand('~/上海アリス幻樂団/東方花映塚'),
\   'th_command'     : 'th09.exe',
\   'vpatch_command' : 'vpatch.exe ../vpatch.ini',
\ }, {
\   'title'          : 'th095 : 東方文花帖',
\   'dirname'        : expand('~/上海アリス幻樂団/東方文花帖'),
\   'th_command'     : 'th095.exe',
\   'vpatch_command' : 'vpatch.exe ../vpatch.ini',
\ }, {
\   'title'          : 'th10  : 東方風神録',
\   'dirname'        : expand('~/上海アリス幻樂団/東方風神録'),
\   'th_command'     : 'th10.exe',
\   'vpatch_command' : 'vpatch.exe ../vpatch.ini',
\ }, {
\   'title'          : 'th11  : 東方地霊殿',
\   'dirname'        : expand('~/上海アリス幻樂団/東方地霊殿'),
\   'th_command'     : 'th11.exe',
\   'vpatch_command' : 'vpatch.exe ../vpatch.ini',
\ }, {
\   'title'          : 'th12  : 東方星蓮船体験版',
\   'dirname'        : expand('~/上海アリス幻樂団/東方星蓮船体験版'),
\   'th_command'     : 'th12.exe',
\ }, {
\   'title'          : 'th12  : 東方星蓮船',
\   'dirname'        : expand('~/上海アリス幻樂団/東方星蓮船'),
\   'th_command'     : 'th12.exe',
\   'vpatch_command' : 'vpatch.exe ../vpatch.ini',
\ }, {
\   'title'          : 'th125 : ダブルスポイラー',
\   'dirname'        : expand('~/上海アリス幻樂団/ダブルスポイラー'),
\   'th_command'     : 'th125.exe',
\   'vpatch_command' : 'vpatch.exe ../vpatch.ini',
\ }, {
\   'title'          : 'th128 : 妖精大戦争',
\   'dirname'        : expand('~/上海アリス幻樂団/妖精大戦争'),
\   'th_command'     : 'th128.exe',
\   'vpatch_command' : 'vpatch.exe ../vpatch.ini',
\ }, {
\   'title'          : 'th13  : 東方神霊廟',
\   'dirname'        : expand('~/上海アリス幻樂団/東方神霊廟'),
\   'th_command'     : 'th13.exe',
\ }, {
\   'title'          : 'th13  : 東方神霊廟 (Trial)',
\   'dirname'        : expand('~/上海アリス幻樂団/東方神霊廟体験版'),
\   'th_command'     : 'th13.exe',
\ }, {
\   'title'          : 'thdnh : 東方弾幕風',
\   'dirname'        : expand('~/上海アリス幻樂団/th_dnh'),
\   'th_command'     : 'th_dnh.exe',
\   'custom_command' : 'config.exe',
\   'vpatch_command' : 'vpatch.exe ../vpatch.ini',
\ }, {
\   'title'          : 'thdnh3: 東方弾幕風ph3',
\   'dirname'        : expand('~/上海アリス幻樂団/th_dnh_ph3'),
\   'th_command'     : 'th_dnh.exe',
\   'custom_command' : 'config.exe',
\   'vpatch_command' : 'vpatch.exe ../vpatch.ini',
\ }]

dirname にインストールフォルダを指定します.その他は適当に. vpatch_command の設定は特に必要ってわけじゃないので,使ってなければ書く必要はありません. マニュアルもありません(後で書く

おまけ

一応 Ubuntu でも動くみたいです(要 Wine). 設定はこんな感じで.

if has('unix')
  let g:unite_toho_config = [{
  \   'title' : 'th10  : 東方風神録',
  \   'dirname' : expand('~/.wine/drive_c/Program Files (x86)/上海アリス幻樂団/東方風神録'),
  \   'th_command' : 'wine64 th10.exe',
  \   'vpatch_command' : 'wine64 vpatch.exe',
  \ }, {
  \   'title' : 'thdnh : 東方弾幕風ph3',
  \   'dirname' : expand('~/.wine/drive_c/users/$USER/bin/th_dnh_ph3'),
  \   'th_command' : 'wine th_dnh.exe',
  \   'custom_command' : 'wine config.exe',
  \   'vpatch_command' : 'vpatch.exe ../vpatch.ini',
  \ }]
endif

has('unix') が真なら自動で command の頭に wine とか付けたほうが便利ですかねー(要検討).

おわりに

なにかあればご報告下さい!