Vim
Zsh
Mac
tmux

MacBookAirユーザーが使っている便利ツール

Mac歴1ヶ月、Windows歴5年とかなり長い間パソコンを触って来ましたが、全て独学で、周りにはパソコン関連の何かを教えてくれる人が全くいないので、ここに載っていない便利ツールや便利な設定を知っていたらぜひ教えてほしいです。タイトルには、MacBookAirと書いていますが、対象は何でもいいです。OSにも特にこだわりません。

ここでは、私がMacBookAirの環境を構築した際に便利だと思ったツールや設定を紹介していきたいと思います。

追記

MacBookAirで使っている便利ツール - Qiita

MacBookAirで使っている便利ツール vol.2 - Qiita

更新しました。

MacBookAirを買ったら、すぐに確認しておきたい設定

  1. トラックパッド
  2. キーボード
  3. 拡張機能

トラックパッドの便利操作

Dockにある システム環境設定 > トラックパッド を選択します。そこで、有効にしたい項目にチェックを入れます。

2本指でタップすると、右クリック

キーボードの便利操作

Dockにある システム環境設定 > キーボード を選択します。そこで、有効にしたい項目にチェックを入れます。

Ctrl+F3を押すと、Dockにフォーカスする

拡張機能

Macには隠し機能というものがあります。今回は、それを有効にする方法を紹介します。

ユーザライブラリを表示する

chflags nohidden ~/Library/

ネットワーク上にDS_storeを作らない

defaults write com.apple.desktopservices DSDontWriteNetworkStores true

Dockの待機時間ゼロ

defaults write com.apple.Dock autohide-delay -float 0 && killall Dock

Dashboardを無効にする

defaults write com.apple.dashboard mcx-disabled -boolean true

MacBookAirを買ったらすぐに入れたいアプリ

  1. BetterTouchTool //トラックパッドを拡張するために役立つアプリ。
  2. Google Chrome //インターネットブラウザ
  3. Growl //通知を拡張するアプリ
  4. Kopypasta //クリップボードをバックアップしてくれるアプリ
  5. Quicksilver //アプリにショートカットキーを割り当てることができるアプリ
  6. WindowFlow //Windowsユーザーにお馴染みの[Tab+Alt]でウィンドウを切り替えを使えるようにするアプリ
  7. XtraFinder //Finderを拡張するアプリ
  8. Xcode //開発環境を提供するアプリ
  9. TinkerTool //Macの隠し機能を簡単に有効にするアプリ
  10. VirtualBox //仮想環境を提供するアプリ
  11. Skitch //スクーンショットの撮影と画像の編集を行うアプリ
  12. DashExpander //無料の高機能エディタ
  13. Alfred //キーボード操作によるアプリの起動やWeb検索への連携を可能にするアプリ
  14. Google IME //Google 日本語入力
  15. Dropbox //設定ファイルの共有やバックアップに使えるアプリ
  16. ShiftIt //ウィンドウ操作を簡単にするアプリ
  17. Kobito //Qiitaへの投稿を簡単にするアプリ
  18. GitHub for Mac //GitHubへの投稿を簡単にするアプリ
  19. GIMP //言わずと知れた高機能の画像作成・編集アプリ
  20. Notational Velocity //Simplenoteクライアント。メモを簡単に行うためのアプリ
  21. Evernote //高機能メモ帳Evernoteのクライアントアプリ。
  22. KeePassX //パスワード管理アプリ。
  23. MacVim //Vimエディタの日本語拡張版
  24. iTerm2 //ターミナルアプリ。設定項目が豊富で安定しています。
  25. ClamXav //パソコンをスキャンし、コンピュータウィルスを見つけ出すためのアプリ

他にもたくさんのアプリを入れていますが、主要なアプリは以上の通りです。

各アプリのTips

あまりに長くなりそうなので、思いついたものを適当に書き連ねていきます。

パスワードを共有する

KeePassXで管理したパスワードファイルをDropboxに入れます。iPhoneからもアクセスできるので非常に便利です。iPhoneのKeePassクライアントであるMiniKeePassは非常に安定しており優秀なアプリです。

