« iPhoneの位置情報サービスとバッテリーの持ち | トップページ | SSDはHDDより信頼性が高いか? »

2011年8月 1日

カラースキームSolarized

Solarizedは、Ethan Schoonover氏が開発したカラースキームである。長時間画面に向かうプログラマ向けに、目が疲れにくい配色を選んでいる。明度や色相を注意深く設定した16色を配することで、低コントラストでありながら、シンタックスハイライトの可読性を失わないように設計されている。いろいろなエディタやアプリケーション向けの実装が公開されている。

Red Hat Enterprize Linux 4とUbuntu 10.04.3 LTSでvimをSolarized化した。参考にしたのはEthanの書いたドキュメント。彼はvim使いなのだろう。

Solarized Colorscheme for Vim
http://ethanschoonover.com/solarized/vim-colors-solarized

■インストール

.vimディレクトリにSolarized配布ファイル内のディレクトリ3つ(autoload、colors、docs)をコピー。

■.vimrc

以下の行を追加する。明るい背景色に慣れているので、デフォルトはlightモードにした。F5キーを押せばlightモードとdarkモードを行き来できる。

call togglebg#map("<f5>")
set t_Co=16
let g:solarized_termcolors=16
let g:solarized_termtrans=0
let g:solarized_degrade=0
let g:solarized_bold=1
let g:solarized_underline=1
let g:solarized_italic=1
let g:solarized_contrast="normal"
let g:solarized_visibility="normal"
colorschem solarized

私の環境はデフォルトでt_Coが8だったのでset t_Co=16を追加した。

Ubuntu, vim, and the solarized color palette(Stack Overflow)
http://stackoverflow.com/questions/5560658/ubuntu-vim-and-the-solarized-color-palette

■solarized.vim

RHEL4のvim 6.3.34ではsolarized.vimの以下の行をコメントする。サポートしてないキーワードが含まれるらしく、vim起動時にエラーが出る。Ubuntu 10.04のvim 7.2.330は問題ない。

exe "hi! SpellBad"       .s:fmt_curl   .s:fg_none   .s:bg_none    .s:sp_red
exe "hi! SpellCap"       .s:fmt_curl   .s:fg_none   .s:bg_none    .s:sp_violet
exe "hi! SpellRare"      .s:fmt_curl   .s:fg_none   .s:bg_none    .s:sp_cyan
exe "hi! SpellLocal"     .s:fmt_curl   .s:fg_none   .s:bg_none    .s:sp_yellow

■putty

Solarized配布ファイル内のレジストリファイルでputtyのSolarizedセッションを作る。

さらにputty設定画面のWindow→Colourで「Bolded text is a different colour」をオフにする。これがチェックされていると、Bold体の配色が地の色とあまり変わらず、lsコマンドのカラー表示でファイルやディレクトリの区別が付けにくい。Bold体には伝統的に地のフォントと別の色を割り当てて区別していたが、今のターミナルソフトはBoldフォントを表示できるので、色を変える意味はない。

Sebastian TrampのGithubページ
https://github.com/seebi/dircolors-solarized

■.bashrc

Solarizedと関係ないが、「force_color_prompt=yes」行のコメントを外して、コマンドプロンプトでカレントディレクトリ部分がカラー表示されるようにする。

■gvim

UbuntuのGNOMEターミナルでvimを使うと配色が期待通りにならない。GNOMEターミナルのSolarizedが必要なのだろうか。Gvimは上記の設定で正しい配色になる。Synaptic Package Managerでvim-gnomeをインストールする。

■2012/05/29追記

yuya_prestoさんから、puttyの「Bolded text is a different colour」をオフにしたらまずいのではないかというコメントをもらったので、もう一度設定を見直してみた。

vimが使い物にならなくなるということだが、私の環境では「Bolded text is a different colour」をオンにしてもオフにしても、vimの配色は変化しない。dircolorsはLinuxのデフォルト設定を使っていたので、Sebastianのdircolors.ansi-universalをインストールした。これで「Bolded text is a different colour」がオンでもオフでもls出力がカラーになる。「Make sure that bold text is displayed using bright colors」「turn off the display of bold typeface for bold text」という指示は、puttyの場合は「Bolded text is a different colour」をオンにすることに相当するのだろうか。ファイル一覧が標準体で表示されるので、今までのボールドタイに慣れた目には、ちょっと細すぎる感じがするが、そのうち慣れるだろう。

コマンドプロンプトは、「Bolded text is a different colour」がオンだとモノクロ表示、オフだとカラー表示。これは「Understanding Solarized Colors in Terminals」を読みながら詳しく調べる予定。

ついでに、仕事で必要になってインストールしたばかりのCygwin 1.7 minttyもSolarized化してみた。まずsol.lightでカラースキームを設定する。カラースキームはmavnnのGitHubからダウンロードできる。これを.bashrcの中でsourceすればよい。vimのバックグラウンドがちょっと変な色になったが、Linuxで使っているのと同じ.vimrcで「let g:solarized_termtrans=1」(Linuxは0)を設定したら、putty + Linuxと同じ色になった。

mavnn/mintty-colors-solarized · GitHub
https://github.com/mavnn/mintty-colors-solarized

|

« iPhoneの位置情報サービスとバッテリーの持ち | トップページ | SSDはHDDより信頼性が高いか? »

コメント

「putty設定画面のWindow→Colourで「Bolded text is a different colour」をオフにする」とありますが、これをしてしまうとvimのsolarizedが使い物にならなくなってしまいます。これはオンにしておき、下記のdircolorsを設置することで、vimとlsの双方の色をsolarized対応にできます。
https://github.com/seebi/dircolors-solarized

投稿: yuya_presto | 2012年5月28日 22時13分

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



« iPhoneの位置情報サービスとバッテリーの持ち | トップページ | SSDはHDDより信頼性が高いか? »