Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
3
Help us understand the problem. What is going on with this article?
@ha4gu

Ubuntuでtmux 2.8に文字幅修正のパッチあててビルドして、ホームディレクトリ配下にインストールする

More than 1 year has passed since last update.

概要

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 なのを確認する
3
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ha4gu
SIerのインフラエンジニアだったけど、Web業界の開発エンジニアに転身した人。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
3
Help us understand the problem. What is going on with this article?