アプリにショートカットキーを割り当てる

Quicksilverを使って、アプリにショートカットキーを割り当てると便利です。私がショートカットキーを割り当てているアプリは、FinderiTerm2などです。

GIMPは、プラグインを入れるとさらに便利になる

GIMPは、有料のPhotoshopと比べられることが多いのですが、プラグインを入れると、同等の仕事をこなしてくれるようになります。

GIMPのプラグイン一覧

Separate+ //CMYKファイルを扱うプラグイン
PSPI //Photoshop用のプラグインをGIMPでも使う
Liquid Rescale //画像のリサイズに使えるプラグイン
Wavelet Denoise //ノイズを除去するためのプラグイン
Gimp-reflection //特殊効果としての反射を行うプラグイン

URLをメモする

Notational Velocityは、URLをメモする際に非常に役に立ってくれます。URLをコピーし、ショートカットキーを押すと、それをノート化することができます。このアプリ自体もショートカットキーで起動するように設定ができます。

Simplenoteは、iPhone用にアプリが用意されているので、Simplenoteを使った情報共有とメモが促進されます。記事内の文章も全てクリップされるので、非常にいい感じです。

Google Chromeでのブラウジングを快適にする

gleeBoxVichromeまたは、Shortcut Managerなどの拡張機能を入れると、Google Chromeの操作が快適になります。

例えば、Shortcut ManagerにブックマークレットShareHtmlメーカーを設定してみると、ショートカットキーで簡単にサイトや記事の紹介ができます。

gleeBoxの方は、特定のキーを押すと、コマンドモードが発動し、例えば、!tweetと入力すると、見ている記事をツイートしてくれるし、!rssと入力すると、RSS登録してくれます。

Terminal環境を整える

Terminal = iTerm2
Shell = zsh
Editor = Vim
Virtual = tmux

iTerm2の設定を考える

MacBookAirには、デフォルトでせっかく良い壁紙が設定されているので、ウィンドウを透明にしてみます。

これで、デスクトップにある壁紙がうっすらとではありますが、表示されるようになりました。

zshの設定を考える

まずは、zshのインストールと、デフォルトシェルの変更を行います。ただ、Macには、最初から入っているみたいなので、Windows、Linuxユーザー向けの解説です。

Homebrewのインストール

Homebrewは、Unix向けに開発されたオープンソース・ソフトウェアを手軽にインストールすることができるMacOSX用のパッケージです。Homebrewを使うことで、アプリをコマンドから簡単にダウンロード、インストールできるようになります。

/usr/bin/ruby -e "$(/usr/bin/curl -fksSL https://raw.github.com/mxcl/homebrew/master/Library/Contributions/install_homebrew.rb)"

zshのインストール

brew install zsh

zshをデフォルトシェルに設定する

sudo chsh -s /bin/zsh

Gitのインストール

Gitとは、プログラムなどのソースコード管理を行う分散型バージョン管理システムのことです。このシステムを使うことで、独自の設定を簡単に共有、反映させることができます。

brew install git

zshの補完をauto-fu.zshパッケージを使い簡単に強化する

mkdir ~/work/ ~/.zsh/ && cd ~/work/

git clone git://github.com/hchbaw/auto-fu.zsh.git

cp ~/work/auto-fu.zsh/auto-fu.zsh ~/.zsh/auto-fu.zsh

.zshrcに下記を追加して、exec $SHELLを実行し、設定を反映します。

~/.zshrc
if [ -f ~/.zsh/auto-fu.zsh ]; then
    source ~/.zsh/auto-fu.zsh
    function zle-line-init () {
        auto-fu-init
    }
    zle -N zle-line-init
    zstyle ':completion:*' completer _oldlist _complete
fi

zshのプロンプトを整えてみる

~/.zshrc
# プロンプト
## PROMPT内で変数展開・コマンド置換・算術演算を実行する。
setopt prompt_subst
## PROMPT内で「%」文字から始まる置換機能を有効にする。
setopt prompt_percent
## コピペしやすいようにコマンド実行後は右プロンプトを消す。
setopt transient_rprompt

