Skip to content
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

Linux のターミナルでウィンドウの幅が正しく認識されていない? #1

Closed
spiegel-im-spiegel opened this issue May 5, 2023 · 9 comments

Comments

@spiegel-im-spiegel
Copy link

日本語ですみません。
go-multiline-ny 便利に使わせてもらっています。

私は Ubuntu のターミナルで CLI プログラムを動かしているのですが go-multiline-ny を使って編集しようとすると,以下の図のように一定以上の長さになると行が左右にスクロールし始めます。

Screenshot from 2023-05-06 07-24-05

なんとなくターミナルのウィンドウ幅を間違って認識しているように見えます。
v0.7 にアップデートしてからの現象ぽいです。

これって対応可能でしょうか?

ついでに言うと Ubuntu のターミナルで動かすと Ctrl+Enter が効きません。これは恐らく Ubuntu 側の問題の気がしますが...

@spiegel-im-spiegel
Copy link
Author

間違えました。 v0.6.7 から v0.6.8 に上がるタイミングで上の現象が発生します。

@hymkor
Copy link
Owner

hymkor commented May 6, 2023

お知らせありがとうございます。確認します

@hymkor
Copy link
Owner

hymkor commented May 6, 2023

@spiegel-im-spiegel さん:

まだ、ソースレベルでしか確認できていないのですが、どうも go-readline-ny v.0.11.0 から使用を再開した go-tty 本家の方で受理されていたプルリクに不具合が含まれていたようで、UNIX向けソース差分の中に行数と桁数の取り違えではないかと思われるコード がありました。

修正にトライしてみます。うまくゆけばプルリクを本家に送りますが、マージに時間がかかるようであれば回避策も考えます。

@hymkor
Copy link
Owner

hymkor commented May 6, 2023

@spiegel-im-spiegel さん:

プルリクはさくっと取り込んでいただけたようなので(v0.0.5)、間に入っているこちらのパッケージも go get して追随させました。

桁数については直っていると思いますので、ご確認いただけますでしょうか。

Ctrl+Enter については、今のところ再現できていません。
こちらの環境が Windows11 → WindowsTerminal → WSL の Ubuntu という構成だからかもしれませんので、もう少し近い環境を作ってトライしてみます。

@spiegel-im-spiegel
Copy link
Author

桁数についてはこちらでも確認できました。早速の対応ありがとうございます。

Ctrl+Enter については Ubuntu デスクトップ付属のターミナルの問題のような気がします。こちらでもなにか分かったらまた報告したいと思います。

@hymkor
Copy link
Owner

hymkor commented May 6, 2023

VirtualBox に Ubuntu を入れて確認してみました
(WSL や LiveCD 以外で、Linux をインストールするのは久しぶりだったので、よい勉強になりました)

どうも、X-Window 上の端末だと、デフォルトでは Ctrl-Enter が Enter と区別できず、認識させようとすると各端末アプリの個別の設定が必要なようです。Ctrl-Enter が Ctrl-J と等価に扱えるのは WindowsTerminal や TeraTerm など、接続先が Ubuntu でも、表示場所が Windows 側にあるものだけのようです。

端末利用アプリケーション側単体で Ctrl-Enter を常に認識させるのは無理のようなので、デフォルトの送信キーは Ctrl-Enter と称するのはちょっとまずそうです。Ctrl-J は良いとして、何か他のキーにも送信機能を割り付けた方がよいかもしれません(うーん、どうしたものか)

@hymkor
Copy link
Owner

hymkor commented May 9, 2023

X-Window 上の端末で Ctrl-Enter を認識するのはアプリケーション側では難しいようです。とはいえ Ctrl-J だけではちょっと頼りないので、良い方法が見つかるまでのつなぎとして「改行挿入」と「送信」を任意のキーに割り当てられるようにしました。

(が、そのかわりに設定するキーでよいのが浮かばないので、あまり意味はないんですが…)

@spiegel-im-spiegel
Copy link
Author

spiegel-im-spiegel commented May 11, 2023

ありがとうございます。よろしければこの Issue はクローズしていただいて構いません。

@hymkor
Copy link
Owner

hymkor commented May 12, 2023

おそれいります。いったん、Close させていただきますが、送信キーについては引き続きの課題ということで認識しておきます。

@hymkor hymkor closed this as completed May 12, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants