ソフトウェア開発を主にされているエンジニア(特に組み込みエンジニア)はキーボードとターミナルに並々ならぬ思いがあるものです。( ー`дー´)キリッ(※当社勝手調べ)
EWSとか個人用Linux環境がある方ならいざしらず、Windowsでの開発を余儀なくされている方も多いかと思います。いまさらコマンドラインでゴニョゴニョ…WindowsらしくPowerShellでフガフガ…なんてしたくないわけで、WindowsでもLinux使ってやると意気込み、Cygwinに挫折、MinGWに逃げてmsys2にアップグレード、ターミナルはnyaosからnyagos、Cmderとこれまた節操ない状態ではありますが、ここ最近ようやく落ち着ける環境が見つかりましたので、数回にわけてまとめておこうかと思います。
いきなり結論からです。本当は導入方法から記載した方が良いかとは思うのですが、今後のネタにしておきます。(導入記事とか書くの大変ですよね。有用な記事を掲載されている皆様に頭が上がりません)
現在の私のターミナル環境は以下の通り。
- Windows Subsystem for Linux(Kali Linux)
- wsl-terminal
- zsh
- tmux
- tmux-powerline
今回はいきなり最後のtmux-powerlineネタからです。
wsl-terminalでtmuxとtmux-powerlineを使った時に、ステータスラインが改行されてしまう事があります。
分かりにくいかもしれませんね。しかしこのまま使っていると以下のようにエライことに…。
(゜o゜;
巷での情報を調べてみるとiTerm2やTerminal.appなどMac OSの情報は出てきますがwsl-terminalの情報が見つかりませんでした。tmux-powerlineがステータスバーの区切り文字などで使用しているワイド文字の幅を誤認識している事が原因という事はわかるのですが肝心な解決法がなく、唯一見つかったのがこのワイド文字の不具合修正パッチでした。
ありがたや、ありがたや。tmuxをgithubからcloneしてパッチ当ててビルドした所、確かに問題解決しました。
だがしかし
なぜか同じWindows環境の別PCでは、パッチを当てなくても(aptでインストールしたtmuxでも)この問題が発生しなかったのです。そこで違いを調べてみるとwsl-terminalの設定で回避できる事が分かりました。
起きる時~
起きない時~
あぁ…なるほど。ロケールをCにする事でen扱いとなってワイド文字幅が逆にtmux-powerlineの意図通りに判定されるようになるのですね。確かにiTerm2とかの対処でも「ambiguous文字」の設定を変更すれば直るという記事が多数ありましたから。wsl-terminalの場合はロケールなのです。
ロケールをCにした時~
これで無事、パッケージのtmuxを使っても問題が起きなくなりました。
ちなみに、この方法でtigの履歴表示も正常になったことを付け加えておきます。
すごい!神!
助かりましたありがとうございます!Windowsって・・・つらいですね
お役に立てたようで光栄です。
Windows…つらいですが、避けて通るわけにはいきませんからねぇ。