## 256色生成用便利関数
### red: 0-5
### green: 0-5
### blue: 0-5
color256()
{
    local red=$1; shift
    local green=$2; shift
    local blue=$3; shift

    echo -n $[$red * 36 + $green * 6 + $blue + 16]
}

fg256()
{
    echo -n $'\e[38;5;'$(color256 "$@")"m"
}

bg256()
{
    echo -n $'\e[48;5;'$(color256 "$@")"m"
}

## プロンプトの作成
# VCS settings
zstyle ':vcs_info:*' max-exports 3
zstyle ':vcs_info:hg:*' get-revision true # hg で check-for-changes を有効にするには
    zstyle ':vcs_info:hg:*' use-simple true  # この2つの設定が必要

autoload -Uz is-at-least
zstyle ':vcs_info:git:*' check-for-changes true
zstyle ':vcs_info:git:*' stagedstr "⚡" # 適当な文字列に変更する
zstyle ':vcs_info:git:*' unstagedstr "±" # 適当の文字列に変更する
zstyle ':vcs_info:git:*' formats '%{%F{white}%K{green}%}  %s  %{%k%f%}%{%F{white}%K{blue}%}  %b  %{%k%f%}%{%F{white}%K{red}%} %c%u %{%k%f%}'

## バージョン管理システムの情報も表示する
autoload -Uz vcs_info

### プロンプトバーの左側
prompt_bar_left_self="%{%F{white}%K{blue}%}  %n%{%k%f%}%{%F{white}%K{blue}%}@%{%k%f%}%{%F{white}%K{blue}%}%m %{%k%f%}%{%B%F{red}%K{blue}%}+ %{%b%f%k%}%{%B%F{white}%K{cyan}%}  [%~]  %{%k%f%b%}%{%k%f%}%(?.%F{white}%K{red}%}  COMP  %k%f.%B%K{red}%F{red}%}  ERROR  %b%k%f)%{%F{white}%K{green}%}  -%h  %{%k%f%}%{%B%F{white}%K{black}%}  %D{%Y/%m/%d %H:%M}  %{%b%f%k%}"
prompt_bar_left="${prompt_bar_left_self} ${prompt_bar_left_status} ${prompt_bar_left_date}"

### プロンプトバーの右側
#prompt_bar_right="-[%{%B%K{magenta}%F{white}%}%d%{%f%k%b%}]-"

### 2行目左にでるプロンプト。
#prompt_left="-[%h]%(1j,(%j),)%{%B%}%#%{%b%} "
prompt_left='%{%F{white}%K{yellow}%}  $SHELL  %{%k%f%}%{%B%F{white}%K{black}%} %# %{%b%k%f%} > '

## プロンプトフォーマットを展開した後の文字数を返す。
## 日本語未対応。
count_prompt_characters()
{
    print -n -P -- "$1" | sed -e $'s/\e\[[0-9;]*m//g' | wc -m | sed -e 's/ //g'
}

## プロンプトを更新する。
update_prompt()
{
    local bar_left_length=$(count_prompt_characters "$prompt_bar_left")
    local bar_rest_length=$[COLUMNS - bar_left_length]
    local bar_left="$prompt_bar_left"
    # パスに展開される「%d」を削除。
    local bar_right_without_path="${prompt_bar_right:s/%d//}"
    # 「%d」を抜いた文字数を計算する。
    local bar_right_without_path_length=$(count_prompt_characters "$bar_right_without_path")
    # パスの最大長を計算する。
    #   $[...]: 「...」を算術演算した結果で展開する。
    local max_path_length=$[bar_rest_length - bar_right_without_path_length]
    bar_right=${prompt_bar_right:s/%d/%(C,%${max_path_length}<...<%d%<<,)/}
    bar_right="%${bar_rest_length}<<${separator}${bar_right}%<<"
    # プロンプトバーと左プロンプトを設定
    PROMPT="${bar_left}${bar_right}"$'\n'"${prompt_left}"
    # 右プロンプト
    RPROMPT="%{%F{white}%K{black}%}  %l  %{%k%f%}%{%F{black}%K{white}%}  $LANG  %{%k%f%}"
    case "$TERM_PROGRAM" in
    Apple_Terminal)
        # Mac OS Xのターミナルでは$COLUMNSに右余白が含まれていないので
        # 右プロンプトに「-」を追加して調整。
        ## 2011-09-05
        RPROMPT="${RPROMPT}"
        ;;
    esac

    # バージョン管理システムの情報を取得する。
    LANG=C vcs_info >&/dev/null
    # バージョン管理システムの情報があったら右プロンプトに表示する。
    if [ -n "$vcs_info_msg_0_" ]; then
    RPROMPT="${vcs_info_msg_0_}${RPROMPT}"
    fi
}

