WSLのzsh、tmuxのコピペが動いてなかった(´・ω・`)
そういえば動いてないな~と放置していたんですが、最近本格的に触っている時間が増えてしまい、困っていたので対応しました。Macではreattach-to-user-namespaceを使いますがwslでは"win32yank.exe”ってのが該当します。Macで使っていたtmux.confの部分をこれに差し替えて再読込させてみたんです。
shinoyu/.tmux/tmux-Windows_Linux.conf:1: command not found: bind-key shinoyu/.tmux/tmux-Windows_Linux.conf:2: command not found: unbind shinoyu/.tmux/tmux-Windows_Linux.conf:3: command not found: bind-key shinoyu/.tmux/tmux-Windows_Linux.conf:4: command not found: bind-key shinoyu/.tmux/tmux-Windows_Linux.conf:5: command not found: unbind-key shinoyu/.tmux/tmux-Windows_Linux.conf:6: command not found: bind
なんでや( ゚д゚)
Macだとbrew使うと普通に新し目(2.7とか)入るんですよ。もともとターミナル環境はMac先行で整備していたので、新し目バージョンの設定に沿ってconf書いてました。しかしwsl環境では読めず。
おもむろにtmux -VするとこのときのTmuxは2.1(´・ω・`)
# tmux -V tmux 2.1 # sudo apt install tmux パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 tmux はすでに最新バージョン (2.1-3build1) です。 アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。
最新なんですよねぇ。どうもこのバージョンが引っ張っているパッケージは古いらしく。まあバージョン古いですからね、仕方ないですね。
# cat /etc/os-release NAME="Ubuntu" VERSION="16.04.5 LTS (Xenial Xerus)" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 16.04.5 LTS" VERSION_ID="16.04"
どうやらtmuxは2.4くらいから設定の記法に破壊的変更が加わっているらしく、2.7に合わせてた設定を2.1で読もうとすると、そんなコマンドねぇ!エラーが出てくるわけです。(´・ω・`) https://qiita.com/akinoriikeda/items/867b9d9a074538815886
おそらく、Macと同じく2.7以降に上げれば解決するはず。ただしUbuntuの向いてる先が古い、ということでtmuxを自前でビルドしてしまいます。
https://github.com/tmux/tmuxをcloneします。git tagを叩くと、2.8のタグが切られていたので、ブランチをこれに切り替えてビルド。
手順
- sh autogen.shを実行
autogen.sh: 15: autogen.sh: aclocal: not found
- ビルド失敗したので足りないライブラリ入れる
sudo apt-get install autoconf autogen
- sh autogen.shをして次は成功
- ./configureを叩いて、
configure: error: "libevent not found"
sudo apt install libevent-dev
で依存パッケージ追加して再度./configure。正常に終わる- make実行。エラー
tty-term.c:24:21: fatal error: ncurses.h: No such file or directory
- 調べてみると、これも必要らしい
sudo apt install libncurses5-dev
- パッケージ入れてmake。通った。そのまま
sudo make install
一度tmuxのセッション落として、
# tmux -V tmux 2.8
ここまでやって、最新入りましたね(`・ω・´) 一度すべてのtmux落として再度上げ直したら正常にtmuxでコピペができるようになりました。