FedoraでGtk-WARNING

Fedora15(64bit)でacroreadコマンドを使うと以下の警告が出る。

(acroread:2988): Gtk-WARNING **: module_path にはテーマ・エンジンがありません: "clearlooks",

clearlooksも入ってるし、gtk2-enginesも入ってるのになんでだろうと思ってたら
どうやらx86_64ではなくi686の方を入れなきゃいけないらしい。

sudo yum install gtk2-engines.i686

これでとりあえずWARNING吐かれなくなったので良かった。

rbenvをインストールしてみた

rbenvが流行っているらしいのでインストールしてみた。
参考にしたのは以下のページ

ここで、rbenvの設定をしてrbenv installを実行したらインストールができなかった。

$ rbenv install 1.9.2-p290
rbenv: no such command `install'

.zshrcの設定が間違っているのかと思って調べてみると、以下のページを発見。

ruby-buildが何か分からなくてとりあえずインストールしていなかったのだが、
どうやらrbenvのinstallコマンドはruby-buildを入れて初めてできるようになるらしい。

そこで、ruby-buildをインストールしたら無事rbenvがインストールできました。
ちなみにruby-buildのinstall.shはsudoじゃないとできませんでした。

$ git clone git://github.com/sstephenson/ruby-build.git
$ cd ruby-build
$ sudo ./install.sh
$ rbenv install 1.9.2-p290
Downloading http://pyyaml.org/download/libyaml/yaml-0.1.4.tar.gz...
Installing yaml-0.1.4...
Installed yaml-0.1.4 to /home/kano/.rbenv/versions/1.9.2-p290
Downloading http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.2-p290.tar.gz...
Installing ruby-1.9.2-p290...
Installed ruby-1.9.2-p290 to /home/kano/.rbenv/versions/1.9.2-p290
Downloading http://production.cf.rubygems.org/rubygems/rubygems-1.8.10.tgz...
Installing rubygems-1.8.10...
Installed rubygems-1.8.10 to /home/kano/.rbenv/versions/1.9.2-p290

*よく見たらrvmからrbenvに移行したの追記にもrbenv installについて書いてありました。

Bundler1.1が速いらしいので試してみた.

Bundlerが1.0から1.1になって速くなったという記事を読んだのでベンチマークをとってみた.

環境

方法

以下の時間を測りました.

  • rails new myappにかかる時間(あとから気づいたけど--skip-bundleつけて,純粋にbundle installの時間を測ったほうがよかったかも)
  • 上で作成したmyappでのbundle updateにかかる時間

結果

  • Bundler 1.0.21
    • rails new myapp :37秒
    • bundle update :23秒
  • Bundler 1.1.rc
    • rails new myapp :21秒
    • bundle update :7秒

圧倒的に1.1の方が速いですね!
これでbundleでのストレスが少し軽減されそうです.

Vundleでg:vundle_logエラーが発生

VundleInstallとかVundleCleanを実行したら以下のようなエラーが発生した。

function vundle#installer#install..<SNR>200_sync..<SNR>200_log の処理中にエラーが検出されました:
行    1:
E121: 未定義の変数です: g:vundle_log
E116: 関数の無効な引数です: add

ググッてみたら同じ症状が書いてある記事を発見。

でも残念ながらこちらの記事では解決策が書かれていなかった。
そこで本家を調べてみた。

どうやら古いautoloadの中身か何かが悪さしてるらしい。
そのため一度vundleを消して再インストールしたらエラーが解消されました。

VimにJava補完のjavacompleteをインストール

javacompleteのインストール

VimJavaを書いてみようと思い、Java補完のjavacompleteをインストールしてみた。
基本的にはvundleでOK.

Bundle 'vim-scripts/javacomplete'

あとは以下の設定を.vimrcに書きこめばいい。

autocmd FileType java :setlocal omnifunc=javacomplete#Complete
autocmd FileType java :setlocal completefunc=javacomplete#CompleteParamsInfo

これで無事補完をすることができた。

ただ、過去のvim-users.jp - Lingrにもあるように、
補完をするためのファイルReflection.classがホームディレクトリに生成されてしまって鬱陶しい。

Reflection.classについて

javacompleteのソースを眺めてみたところ、autoload/にReflection.classがない場合には、
ホームディレクトリにReflection.classを生成するとかいうよく分からない仕様になっていた。

なので、~/.vim/bundle/javacomplete/autoload/Reflection.javaコンパイルしてみた。

% cd ~/.vim/bundle/javacomplete/autoload
% javac Reflection.java
注:Reflection.java の操作は、未チェックまたは安全ではありません。
注:詳細については、-Xlint:unchecked オプションを指定して再コンパイルしてください。

そしたらコンパイルはできたけど、よく分からない警告も出ててきた。

「未チェックまたは安全ではありません。」の警告について

とりあえずこのままでも無事ホームディレクトリに新しくReflection.classが生成されることなくjavacompleteが使えるようになったのでよかったが、
なんか気になるので調べてみたら、この警告について書いてあるページを見つけた。

そこで、さっそく試してみたところ無事エラーなしでコンパイルすることができた。

% javac -source 1.4 Reflection.java

これでEclipseじゃなくてもJava開発ができるんじゃないかなー、と期待しています。

quickrun.vimで実行したRSpecの結果に色をつける

quickrunを使ってrspecを実行すると、出力結果に色がつかず見づらい。
色をつけるために「-c」オプションを追加してみたけれど、色はつきませんでした。

そこで色々調べていたら、以下の記事を発見。

この記事で扱っているのはPHPUnitの設定ですが、
PHPUnitでできるならRSpecでもできるだろ!!」
と思い試してみました。

quickrunで実行したRSpecに色をつける方法

以下の設定を.vimrcに追加。

let g:quickrun_config = {}

augroup QrunRSpec
  autocmd!
  autocmd BufWinEnter,BufNewFile *_spec.rb set filetype=ruby.rspec
augroup END 

let rspec_outputter = quickrun#outputter#buffer#new()
function! rspec_outputter.init(session)
  call call(quickrun#outputter#buffer#new().init,  [a:session],  self)
endfunction

function! rspec_outputter.finish(session)
  highlight default RSpecGreen ctermfg = Green cterm = none
  highlight default RSpecRed    ctermfg = Red   cterm = none
  highlight default RSpecComment ctermfg = Cyan  cterm = none
  highlight default RSpecNormal  ctermfg = White cterm = none
  call matchadd("RSpecGreen", "^[\.F]*\.[\.F]*$")
  call matchadd("RSpecGreen", "^.*, 0 failures$")
  call matchadd("RSpecRed", "F")
  call matchadd("RSpecRed", "^.*, [1-9]* failures.*$")
  call matchadd("RSpecRed", "^.*, 1 failure.*$")
  call matchadd("RSpecRed", "^ *(.*$")
  call matchadd("RSpecRed", "^ *expected.*$")
  call matchadd("RSpecRed", "^ *got.*$")
  call matchadd("RSpecRed", "^ *Failure/Error:.*$")
  call matchadd("RSpecRed", "^.*(FAILED - [0-9]*)$")
  call matchadd("RSpecRed", "^rspec .*:.*$")
  call matchadd("RSpecComment", " # .*$")
  call matchadd("RSpecNormal", "^Failures:")
  call matchadd("RSpecNormal", "^Finished")
  call matchadd("RSpecNormal", "^Failed")

  call call(quickrun#outputter#buffer#new().finish,  [a:session], self)
endfunction

call quickrun#register_outputter("rspec_outputter", rspec_outputter)
let g:quickrun_config['ruby.rspec'] = { 
      \ 'command': 'rspec',
      \ 'outputter': 'rspec_outputter',
      \ }

出力結果

とりあえずquickrunで実行したRSpecに色がつくようになりました。

  • Green


  • Red

この記事書いてる途中で気づきましたがまだpendingはなにも色付けしてません。
あとhighlightの設定等あまりに賢くないので、もしアドバイス等あればどしどしお願いします。