코딩툴/에디터로 MacVim을 애용하왔는데 Vim and tmux on OSX를 보고 iTerm2에서 Play! 콘솔을 실행하고 MacVim에서 코딩하던 화면을 최적화할 수 있겠다 싶어 전환한다. Vim and tmux on OSX에서 발췌한 할 일은 다음과 같다.
brew install https://raw.github.com/Homebrew/homebrew-dupes/master/vim.rb
Homebrew 공식 저장소에는 vim이 없다. 다른 저장소를 이용하여 vim을 설치할 수 있다. ‘Vim and tmux on OSX’과는 url이 다르다. 이유는 dupes 저장소가 별도로 분리되었기 때문이다.
vim 설치 후 paste(p)할 때 발생하는 register문제를 수정하기 위해 https://github.com/ChrisJohnsen/tmux-MacOSX-pasteboard 를 방문하여 설명대로 해법을 적용시켜준다.
Mac OSX에는 이미 vim이 설치되어있다. 이 것 대신 새로이 설치한 vim을 사용하려면
cd /usr/bin
sudo rename vim _vim
sudo ln -s /usr/local/bin/vim vim
brew install tmux
# C-b인 prefix 키를 C-f로 변경한다. 개인적인 취향.
set-option -g prefix C-f
# o 키가 pane(패널)간 전환인데 자꾸 Ctrl키가 함께 눌려진다.
# 그래서 pane 위치를 변경하는 C-o를 꺼버린다.
unbind C-o
# prefix 키를 두번 눌러, 빠르게 pane간 전환
bind-key C-f last-pane
# reload tmux.conf
bind r source-file ~/.tmux.conf
set -g default-terminal "screen-256color"
set -g mode-mouse on
# 기본 키 바인딩을 쉽게 인식되는 키로 변경
unbind %
bind | split-window -h
bind - split-window -v
# 인식성을 높이기 위해
# 현재 윈도우명을 흰색으로 강조
set-window-option -g window-status-current-fg white
# vim 사용시 필요.
# 시스템 클립보드와 연동시킬 때 문제 수정해줌.
set-option -g default-command "reattach-to-user-namespace -l zsh"
" Map to switch tabs
map <leader>1 :tabn 1<CR>
imap <leader>1 <Esc> :tabn 1<CR>
map <leader>2 :tabn 2<CR>
imap <leader>2 <Esc> :tabn 2<CR>
map <leader>3 :tabn 3<CR>
imap <leader>3 <Esc> :tabn 3<CR>
map <leader>4 :tabn 4<CR>
imap <leader>4 <Esc> :tabn 4<CR>
map <leader>5 :tabn 5<CR>
imap <leader>5 <Esc> :tabn 5<CR>
map <leader>6 :tabn 6<CR>
imap <leader>6 <Esc> :tabn 6<CR>
map <leader>7 :tabn 7<CR>
imap <leader>7 <Esc> :tabn 7<CR>
map <leader>8 :tabn 8<CR>
imap <leader>8 <Esc> :tabn 8<CR>
MacVim에서는 Command-숫자 조합으로 탭을 선택하도록 사용해왔다. Command-숫자는 iTerm2에서
사용하므로
" 모드에 따라 cursorline 보이고 안보이고
set nocursorline
if version >= 700
au InsertEnter * set cursorline
au InsertLeave * set nocursorline
endif
MacVim을 사용하다 원래의 vim으로 전환하면서 가장 불편한 점이 모드에 따라 커서가 변하지 않는 점이다. MacVim에서 커서는 insert mode일 때는 실선, 기타 모드에서는 사각형 모양으로 변한다.
아쉬운데로 cursorline을 이용하여 시각적인 변화를 주어 보완한다.

Play framework 2.0 소스 빌드 절차
1:$ git clone git://github.com/playframework/Play20.git
2:$ cd Play20/framework
3:$ clean
4:$ build
5:> publish-local
4: SBT 실행
5: compile, package, publish in local repository


$git branch newbranch
$git checkout newbranch
$git checkout master
$git merge newbranch


$ git checkout newbranch
$ git rebase master
이미 공개 저장소에 Push한 커밋을 Rebase하지 말라
웹서버의 document root 아래에 bare 저장소를 만든다.
$ cd /var/www/htdocs/
$ git clone --bare /path/to/git_project gitproject.git
$ cd gitproject.git
$ mv hooks/post-update.sample hooks/post-update
$ chmod a+x hooks/post-update
기본적으로 authorized_keys 파일을 관리하고 접근제어를 돕는 스크립트 패키지다.
사용자가 수백명을 넘어 관리가 힘뜰 때 사용.
꼼꼼한 접근 제어. 브랜치, 태그에도 권한을 명시 할 수 있다.
커밋 메시지 예)
영문 50글자 이하의 간략한 수정 요약
자세한 설명. 영문 72글자 이상이 되면 줄 바꿈을 하고 이어지는 내용을
작성한다. 특정 상황에서는 첫 번째 줄이 이메일 메시지의 제목이 되고
나머지는 메일 내용이 된다. 간략한 요약 이후에 넣는 빈 줄은 자세한
설명을 아예 쓰지 않는 한 매우 중요하다.
이어지는 추가적인 내용은 한 줄 띄우고 쓴다.
- 목록 표시도 사용할 수 있다.
- 보통 '-' 나 '*' 표시를 사용해서 목록을 표현하고 표시 앞에 공백
하나, 각 목록 사이에는 빈 줄을 하나를 넣는데 상황에 따라 다르다.