## コマンド実行前に呼び出されるフック。
precmd_functions=($precmd_functions update_prompt)

Vimの設定を考える

Vimの欠点といえば、挿入モードとコマンドモードの行き来がめんどくさいという点です。特に、日本語入力の切り替えも相まって、最初はかなり使いづらいエディタなのではないかと思います。それに、キーバインドも、シェルが通常採用しているEmacsのものではないので、ターミナルを操作してきた人にとっても扱いづらいというものがあります。よって、ここでは、VimのキーバインドをEmacsのようにする設定をおすすめしたいと思います。ただし、練習用に一部の操作は残しておきます。

まずは、MacVimへのパスを通します。コマンドを入力するとMacVimが起動するように.zshrcに以下を追記しておきましょう。

~/.zshrc
export EDITOR=/Applications/MacVim.app/Contents/MacOS/Vim
alias vi='env LANG=ja_JP.UTF-8 /Applications/MacVim.app/Contents/MacOS/Vim "$@"'
alias vim='env LANG=ja_JP.UTF-8 /Applications/MacVim.app/Contents/MacOS/Vim "$@"'

Vim 挿入モードで使えるようになるキー

C-j //カーソルを上に移動する
C-k //カーソルを下に移動する
C-h //カーソルを左に移動する
C-l //カーソルを右に移動する
C-a //特定の記号で止まりながら、行頭へ移動する
C-e //特定の記号で止まりながら、行末へ移動する
C-S- //範囲指定
C-x //カーソル位置の文字を削除
C-w //カーソル前の単語を削除
C-t //カーソル後の単語を削除
C-u //やり直し
C-z //最後に挿入した文字列を挿入
C-d-" //ダブルクオーテーションに囲まれた文字列を削除する
S- //ウィンドウの調整
jj //ノーマルモードに移行する

・Up = 上矢印
・Down = 下矢印
・Left = 左矢印
・Right = 右矢印
・C = Control
・S = Shift
・<Leader> = ¥

vimを起動し、.vimrcを編集していきます。以下を追記します。

~/.vimrc
"---------------------------------------------------------------------------
" [タイトル]
" 基本操作
" [評価]
" ☆☆☆☆☆
" [参考]
" http://archiva.jp/web/tool/how_to_vim_2.html
" [説明]
" 基本操作に関わる設定です。ここを見ておけば、とりあえず操作できるだろうという設定項目。
"---------------------------------------------------------------------------
" 下に移動
inoremap <C-j> <Down>
" 上に移動
inoremap <C-k> <Up>
" 左に移動
inoremap <C-h> <Left>
" 右に移動
inoremap <C-l> <Right>
"行頭へ移動
inoremap <silent> <C-a> <C-r>=MyJumptoBol(' "。、.,/!?「」')<CR>
"行末へ移動
inoremap <silent> <C-e> <C-r>=MyJumptoEol(' "。、.,/!?「」')<CR>
"カーソル位置から前の単語を削除
inoremap <silent> <C-w> <C-g>u<C-r>=MyExecExCommand('normal! db')<CR>
"カーソル位置から後の単語を削除
inoremap <silent> <C-t> <C-g>u<C-r>=MyDeleteWord()<CR>
"カーソル後の1文字削除
inoremap <silent> <C-x> <C-g>u<Del>
"カーソル以降削除
inoremap <silent> <C-K> <C-g>u<C-r>=MyExecExCommand('normal! D', 'onemore')<CR>
"最後に挿入した文字列を挿入
inoremap <silent> <C-z> <C-g>u<C-a>
"やり直し
inoremap <silent> <C-u> <C-g>u<C-r>=MyExecExCommand('undo', 'onemore')<CR>
"挿入モードで範囲選択(セレクトモード)
set selectmode=key
set keymodel=startsel,stopsel
snoremap <C-S-Up> <S-Up><S-Up><S-Up><S-Up><S-Up>
snoremap <C-S-Down> <S-Down><S-Down><S-Down><S-Down><S-Down>
"カッコで囲まれた文字列を削除する
imap <c-d> <esc>di
"ウィンドウの調整
nnoremap <silent> <S-Left>  :5wincmd <<CR>
nnoremap <silent> <S-Right> :5wincmd ><CR>
nnoremap <silent> <S-Up>    :5wincmd -<CR>
nnoremap <silent> <S-Down>  :5wincmd +<CR>
"ノーマルモードでも Enter で改行する
noremap <CR> i<CR><ESC>
" jj でノーマルモードに移動する 
inoremap jj <Esc>
"クリップボードを共有する
set clipboard=unnamed,autoselect
"マウスを有効にする
if has('mouse')
    set mouse=a
