New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

絵文字のカーソル位置がずれる+gvimだと表示が欠ける #1085

Closed
yoshinaga-hiroyuki opened this Issue Sep 9, 2017 · 4 comments

Comments

Projects
None yet
3 participants
@yoshinaga-hiroyuki

yoshinaga-hiroyuki commented Sep 9, 2017

質問・報告の内容

screenshot from 2017-09-09 20-44-45

表題と添付した上の画像のような問題が有るのですが、改善する方法は有りますか?

上の画像は、上から順に

$ gedit sample.txt
$ vim -u NONE sample.txt
$ gvim -u NONE +"set guifont=Monospace\ 16" sample.txt

で起動した例で、

  • gvim だけフォント・グリフ、サイズを指定していますが、指定なしでも変わりません
    画像を見やすくするために付けただけです
  • gedit は vim との比較のために付けました

具体的な問題ですが、一部の絵文字で

  • カーソル位置がズレます
    各絵文字間には半角空白が入っていますが、その絵文字直後の1つめの空白にカーソルを置いた時に、絵文字にカーソルがかぶります
    -- vimの場合だと、2 行目 2 文字目
    -- gvimの場合だと、1 行目 1 文字目
    の白の四角に見えるのがカーソルで、位置がずれる例です
  • gvim 上の操作後に表示が欠けます←一番下画像の 1〜3 行目等最初の文字が解り易いかと

vim でもカーソル位置がずれる文字で、gvimで表示が欠けるようです

使ったファイルは

🌞 🌤 🌄 🌥 🌅
🌞 🌤 🌄 🌥 🌅
☁ ⛅ 🌬 💨 🍃 🌁 🚬
🌧 💧 🌂 💦

Vimのバージョン

$ vim --version
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Mar 17 2017 12:13:35)
適用済パッチ: 1-95
Modified by pkg-vim-maintainers@lists.alioth.debian.org
Compiled by pkg-vim-maintainers@lists.alioth.debian.org
Huge 版 with GTK2 GUI. 機能の一覧 有効(+)/無効(-)

OSの種類/ディストリ/バージョン

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 17.04
Release: 17.04
Codename: zesty
$ uname -a
Linux naonari 4.10.0-33-generic #37-Ubuntu SMP Fri Aug 11 10:55:28 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

使用している or 関係していそうなプラグイン

上記の通り、-u NONE 付きで起動したので、プラグインは関係ないかと

@mattn

This comment has been minimized.

Show comment
Hide comment
@mattn

mattn Sep 9, 2017

Member

絵文字の幅は現状 Unicode でも明確に定義されていません。そして絵文字の幅はフォントに依存します。我々日本人の使うフォントでは2セル使用して表示されますが、英国圏などでそれらの文字は1セルで表示されます。ですので彼らにとってはこちらが正常という事になります。

しかし Unicode のペーパー上は Square (正方形) と書かれています。以前、この問題を解決する為に pull-req を送りました。

vim/vim#665

そして一旦マージされました。

vim/vim@3848e00

しかしこのパッチは、英国圏の人達の動作を壊す形となり、端末上で2セル表示する絵文字のリストは 0x1f000 以上にする修正が行われました。

vim/vim@6a08454

ですので、現状はこれが仕様という事になります。

※ただしこの結果に納得が行っている訳ではありませんので、何かしらの形でリベンジしたいとは思っています。

Member

mattn commented Sep 9, 2017

絵文字の幅は現状 Unicode でも明確に定義されていません。そして絵文字の幅はフォントに依存します。我々日本人の使うフォントでは2セル使用して表示されますが、英国圏などでそれらの文字は1セルで表示されます。ですので彼らにとってはこちらが正常という事になります。

しかし Unicode のペーパー上は Square (正方形) と書かれています。以前、この問題を解決する為に pull-req を送りました。

vim/vim#665

そして一旦マージされました。

vim/vim@3848e00

しかしこのパッチは、英国圏の人達の動作を壊す形となり、端末上で2セル表示する絵文字のリストは 0x1f000 以上にする修正が行われました。

vim/vim@6a08454

ですので、現状はこれが仕様という事になります。

※ただしこの結果に納得が行っている訳ではありませんので、何かしらの形でリベンジしたいとは思っています。

@yoshinaga-hiroyuki

This comment has been minimized.

Show comment
Hide comment
@yoshinaga-hiroyuki

yoshinaga-hiroyuki Sep 9, 2017

事情が解りました
ご説明有難うございます

表示については、ターミナルは問題ないので GUI 版も正常になると良いですね

端末上で2セル表示する絵文字のリストは 0x1f000 以上にする修正が行われました。

素人考えでは、より小さな範囲は ambiwidth と連動してはどうだろう? と思いますけど

yoshinaga-hiroyuki commented Sep 9, 2017

事情が解りました
ご説明有難うございます

表示については、ターミナルは問題ないので GUI 版も正常になると良いですね

端末上で2セル表示する絵文字のリストは 0x1f000 以上にする修正が行われました。

素人考えでは、より小さな範囲は ambiwidth と連動してはどうだろう? と思いますけど

@yoshinaga-hiroyuki

This comment has been minimized.

Show comment
Hide comment
@yoshinaga-hiroyuki

yoshinaga-hiroyuki Sep 9, 2017

#1086
でより良い方法を考えていただいているようなので閉めます

yoshinaga-hiroyuki commented Sep 9, 2017

#1086
でより良い方法を考えていただいているようなので閉めます

@mattn

This comment has been minimized.

Show comment
Hide comment
@mattn

mattn Sep 9, 2017

Member

素人考えでは、より小さな範囲は ambiwidth と連動してはどうだろう? と思いますけど

そうですね。そっちの方がリーズナブルですね。ロケール案と ambiwidth 案両方出して Bram 氏に提案してみようと思います。

Member

mattn commented Sep 9, 2017

素人考えでは、より小さな範囲は ambiwidth と連動してはどうだろう? と思いますけど

そうですね。そっちの方がリーズナブルですね。ロケール案と ambiwidth 案両方出して Bram 氏に提案してみようと思います。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment