は無いかしら?

PSR0, PSR1, PSR2にしたがってPHPのソースコードをフォーマットしてくれるphp-cs-fixerを使う。(全部のルールに対応してるわけじゃない)
% sudo curl http://cs.sensiolabs.org/get/php-cs-fixer.phar -o /usr/local/bin/php-cs-fixer
% sudo chmod a+x /usr/local/bin/php-cs-fixer
% sudo php-cs-fixer self-update
% php-cs-fixer fix app/models/foo.php
~/.vimrc:
Bundle 'stephpy/vim-php-cs-fixer'
let g:php_cs_fixer_path = "/usr/local/bin/php-cs-fixer"
nnoremap <silent><leader>pcd :call PhpCsFixerFixDirectory()<CR>
nnoremap <silent><leader>pcf :call PhpCsFixerFixFile()<CR>
これでテンション上げてレガシーPHPを直す。
jitter + growlもいいけど、vimでもっと素早く直感的にエラーを知りたい。
そんな時はsyntastic。
" .vimrc
Bundle 'scrooloose/syntastic'
:BundleInstall
syntasticはIDEみたいにエラーがあったら左にマークを表示してくれる。デフォルトでファイル保存時に走るので便利。
coffeescriptは最初から対応してて、coffeeコマンドでsyntaxをチェックしてくれる。プラグイン形式になっているので自分で書けば何でも行けるハズ。coffeelintが走るようにしたいなあ。
I reinstalled Mac OS X Lion in Golden Week.
Clean install by Bootable USB Memory at first.
$ defaults write com.apple.QuickTimePlayerX MGPlayMovieOnOpen 1
$ defaults write NSGlobalDomain KeyRepeat -int 1
And reboot.
$ defaults write com.apple.finder AppleShowAllFiles TRUE
$ killall Finder
$ xattr -d -r com.apple.quarantine ~/Downloads
$ defaults write com.apple.dashboard mcx-disabled -boolean YES
$ killall Finder
$ touch ~/.hushlogin
Download and Install Android SDK
$ cp -r /BACKUP_DIR/.ssh ~/
$ chsh -s /bin/zsh
bitbucket is pretty good for dotfile repos. because private repos is free.
$ git clone git@bitbucket.org:komagata/dotfile.git ~/code/dotfile
$ cd ~/code/dotfile
$ ruby symlink.rb
$ source ~/.zshrc
.vimrc and plugins is contained dotfiles directory.
Plugins:
Bundle ‘The-NERD-tree’
Bundle ‘quickrun’
Bundle ‘fakeclip’
Bundle ‘tpope/vim-rails’
Bundle ‘vim-ruby/vim-ruby’
Bundle ‘Shougo/neocomplcache’
$ curl -L get.rvm.io | bash -s stable
$ source ~/.rvm/scripts/rvm
$ rvm requirements
$ /usr/bin/ruby -e “$(/usr/bin/curl -fsSL https://raw.github.com/mxcl/homebrew/master/Library/Contributions/install_homebrew.rb)”
$ brew install libksba
If you get something wrong, use below.
$ brew install imagemagick –build-from-source
You can’t use multibyte-language (Japanese etc) in irb when install without option.
$ rvm pkg install readline iconv
$ rvm install 1.9.3-p194 –with-readline-dir=$rvm_usr_path --with-iconv-dir=$rvm_path/usr
$ brew install mysql
$ unset TMPDIR
$ mysql_install_db –verbose –user=whoami
–basedir=”$(brew –prefix mysql)” –datadir=/usr/local/var/mysql –tmpdir=/tmp
$ cp /usr/local/Cellar/mysql/5.5.20/homebrew.mxcl.mysql.plist ~/Library/LaunchAgents/
$ launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
最初からlisp環境には"あきらめが鬼なっていた"vimmerだがclojure環境はスゴイ揃ってる。
<LocalLeader>et
カーソルがあるとこのトップレベルのS式をreplに送る。
<LocalLeader>ef
ファイル全体をreplに送る。
<LocalLeader>eb
VISUALモードで選択した部分をreplに送る。
<LocalLeader>el
カーソルのある行をreplに送る。
<LocalLeader>ep
カーソルのあるカッコ内をreplに送る。
<LocalLeader>rf
ファイルを:reloadフラグを付けて読み込む。
<LocalLeader>rF
ファイルを:reload-allフラグを付けて読み込む。
<LocalLeader>rt
ファイルを:reloadフラグを付けて読み込んで、clojure.contrib.test-isのrun-testsでテスト実行する。
<LocalLeader>me
カーソルのある一番内側のマクロを展開する。
<LocalLeader>m1
MacroExpandと同じだけどmacroexpand-1を使う。(一回だけ展開する奴)
<LocalLeader>lw
カーソルのあるとこのwordのdocを探して表示する。
<LocalLeader>li
プロンプトに任意の文字を入れてdocを探して表示する。
<LocalLeader>fd
入力したパターンを元にdocを探して表示する。(find-doc)
<LocalLeader>jw
カーソルのあるとこのwordのjavadocを外部ブラウザで開く。
<LocalLeader>ji
プロンプトに任意の文字を入れてjavadocを探して外部ブラウザで表示する。
<LocalLeader>sw
カーソルのあるとこのwordのソースを表示する。ソースはCLASSPATHが通ってる必要がある。
<LocalLeader>si
プロンプトに任意の文字を入れてソースを探して表示する。ソースはCLASSPATHが通ってる必要がある。
<LocalLeader>gw
カーソルのある場所のwordのソースに飛ぶ。ソースはPATHが通ってる必要がある。CLOJURE_SOURCE_DIRS環境変数でPATHに追加しておく。
<LocalLeader>gi
プロンプトに任意の文字を入れてソースに飛ぶ。ソースはPATHが通ってる必要がある。CLOJURE_SOURCE_DIRS環境変数でPATHに追加しておく。
<LocalLeader>mw
カーソルのある場所のwordのメタデータを表示する。
<LocalLeader>mi
プロンプトに任意の文字を入れてメタデータを表示する。
<LocalLeader>sr
新しいバッファに新しいreplをスタートする。同時に複数のreplがあるかも。
<LocalLeader>sR
新しいバッファに新しいreplをスタートする。現在のバッファのnamespaceで初期化される。
<LocalLeader>aw
カーソルのある場所のwordをバッファのlispwordsオプションに追加する。これはフォームのインデントに使われる。
leiningen入れるとclojureも入る。
% curl -O https://raw.github.com/technomancy/leiningen/stable/bin/lein
% chmod +x lein
% lein repl
Using JLine for console I/O; install rlwrap for optimum experience.
REPL started; server listening on localhost:29973.
rlwrap入れたほうが良いと出るので入れる。
% brew install rlwrap
% lein repl
REPL started; server listening on localhost:58951.
user=> 1234
1234
user=> (+ 1 2)
3
user=> (exit)
うん。
vimの場合はVimClojureというのが定番ぽい。VimClojureはSyntax Highlightingとかだけでも使えるんだけど、NailgunというCLで言えばSWANK的なものへのインターフェースが同伴されていて、clojureファイルを開くと同時にNailgun Serverに接続することが出来る。
Nailgun ServerもClientも別個にインストールする必要がある。
% vi ~/.vimrc
Bundle 'VimClojure'
let vimclojure#WantNailgun = 1
let vimclojure#NailgunClient = "ng"
:BundleInstall
% brew install nailgun
ngコマンドが使えるようになる。(上記のNailgunClientで指定してるのがコレ)
% lein plugin install org.clojars.autre/lein-vimclojure 1.0.0
lein plugin install xxx versionはleinのプラグインをインストールするのであって、ライブラリを入れてる訳じゃない。両方共clojars.orgにホストされてるので混同しないようにする。(依存ライブラリはproject.cljに書いて後述するlein depsで入れる)
lein helpするとlein vimclojureというサブコマンドが増えてる。
% lein new helloworld
% cd helloworld
% tree
.
├── README
├── classes
├── lib
├── project.clj
├── src
│ └── helloworld
│ └── core.clj
└── test
└── helloworld
└── test
└── core.clj
% lein deps
project.cljに書かれてるライブラリ(clojure処理系自身を含む)を取ってきてlibに入れてくれる。
% lein vimclojure
NGServer started on 127.0.0.1, port 2113.
% vi src/helloworld/core.clj
あとはreplが開いてSLIMEみたいに評価できる。
vimのplugin管理ツール。pathogenだのなんだのとスルーしてきたけどいい加減効率も悪いので入れてみました。
% git submodule add git://github.com/gmarik/vundle.git .vim/vundle
set nocompatible
filetype off
set rtp+=~/.vim/vundle/
call vundle#rc()
Bundle 'rails.vim'
Bundle 'The-NERD-tree'
Bundle 'quickrun'
Bundle 'vim-ruby/vim-ruby'
Bundle 'Shougo/neocomplcache'
.vimrcにBundle 'foo'と書いておいて:BundleInstallでまるっとインストール。.vim/bundleを.gitignoreに入れておく。
そもそもvim良く分かってないのでゴチャゴチャしてしまって嫌だなあと思っていた俺の.vimディレクトリ以下がスッキリ!.vimrcとvundlerプラグインだけになった!
改めて自分の.vimrcを見て、本当に使ってるモノだけにしてみたらビックリするほどvimを活かしてないことが判明しました。ネオコンは"これからやる気だす"という意気込みの現れで、現在はまったく活用できておりません・・・。
参照:pathogen+git submodule から Vundle に乗り換える - Yarukidenized:ヤルキデナイズド
noremap ; :
noremap : ;
vimで上記のようにUSキーボードの時に:と;を入れ替える設定を教えてもらって使ってたんですが、幾つかのプラグインで違和感を感じつつも意識を殺してだましだましやってきました。
nmap pt :set paste
こういうのとか、
nmap nt :NERDTreeToggle
こういうのが動かなくなる。(こういうのよくやるでしょ?)
さっき設定見直してたら対処法がわかってスッキリした。
nmap pt ;set paste
nmap nt ;NERDTreeToggle
noremap ; :
noremap : ;
こんな感じで入れ替えは最後に書いて、キー設定は;でやる。
追記:
影響受けたくない奴は全部noremapすればいいそうです。
nnoremap pt :set paste
nnoremap nt :NERDTreeToggle
「どうせ大して変わらねえだろう」
という軽い気持ちでUSキーボードのパソコンを買ったんですが、違いの大きさに苦戦中です。USキーボードとvimについて現在の疑問を羅列してみました。
USキーボードではCmd+Spaceが日本語変換キーです。これは配置からいってどうにも押しづらい。KeyRemap4MacBookのCommand_R to Command_R(+ When you type Command_R only, send Command+Space)で右Cmdに割り当ててみましたが、コレ、完全に他のキーを押してない状態で右Cmdを押さないといけないのでかなり使い辛いです。普通みなさん何に割り当ててるんでしょうか?
USキーボードではコロンはShiftを押す必要があります。vimで使いまくりのコロンが両手必須というのは厳しい。
noremap ; :
noremap : ;
という設定を教わって便利になりましたが、普通どうやってるんでしょうか?
他にもUSキーボード、vimユーザーなら普通はコレやってるぜ!というのがあったら教えていただければ嬉しいです。