は無いかしら?
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
vimから使う
~/.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.
System Preferences
- Keyboard
- Keyboard
- Delay Until Repeat
- Shortest
- Use all F1, F2, etc. keys as standard functions keys [X]
- Modifier Kyes
- Caps Lock
- Control
- Caps Lock
- Delay Until Repeat
- Keyboard Shortcuts
- Application Shortcuts
- +
- Application: All Applications
- Menu Title: Zoom
- Cmd-Enter
- +
- Application: Terminal
- Menu Title: Select Next Tab
- Cmd-]
- +
- Application: Terminal
- Menu Title: Select Previous Tab
- Cmd-[
- Full Keyboard Access:In windows and dialogs, press Tab to move keyboard focus between:
- All controls
- +
- Mouse
- Point & Click
- Scroll direction: natulal [ ]
- Point & Click
- Dock
- Automatically hide and show the Dock [X]
- Energy Saver
- Power Adapter
- Computer sleep
- 3 hrs
- Display sleep
- 3 hrs
- Computer sleep
- Power Adapter
- Spotlight
- Search Results
- Spotlight menu keyboard shortcut: [ ]
- Spotlight window keyboard shortcut: [ ]
- Search Results
- Date & Time
- Clock
- Use a 24-hour clock [X]
- Show date [X]
- Clock
- Desktop & Screen Saver
- Screen Saver
- Start screen saver: Never
- Screen Saver
- nvALT (Notational Velocity ALT)
- Google Chrome
- Firefox
- Google日本語入力
- Alfred
- Gyazo
- Perian
- Google Drive
- AppCleaner
- VirtualBox
- Skype
- iSyncr
- iMote
- uTrrent
- Eclipse
- Keynote
- Xcode
- Echofon Lite for Twitter
- iShowU
- Skitch
- The Unarchiver
- MPlayerX
- Software Update
- Remove all icons from Dock
Software
Software from App Store
Other
Auto start movies on QuickTime X
$ defaults write com.apple.QuickTimePlayerX MGPlayMovieOnOpen 1
Accelarate a keyrepeat
$ defaults write NSGlobalDomain KeyRepeat -int 1
And reboot.
Show dot files in Finder
$ defaults write com.apple.finder AppleShowAllFiles TRUE $ killall Finder
Disable the “Is An Application Downloaded from the internet” Warning
$ xattr -d -r com.apple.quarantine ~/Downloads
Disable Dashboard
$ defaults write com.apple.dashboard mcx-disabled -boolean YES $ killall Finder
Hide a last login date
$ touch ~/.hushlogin
Terminal
- Preferences
- Settings
- Text
- Monaco 14 pt
- Window
- Scrollback
- Limit number of rows to: 10000
- Scrollback
- Text
- Shell
- When the shell exits:
- Close if the shell exitd cleanly
- When the shell exits:
- Settings
Development Environment
Xcode
- Preferences
- Downloads
- Components
- Command Line Tools
- Install
- Command Line Tools
- Components
- Downloads
Android
Download and Install Android SDK
ssh
$ cp -r /BACKUP_DIR/.ssh ~/
zsh
$ chsh -s /bin/zsh
dotfile
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
vim
.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’
rvm
$ curl -L get.rvm.io | bash -s stable $ source ~/.rvm/scripts/rvm $ rvm requirements
homebrew
$ /usr/bin/ruby -e “$(/usr/bin/curl -fsSL https://raw.github.com/mxcl/homebrew/master/Library/Contributions/install_homebrew.rb)” $ brew install libksba
imagemagick
If you get something wrong, use below.
$ brew install imagemagick –build-from-source
ruby
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
mysql
$ 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 - Application Shortcuts
- Keyboard
最初からlisp環境には"あきらめが鬼なっていた"vimmerだがclojure環境はスゴイ揃ってる。
EvalToplevel
<LocalLeader>et
カーソルがあるとこのトップレベルのS式をreplに送る。
EvalFile
<LocalLeader>ef
ファイル全体をreplに送る。
EvalBlock
<LocalLeader>eb
VISUALモードで選択した部分をreplに送る。
EvalLine
<LocalLeader>el
カーソルのある行をreplに送る。
EvalParagraph
<LocalLeader>ep
カーソルのあるカッコ内をreplに送る。
RequireFile
<LocalLeader>rf
ファイルを:reloadフラグを付けて読み込む。
RequireFileAll
<LocalLeader>rF
ファイルを:reload-allフラグを付けて読み込む。
RunTests
<LocalLeader>rt
ファイルを:reloadフラグを付けて読み込んで、clojure.contrib.test-isのrun-testsでテスト実行する。
MacroExpand
<LocalLeader>me
カーソルのある一番内側のマクロを展開する。
MacroExpand1
<LocalLeader>m1
MacroExpandと同じだけどmacroexpand-1を使う。(一回だけ展開する奴)
DocLookupWord
<LocalLeader>lw
カーソルのあるとこのwordのdocを探して表示する。
DocLookupInteractive
<LocalLeader>li
プロンプトに任意の文字を入れてdocを探して表示する。
FindDoc
<LocalLeader>fd
入力したパターンを元にdocを探して表示する。(find-doc)
JavadocLookupWord
<LocalLeader>jw
カーソルのあるとこのwordのjavadocを外部ブラウザで開く。
JavadocLookupInteractive
<LocalLeader>ji
プロンプトに任意の文字を入れてjavadocを探して外部ブラウザで表示する。
SourceLookupWord
<LocalLeader>sw
カーソルのあるとこのwordのソースを表示する。ソースはCLASSPATHが通ってる必要がある。
SourceLookupInteractive
<LocalLeader>si
プロンプトに任意の文字を入れてソースを探して表示する。ソースはCLASSPATHが通ってる必要がある。
GotoSourceWord
<LocalLeader>gw
カーソルのある場所のwordのソースに飛ぶ。ソースはPATHが通ってる必要がある。CLOJURE_SOURCE_DIRS環境変数でPATHに追加しておく。
GotoSourceInteractive
<LocalLeader>gi
プロンプトに任意の文字を入れてソースに飛ぶ。ソースはPATHが通ってる必要がある。CLOJURE_SOURCE_DIRS環境変数でPATHに追加しておく。
MetaLookupWord
<LocalLeader>mw
カーソルのある場所のwordのメタデータを表示する。
MetaLookupInteractive
<LocalLeader>mi
プロンプトに任意の文字を入れてメタデータを表示する。
StartRepl
<LocalLeader>sr
新しいバッファに新しいreplをスタートする。同時に複数のreplがあるかも。
StartLocalRepl
<LocalLeader>sR
新しいバッファに新しいreplをスタートする。現在のバッファのnamespaceで初期化される。
AddToLispWords
<LocalLeader>aw
カーソルのある場所のwordをバッファのlispwordsオプションに追加する。これはフォームのインデントに使われる。
- leiningen = rubygems + bundler
- clojars.org = rubygems.org
- nailgun = SWANK
- vimclojure = SLIME
Clojure + Leiningen
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)
うん。
VimClojure
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
Nailgun Client
% brew install nailgun
ngコマンドが使えるようになる。(上記のNailgunClientで指定してるのがコレ)
Nailgun Server
% 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というサブコマンドが増えてる。
helloworld
% 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を押さないといけないのでかなり使い辛いです。普通みなさん何に割り当ててるんでしょうか?
vimのコロン
USキーボードではコロンはShiftを押す必要があります。vimで使いまくりのコロンが両手必須というのは厳しい。
noremap ; :
noremap : ;
という設定を教わって便利になりましたが、普通どうやってるんでしょうか?
他にもUSキーボード、vimユーザーなら普通はコレやってるぜ!というのがあったら教えていただければ嬉しいです。