概要
MacOS10.9 の Vim7.3 から homebrew でインストールした Vim7.4 へ切り替えたのが事の始まり。
clipboard を OS と Vim で共有にしたいと思い実践。こちらはうまくいくも次は tmux を立ち上げてから tmux 上での Vim では Clipboard が共有されないことが発覚。
全て解決したので備忘録を残します。
手順
Vim7.4 インストール
- インストールしましょう
$ brew update
$ brew install vim
$ brew list vim
/usr/local/Cellar/vim/7.4.335/bin/ex
/usr/local/Cellar/vim/7.4.335/bin/rview
/usr/local/Cellar/vim/7.4.335/bin/rvim
/usr/local/Cellar/vim/7.4.335/bin/view
/usr/local/Cellar/vim/7.4.335/bin/vim
/usr/local/Cellar/vim/7.4.335/bin/vimdiff
/usr/local/Cellar/vim/7.4.335/bin/vimtutor
/usr/local/Cellar/vim/7.4.335/bin/xxd
/usr/local/Cellar/vim/7.4.335/share/man/ (113 files)
/usr/local/Cellar/vim/7.4.335/share/vim/ (1503 files)
- Vim7.3 から Vim7.4 へ切り替えます
- clipboard が反映されていることも確認します
$ sudo mv /usr/bin/vim /usr/bin/old_vim
$ sudo ln /usr/local/Cellar/vim/7.4.335/bin/vim /usr/bin/
$ vim --version | grep clipboard
+clipboard +iconv +path_extra -toolbar
+eval +mouse_dec +startuptime -xterm_clipboard
- .vimrc に下記を追記して clipboard を共有できるようにします
.vimrc
set clipboard+=unnamed
- backspace が使えないという事象が発生したので下記も追加します
.vimrc
set backspace=indent,eol,start
tmux + Vim7.4 で clipboard を共有可能にする
- brew で
reattach-to-user-namespace
をインストールします
$ brew install reattach-to-user-namespace
- .tmux.conf に下記を追記します
.tmux.conf
# キーバインドを vim 風に
set-window-option -g mode-keys vi
# コピーモードに入った際に v で選択開始, y もしくは enter で選択範囲をコピー
unbind -t vi-copy Enter
bind-key -t vi-copy v begin-selection
bind-key -t vi-copy y copy-pipe "reattach-to-user-namespace pbcopy"
bind-key -t vi-copy Enter copy-pipe "reattach-to-user-namespace pbcopy"
set-option -g default-command "reattach-to-user-namespace -l bash:"
- 確実に反映するために
tmux kill-server
をします
$ tmux kill-server
以上で、tmux 上で Vim を立ち上げても clipboard が共有されるようになりました。