endif
"カーソルを括弧の中に移動
function! MyInsertBracket(lbrackets, rbracket)
    if index(a:lbrackets, getline('.')[col('.') - 2]) != -1
        return a:rbracket . "\<Left>"
    else
        return a:rbracket
    endif
endfunction
inoremap <expr> ) MyInsertBracket(['('], ')')
inoremap <expr> } MyInsertBracket(['{'], '}')
inoremap <expr> ] MyInsertBracket(['['], ']')
inoremap <expr> > MyInsertBracket(['<'], '>')
inoremap <expr> " MyInsertBracket(['"'], '"')
inoremap <expr> ' MyInsertBracket(['''', '`'], '''')
"---------------------------------------------------------------------------
" [タイトル]
" ファンクション関係
" [評価]
" ☆☆☆
" [参考]
" https://sites.google.com/site/fudist/Home/vim-nihongo-ban/tips/vim-key-emacs
" [説明]
" ファンクション関係です。あらゆる設定の互換性に関わります。
"---------------------------------------------------------------------------
" 行末でも停止する単語単位移動コマンド
function! MyMoveWord_i(cmd)
  let isEol = 0
  if col('$') == col('.')
    let isEol = 1
  endif
  let prevline = line('.')
  silent exec 'normal! '.a:cmd
  if line('.') == prevline
    return ''
  endif
  if a:cmd == 'w'
    if isEol == 0
      call cursor(prevline, 0)
      call cursor(line('.'), col('$'))
    endif
    if line('.') - prevline > 1
      call cursor(prevline+1, 0)
      call cursor(line('.'), col('$'))
    endif
  elseif a:cmd == 'b'
    call cursor(line('.'), col('$'))
    if prevline - line('.') > 1
      call cursor(prevline-1, 0)
      call cursor(line('.'), col('$'))
    endif
  endif
  return ''
endfunction
" カーソル以降の単語削除
function! MyDeleteWord()
    if col('.') == col('$')
        return ''
    endif
    let save_cursor = getpos('.')
    silent exec 'normal! wge'
    if save_cursor[1] != line('.') || (save_cursor[2] > col('.'))
        call setpos('.', save_cursor)
        return MyExecExCommand('normal! dw', 'onemore')
    endif
    silent exec 'normal! v'
    call setpos('.', save_cursor)
    return MyExecExCommand('normal! d')
endfunction
" IMEの状態とカーソル位置保存のため<C-r>を使用してコマンドを実行。
function! MyExecExCommand(cmd, ...)
    let saved_ve = &virtualedit
    let index = 1
    while index <= a:0
        if a:{index} == 'onemore'
            silent setlocal virtualedit+=onemore
        endif
        let index = index + 1
    endwhile

    silent exec a:cmd
    if a:0 > 0
        silent exec 'setlocal virtualedit='.saved_ve
    endif
    return ''
