power shellでgemini cliを動かそうとしたが、日本語の入力をしようとしても最後の一文字しか入力されなくなってしまった。昨日はじめて動かしたときは入力できていた。変更があったのはWindowsのアップデートがかかったことと、Power Shellを手動バージョンアップしたこと。
Xを見たところ、他の人も今日から発生といっている人がいたのでWindowsアップデートが原因の可能性が高そう。
@ファイルパス と入力するとそのファイルに書き込んでいる指示内容を読み取ってくれる機能があるとのことなので、直下にgemini_order.txtというものを作成し、そのテキストに指示を書いた。
@gemini_order.txt
上記を打ち込むことで取り急ぎ回避。(下に回避策追加)
回避策
npm install -g @google/gemini-cli
でインストールしたら動くよというのがある。npxだとだめだと。
試したら日本語入力できた
In short, using npm install -g @google/gemini-cli and running gemini works fine with the input method. The problem only happens when running with npx https://github.com/google-gemini/gemini-cli .
中身の差分とかもまだみていない。issueみてたら自分で見るより早く差分特定される気がする。
geminiに差分聞いたら、readline周りのライブラリが変わっている模様。面倒なので中身はやっぱり見ていない
✦ 承知いたしました。npxで直接GitHubリポジトリを指定して実行した場合に日本語入力が機能しない問題ですね。ソースコードの差分を調査し、原因の可能性をご説明し
ます。
結論の要約
npxでGitHubから直接実行される最新の開発版と、npmで公開されている安定版とでは、ユーザーからの入力を受け取るためのライブラリが変更されています。
この新しいライブラリ、あるいはその使い方に、マルチバイト文字(日本語など)の扱いに対応しきれていない問題がある可能性が非常に高いです。
---
差分の詳細な説明
1. 実行されるバージョンの違い
* npm install -g @google/gemini-cli:
npmリポジトリに公式にリリースされた安定バージョンをインストールします。これは、十分なテストが行われたバージョンです。
* npx https://github.com/google-gemini/gemini-cli .: GitHubにある最新のソースコード(開発中のバージョン)を直接ダウンロードして実行します。これには
、まだテストが不十分な変更や、開発途中の機能が含まれている可能性があります。
2. 具体的なソースコードの差分
npmで公開されている安定版と、現在のGitHub上の最新版のソースコードを比較すると、コマンドラインでの対話的な入力処理を担う部分に大きな変更がありました。
* 安定版(npmでインストールされるバージョン):
比較的基本的なNode.jsのreadlineモジュールなどを利用して、ユーザー入力を処理しています。これらのモジュールは、標準的なターミナルでの日本語入力
に長年対応してきた実績があります。
* 最新開発版(npxで実行されるバージョン):
より高度な対話機能(例えば、入力履歴の保持や複雑なプロンプト表示など)を実現するために、新しい外部ライブラリ(例: node:readline/promises
の新しい使い方や、その他のCLIライブラリ)への移行が進められています。
この新しい入力処理の仕組みが、Windows環境における日本語(マルチバイト文字)の入力確定(Enterキー)や変換中の文字表示を正しくハンドリングできていな
いことが、今回の問題の直接的な原因であると考えられます。
npmで入れた方は入れた方でgitignoreで無視しているファイル読み込めていない気がする。また後程確認