Introduction
Macbookを新調したので憧れのiTerm2 + zsh + tmux + vim環境を整えています。
powerlineを導入する際に少々苦戦したため覚書です。
Goal
zsh, tmux, vimに対しpowerlineを導入する。
How to
Python (pyenv)
pyenvをインストールします。
$ brew update
$ brew install pyenv
$ echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> ~/.zshrc
$ echo 'eval "$(pyenv init -)"' >> ~/.zshrc
$ echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.zshrc
$ source ~/.zshrc
$ pyenv -v
via / pyenv/pyenv: Simple Python version management
python3.5.1をインストールします。
このとき、MacVimのビルドに必要なDLLを含めるように環境変数を設定します。
otoolでDLLのパスを確認できます。
$ PYTHON_CONFIGURE_OPTS="--enable-shared" \
LDSHARED="clang -bundle" \
LDCXXSHARED="clang++ -bundle" \
BLDSHARED="clang -bundle -lpython3.5m" \
pyenv install 3.5.1
$ otool -L $HOME/.pyenv/versions/3.5.1/lib/python3.5/lib-dynload/_ctypes.cpython-35m-darwin.so
via / MacVim with Python 2.x and Python 3.x
MacVim
macvimのリポジトリからソースコードを取得します。
$ brew tap macvim-dev/macvim
$ brew edit macvim-dev/macvim/macvim
MacVimのビルド引数を編集します。
HomeBrewのpythonを見ているので、pyenvでインストールしたpythonのパスに変更します。
# ENV.append 'vi_cv_path_python3', "#{HOMEBREW_PREFIX}/bin/python3"
# ENV.append 'vi_cv_dll_name_python3', "#{HOMEBREW_PREFIX}/Frameworks/Python.framework/Versions/3.5/Python"
ENV.append 'vi_cv_path_python3', "/Users/<ユーザ名>/.pyenv/versions/3.5.1/bin/python3"
ENV.append 'vi_cv_dll_name_python3', "/Users/<ユーザ名>/.pyenv/versions/3.5.1/lib/libpython3.5m.dylib"
macvimをインストールします。
$ brew install --HEAD --with-properly-linked-python2-python3 --with-override-system-vim macvim-dev/macvim/macvim
via / HomebrewでインストールしたMacVimがpyenvのpythonでビルドされない問題を解決
powerline
$ pip install powerline-status
$ git clone https://github.com/powerline/fonts.git
$ fonts/install.sh
$ rm -rf fonts
$ cp -r ~/.pyenv/versions/3.5.1/lib/python3.5/site-packages/powerline/config_files/* ~/.config/powerline
設定
zsh
powerline-daemon -q
. /Users/<ユーザ名>/.pyenv/versions/3.5.1/lib/python3.5/site-packages/powerline/bindings/zsh/powerline.zsh
tmux
set-option -g default-terminal screen-256color
set -g terminal-overrides 'xterm:colors=256'
run-shell "powerline-daemon -q"
source "/Users/<ユーザ名>/.pyenv/versions/3.5.1/lib/python3.5/site-packages/powerline/bindings/tmux/powerline.conf"
vim
python3 from powerline.vim import setup as powerline_setup
python3 powerline_setup()
python3 del powerline_setup
set laststatus=2
set showtabline=2
set noshowmode
via / Powerline導入例
Conclusion
苦戦した原因は、MacVimを素でインストールするとpythonが実行できないという点でした。
またpyenvによるpythonのバージョン切替を行えるようにしていたためMacVimのビルド設定にも調整が必要でした。
改めて考えると
わざわざMacVimでなくてもよかったのでは・・・
powerline使うならVim 8.xでいいのでは・・・
Vimはvim-airline使えばよかったのでは・・・
など反省点は尽きません。
しばらくはiTerm2以外のGUIも頻繁に使うため、スタンドアロンで動くMacVimはひとまずアリかなと思いつつ、今後dotfile化させるためにも整理していきます。