「Vim-users.jp - Hack #112: 場所ごとに設定を用意する」を見て、プロジェクトごとに Vim の設定を変更できるようにしたのだが、なかなかうまくいかず、苦労した。
特定のディレクトリの C ソースのインデントをデフォルトとは違う設定にしたかったので、.vimrc.local に、
autocmd BufRead *.c,*.h set ts=8 sw=2
と書いたのだが、うまくいかなかった。どうやら、BufRead(Post) のタイミングで source .vimrc.local しているのが原因だったようだ。.vimrc の記述を
augroup vimrc-local autocmd! autocmd BufNewFile,BufReadPre * call s:vimrc_local(expand('<afile>:p:h')) augroup END
というように、BufReadPre に変更したところ、.vimrc.local 内の autocmd BufRead が有効になった。他に影響が出ないかは不明。(新規ファイルの場合はうまくいかないが、諦めた。)
Ricty にヒンティングを付加してみようと試行錯誤したものの、結局失敗。
まずは Ricty を合成する際に、ヒンティングを削除しないように ricty_generator.sh を修正してみたのだが、fontforge が落ちてしまった。Ricty 生成時にヒンティングを削除しているのは fontforge が落ちるのを回避するためだったようだ。(参考:もしかしたら FontForge の segmentation fault を回避できるかもしれないスクリプトの書き方 - キーボードをたたくとき)
次に、ricty_generator.sh を ricty_generator.sh-1.diff のように編集して、Google Web Fonts から取得した Inconsolata を食わせると、一時ディレクトリに Modified-Inconsolata-Regular.sfd と Modified-Inconsolata-Regular.sfd.hint ができるので、その差分を diff -u で取得。作業ディレクトリに Ricty-Regular.sdf ができるので、patch コマンドでその差分を適用。一部パッチ当てに失敗する hunk もあるが無視。fontforge で .sdf を読み込んで .ttf に変換。
これで、Inconsolata 由来の文字はほぼきれいに表示されるようになり、f の横棒も欠けることはなくなった。しかし漢字などは欠けている部分がある。
パッチ当てに失敗する hunk を何とかしようと思い、ricty_generator.sh-2.diff のように編集しなおして、UnlinkReference() した後の差分を取得したところ、Ricty-Regular.sdf に対するパッチ当てには失敗しなくなった。しかし、できあがった .sdf を .ttf に変換したところ、Windows がそのフォントを正しく認識してくれない。原因は不明。
結局、Inconsolata 部分のヒンティングを何とかできたとしても、日本語の部分をどうするかという問題があるため、これ以上追究するのはやめにした。
「Windowsで最高のターミナルを構築する方法」を見て、mintty のフォント設定をいろいろ試してみた。
最初に、上記のサイトで推奨されている Inconsolata (Google Web Fonts 経由) にメイリオをフォントリンクして使う方法を試してみたが、Inconsolata に比べてメイリオのサイズが妙に小さく表示されたため、やめた。
次に、Ricty を生成して使ってみたが、ヒンティング情報が削除されているため、例えば f の横棒が表示されないなどの不具合があり、見るに堪えないため、これもやめた。
次に、Inconsolata に IPAGothic をフォントリンクしてみた。日本語は正方形ではなく少し縦長に表示されてしまうが、MS ゴシックやメイリオをフォントリンクして使うよりはきれいだ。
ここで、Top 10 Programming Fonts の記事をもう一度よく読んでみると、続きの記事があり、Inconsolata より Anonymous Pro の方が良いと書いてある。
Anonymous Pro に IPAGothic をフォントリンクしてみたところ、こちらは日本語が少し横長に表示された。Inconsolata とどちらが良いかは難しいところだが、IPAGothic との組み合わせでは Anonymous Pro の方がバランスがよい気がする。
Anonymous Pro + IPAGothic でしばらく使ってみることにした。
最近はやりの mintty を SpringM から使えるように設定してみることにした。ck と同じように SpringM のカレントディレクトリから Cygwin を起動するようにしたいわけだが、ck の昔の設定を参考に次のように設定してみた。
startw.exe -hide C:\cygwin\bin\env.exe CHERE_INVOKING=yes c:\cygwin\bin\mintty -
カレントディレクトリから mintty を起動できるようにはなったが、startw から /usr/bin/env を起動して、そこから mintty を起動するのは非常に無駄な気がしてきた。startw に環境変数を設定する機能を取り込んでしまうようにした。
startw.exe CHERE_INVOKING=yes c:\cygwin\bin\mintty -
ずいぶん簡単になった。
SpringM で、Y を入力すると ck が、Shift + Y を入力するとコマンドプロンプトが、Ctrl + Shift + Y を入力すると mintty が起動する設定にした。
VMware Player 4.0 をインストールしたが、またしてもネットワークの相性が良くないのか、Linux 用の VMware Tools がインストールできない。以前と同じように、http://softwareupdate.vmware.com/cds/vmw-desktop/player/ から直接ファイルをダウンロードしてインストールした。(参考: VMware Tools のダウンロードURI | My備忘録(又の名を雑記帳))