概要
Unicodeにおいて、文字幅が『曖昧』と定められている文字が結構あります。あるらしいです。文脈や環境によって半角として扱われたり全角として扱われたりするためにそう定められているらしいんですけど。
それはそうだとしても半角なのか全角なのかどっちかにしないと表示上困るわけですが、ターミナルエミュレータによってはこれをオプションで切り替えられるものがあります。
わたくし普段macOS上でiTerm2を使用していまして、以前はとある理由からこれを半角に設定していたのですが、最近全角に切り替えました。(Preferences -> Profiles -> Text -> Unicode -> "Ambiguous characters are double-width"のチェックボックスで切り替えが可能)
そうしたところ、tmuxで複数のペインを表示させた場合のボーダーを描画している文字がちょうど曖昧幅だったらしく、表示が崩れるようになってしまいました。これは困る。
iTerm2側の設定は現状のまま全角とみなすようにしておきたかったので、tmux側をどうにかして回避できないかとググったところ、ありがたいことに曖昧幅の文字に関連する修正を統合したパッチが公開されているのを発見。導入してみたところまさに求めていたものが得られました、どうもありがとうございます。
というわけで備忘として導入手順を記載しておきます。
前提
以前書いたtmuxソースコンパイルについての別の記事ではインストール先を/usr/local
にしていたのですが、今回は影響範囲を自ユーザだけに留めるという目的でインストール先を$HOME/.local
に変えてます。作業ディレクトリも$HOME/.local/src
です。そんな変なところに入れる必要ないんだけど、という人は--prefix=/usr/local
とかしておけば良いのではないでしょうか。
本手順はUbuntu 18.04上で確認しています。
手順
必須パッケージのインストール
sudo apt update
sudo apt install git automake bison build-essential pkg-config libevent-dev libncurses5-dev
PATH環境変数の追加(.bashrc
などに追記して読み込んで有効化しておく)
export PATH="$HOME/.local/bin:$PATH"
export MANPATH="$HOME/.local/share/man:$MANPATH"
ソースコードのダウンロード
※ここでは例としてtmux 2.9a
をインストールします
mkdir -p ~/.local/src/ # 作業用ディレクトリが存在していない場合には実行
cd ~/.local/src/
git clone https://github.com/z80oolong/tmux-eaw-fix.git
git clone -b 2.9a --depth 1 https://github.com/tmux/tmux
パッチの適用とビルド
cd tmux/
patch -p1 < ../tmux-eaw-fix/tmux-2.9a-fix.diff
./autogen.sh
./configure --prefix=$HOME/.local
make
インストールと確認
make install
which tmux # $HOME/.local/bin/tmux なのを確認する
tmux -V # tmux 2.9a なのを確認する
man -w tmux # $HOME/.local/share/man/man1/tmux.1 なのを確認する