vim の rc ファイル "外" の設定をどうするか考えよ,っと -- os のクリーンインストールを想定して
iPhone 6S やら諸々発表されましたね.
そして OS X El Capitan の登場ももう少しなんですね...
ということでして os のリプレイスを想定し,前々から気になっていた事があるのでその辺りについて整理しておこうと考えました.
El Capitan, Yosemite / rjshade
それは vim の rc ファイルの "外" で行っている個人的な設定についてです.
現時点では以下アイテムが対象になっています.*1;
- ファイルタイプ関連 (filetype, syntax, ftplugin)
- スニペット (neosnippet.vim の
g:neosnippet#snippets_directory
にあたります) - ブックマーク (unite.vim の
g:unite_source_bookmark_directory
にあたります)
これら設定は各種リプレイス,そして度々訪れる作業環境の物理的な変化の度に設定を再現しなければならない,という営みにいつも考えさせられてきたわけです.
もっと上手い方法はないものか,と.
今回はそう言った rc ファイル以外で施している個人的な設定の運用について考え,整理しておこうと思った時のメモです.
個人的なデータは,みんな .vim
に
自分のランタイムディレクトリ ~\.vim
へ,ここで言う "自分の個人的な設定" を放り込んでしまい,管理/運用してみることにしました.
このセットを今後 github で管理することに.
こうすることで今まで,マシンや os,はたまた vim 自体のリプレイスの度に困らされていた個人設定の手間が省け,どこでも自分の設定で作業ができるようになるんではないかと期待してます.
こんな感じです.;
[~/.vim] │ │ filetype.vim │ ├─[syntax] │ todo.vim │ ├─[after] │ │ │ └─[ftplugin] │ markdown.vim │ sh.vim │ text.vim │ todo.vim │ vim.vim │ ├─[snippets] │ markdown.vim │ └─[unite] │ └─[bookmark] default
気付いた事.
filetype.vim
は,~/.vim
直下でないとダメなんですね.
つまり ~.vim/after/
や ~.vim/after/ftplugin/
に置いては上手く効かないようなのです.
after/ftplugin
は,既存ファイルタイプに対する上書き設定を行うべき場所なのですが,ここでは自分独自の新規ファイルタイプのものも置いてしまっています.理由は単純に面倒なのでまとめておきたい,と言う程度のものでして,特に問題ないかと思って使ってはいるのですが.
あと unite の bookmark 情報が記載されているファイル.ここで定義されているパスは絶対パスのようで,これをパブリックにしちゃうのはちょっと気持ち悪いかなと思ったので,ホームディレクトリの部分を ~
に書き換えといた.どうやらこれでも動作する模様.結果オーライで良しとしてます*2.
Shellscript を書いていて知った事
自分は環境構築の作業を,一括でやって貰うような仕組みを shellscript で用意してまして,この作業も入れることにしました.
この作業の中で,新たに知った事があったので,そんな事も知らなかったの的な内容ですがメモしておきたいと思います.
- 再帰的にディレクトリを掘るには,;
find "${dir_src}" | while read ITEM; do
(やりたいこと)
done*3 cp
で《シンボリックリンクのファイルを一括で作成する》なんて夢のような事ができるらしい.しかし FreeBSD の cp は未対応とのこと orz.だからfind
を使った上のようなやり方を模索した.正直メンドイ.find
の探索対象のパスを,絶対パスで指定すると,結果も絶対パスで出力する.逆も然り.- 絶対パスを取得するには,
abspath=$(cd $(dirname $1) && pwd)/$(basename $1)
- 環境に依存してしまう
sed
を考えると,perl と言う選択はあり.ワンライナーで.
とこんなところです.
おしまい.