endfunction  
" sepが空でなければ、sepをセパレータとしてジャンプ。
" 見つからなければ見かけの行頭へ。
" カーソル位置が見かけの行頭の場合は真の行頭へ。
function! MyJumptoBol(sep)
    if col('.') == 1
        call cursor(line('.')-1, col('$'))
        call cursor(line('.'), col('$'))
        return ''
    endif
    if matchend(strpart(getline('.'), 0, col('.')), '[[:blank:]]\+') >= col('.')-1
        silent exec 'normal! 0'
        return ''
    endif
    if a:sep != ''
        call search('[^'.a:sep.']\+', 'bW', line("."))
        if col('.') == 1
            silent exec 'normal! ^'
        endif
        return ''
    endif
    exec 'normal! ^'
    return ''
endfunction
" sepが空でなければ、sepをセパレータとしてジャンプ。
" 見つからなければ行末へ。
function! MyJumptoEol(sep)
    if col('.') == col('$')
        silent exec 'normal! w'
        return ''
    endif

    if a:sep != ''
        let prevcol = col('.')
        call search('['.a:sep.']\+[^'.a:sep.']', 'eW', line("."))
        if col('.') != prevcol
            return ''
        endif
    endif
    call cursor(line('.'), col('$'))
    return ''
endfunction

Vim Pluginを使う

まずは、プラグイン管理のためのプラグインを導入します。

git clone http://github.com/gmarik/vundle.git ~/.vim/bundle/vundle

echo "source ~/.vim/bundle/vundle/test/minirc.vim" >> ~/.vimrc

vim ~/.vim/bundle/vundle/test/minirc.vim

:BundleInstallと入力すると、プラグインがインストールされます。設定ファイルを分けておくと便利かもしれません。以下に具体例を示します。

~/.vimrc
source ~/dotfiles/vimrc
source ~/dotfiles/vimrc.bundle

そして、おすすめなプラグインをインストールしていきます。簡単に説明すると、.vimrcという設定ファイルにBundle 'user_name/plugin_name'と追記していき、:BundleInstallを実行すると、インストールされます。追記する場所は、Bundle 'gmarik/vundle'以下になります。

Bundle 'gmarik/vundle' "プラグインを管理するプラグインなので必須
  " コメント処理を簡単にする
  Bundle 'scrooloose/nerdcommenter.git'
  " 自動閉じタグ
  Bundle 'yuroyoro/vim-autoclose'
  " visually indent guide
  Bundle 'nathanaelkane/vim-indent-guides'
  " XMLとかHTMLとかの編集機能を強化する
  Bundle 'xmledit'
  " Align : 高機能整形・桁揃えプラグイン
  Bundle 'Align'
  " フィルタリングと整形
  Bundle 'godlygeek/tabular'
  " マルチバイト対応の整形
  Bundle 'h1mesuke/vim-alignta'
  " ヤンクの履歴を管理
  Bundle 'YankRing.vim'
  " undo履歴を追える
  Bundle 'Gundo'
  " テキストを括弧で囲む/削除する
  Bundle 'tpope/surround.vim'
  " 補完 autocomplpop.vim : insertmodeで自動で補完をpopup
  " Bundle 'AutoComplPop'
  " 究極のVim的補完環境
  Bundle 'Shougo/neocomplcache'
  " neocomplcacheのsinpet補完
  Bundle 'Shougo/neocomplcache-snippets-complete'
  " rubyでrequire先を補完する
  " Bundle 'ujihisa/neco-ruby'
  " A neocomplcache plugin for English, using look command
  " Bundle 'ujihisa/neco-look'
  " スクロールを快適にする
  Bundle 'Smooth-Scroll'
  " 単語移動がスマートな感じで
  Bundle 'smartword'
  " matchit.vim : 「%」による対応括弧へのカーソル移動機能を拡張
  Bundle 'matchit.zip'
  " ソースコード上のメソッド宣言、変数宣言の一覧を表示
  ">Bundle 'taglist.vim'
  " markdown
  Bundle 'tpope/vim-markdown'
  " ツリー型エクスプローラ
  Bundle 'The-NERD-tree'
  " ツリー状にファイルやディレクトリの一覧を表示
  Bundle 'vtreeexplorer'
  " エンコーディング
  Bundle 'banyan/recognize_charcode.vim'
  " ファイラー
  Bundle 'Shougo/vimshell.git'
  " vim Interface to Web API
  Bundle 'mattn/webapi-vim'
  " cecutil.vim : 他のpluginのためのutillity1
  Bundle 'cecutil'
  " urilib.vim : vim scriptからURLを扱うライブラリ
  Bundle 'tyru/urilib.vim'
  " utillity
  Bundle 'L9'
  " Buffer管理のLibrary
  Bundle 'thinca/vim-openbuf'
  " vim上のtwitter client
  ">Bundle 'TwitVim'
  " Lingrのclient
  Bundle 'tsukkee/lingr-vim'
  " vimからGit操作する
  Bundle 'tpope/vim-fugitive'
  " ステータスラインを拡張する
  Bundle 'Lokaltog/vim-powerline'
