3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

East Asian WidthとiTerm2

Last updated at Posted at 2017-07-18

チラ裏品質

とりあえず気になる問題

スクリーンショット 2017-07-18 15.29.36.png

この動作がちと気に入らなかった。

まず、実はiTerm2においてもFAQレベルの問題である。

Q: I'm a Chinese, Japanese, or Korean user and some characters don't line up because they are not rendered in double-width.
A: Go to Preferences->Profiles->Text and change the setting of "Treat ambiguous-width characters as double-width."

で、これをやろうとすると……最近のバージョン(筆者環境: Build 3.0.15)ではこれが「Not recommended」になっている。

スクリーンショット 2017-07-18 15.22.41.png スクリーンショット 2017-07-18 15.22.32.png

追記(2019-10-31): 3.3.4 ではPreferencesの構成が変わって見た目には「not recommended」が消えたが、チェック非推奨という点では差はない。

スクリーンショット 2019-10-31 16.06.49.png

実際、効果があると同時に頂けない副作用がある。

スクリーンショット 2017-07-18 15.35.42.png

これは良い結果。ところが履歴をたどると

スクリーンショット 2017-07-18 15.36.25.png

明らかにバグっている。

説明が非常にめんどくさいので端折るが「…」で扱いがおかしくなる。上のチェックを外すと半角として扱われ、一貫性がある。

上はたまたまPythonだが (そもそもUnicodeの別のことを調べてた)、 echo ★ で遊んでいても酷いことは起こるものだ。

オプションチェックなしだと、表示がおかしいだけで動作は一貫していて予測はできる。一方全体としてカーソルの動作に一貫性がなくなる。
どちらでも100%まともに動作しているように見えない点は変わらないが「なぜ」かは分からない(今のところ興味もない)。

東アジアの文字幅

こんなのがある。

東アジアの文字幅

Unicode® Standard Annex #11 EAST ASIAN WIDTH

Unicode 10.0.0
2017-05-14
...
Revision 33
Reissued for Unicode 10.0.0.

Annexとは「付録」の意味だ。

A Unicode Standard Annex (UAX) forms an integral part of the Unicode Standard, but is published online as a separate document. The Unicode Standard may require conformance to normative content in a Unicode Standard Annex, if so specified in the Conformance chapter of that version of the Unicode Standard. The version number of a UAX document corresponds to the version of the Unicode Standard of which it forms a part.

いやーつまりだいぶややこしい話だな? (バカ

「プロポーショナルフォントとかそういう世界で全角と半角の二種類に綺麗にぶった切れるなどとついぞ思いなさんな」みたいなオーラがある。

おそらくiTerm2に欧米圏的に重要度が低いambiguous-widthな文字の扱いにバグがある。また、「Monacoフォントの★が本来半角であって欲しいところで堂々と全角を出してくる」という問題にも同時に思える。

正確な原因は結局よく分からんが、そもそも本でちら見して調べたにしてちょっとややこしすぎるのでここでおしまいにする。少なくとも「例によってUnicodeは複雑だなぁ」と思い直すに至る。

とりあえず、カーソルの動作があまりにもすんごく異様になるのでこのオプションは当座は付けないことにした。どうせ見た目だけの問題だ。

ターミナルそれぞれで設定があることが多いようだ。まともに動作するかは分からないが他のターミナルソフトウェアでも、気になったらプリファレンスあたりを確認してみると良い (「曖昧幅の文字」とかそういう表現をしているようだ)

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?