Edited at

pyenv利用時のMacVim + powerline導入メモ


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


~/.zshrc

powerline-daemon -q

. /Users/<ユーザ名>/.pyenv/versions/3.5.1/lib/python3.5/site-packages/powerline/bindings/zsh/powerline.zsh


tmux


~/.tmux.conf

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


~/.vimrc

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化させるためにも整理していきます。