" Unite 関連のプラグイン
  Bundle 'Shougo/unite.vim'
  Bundle 'tsukkee/unite-help'
  Bundle 'h1mesuke/unite-outline'
  Bundle 'Sixeight/unite-grep'
  Bundle 'basyura/unite-rails'
  Bundle 'thinca/vim-unite-history'
  Bundle 'tsukkee/unite-tag'
  Bundle 'choplin/unite-vim_hacks'
" Twitter Client  ~アウトライン表示で分かりやすいTwitterクライアント。
" http://d.hatena.ne.jp/basyura/20111230/p1
  Bundle 'basyura/TweetVim'
  Bundle 'basyura/twibill.vim'
  Bundle 'basyura/bitly.vim'
  Bundle 'tyru/open-browser.vim'
" Simplenote Client ~クラウドメモ帳のクライアント。ファイル操作が楽々。
" http://bugrammer.g.hatena.ne.jp/nisemono_san/20111107/1320677380
  Bundle 'mrtazz/simplenote.vim'
" Tagbar ~JavaScriptでも結構使える関数リストを表示する。
" http://extjs.sunvisor.net/325
  Bundle 'majutsushi/tagbar'
" w3m ~Vim上でブラウジングや調べものをする。
" :W3m google キーワードで検索
  Bundle 'yuratomo/w3m.vim'

パッチを当てPowerLineを有効にする

Vimのステータスラインをかっこ良くするには、PowerLineというプラグインを使います。このとき、iTerm2でフォントを設定していた場合は、うまく表示されないので、フォントにパッチを当てます。

brew install fontforge

brew install python-fontforge

wget http://~MyFontFile.ttf && mv MyFontFile.ttf ~/bundle/vim-powerline/fontpatcher

./fontpatcher MyFontFile.ttf

cp MyFontFile-Powerline.otf ~/.fonts

ココらへんは記憶が曖昧なので、自分の環境によってやり方を色々と変更してください。Macのフォント置き場は~/.fontsだったかな。これはLinuxだったような気がしています。要は、fontpatcherスクリプトの場所にフォントを置いて、スクリプトを実行し、できたファイルをフォント置き場に移動するという手順。あとは、iTerm2にてフォントを変更すればいいのです。

tmuxの設定を考える

まずは、クリップボードを共有できるようにしましょう。

mkdir ~/bin && echo "PATH=$HOME/bin:$PATH" >> ~/.zshrc

git clone git://github.com/ChrisJohnsen/tmux-MacOSX-pasteboard.git

cd ~/tmux-MacOSX-pasteboard

make reattach-to-user-namespace

cp reattach-to-user-namespace ~/bin

vim ~/.tmux.conf

~/.tmux.confという設定ファイルに以下を追記します。

~/.tmux.conf
set-option -g default-command "reattach-to-user-namespace -l zsh"

tmuxのプロンプトを設定する

tmuxのプロンプトにいろいろな情報を表示してみます。以前エントリーを書いたので、そちらを引用します。

tmux の Status-Line をカスタマイズする

Vimでの日本語入力切り替えを快適にする

Google IME を使用している場合は、環境設定を行うことで、Escを押すと、IME を off にできます。