問題タブ [editline]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - OS X 上の Python/editline: £ 記号が ed-prev-word にバインドされているようです
Mac OS XI では、ポンド記号 (£) を Python 対話型シェルに入力できません。
Python インタラクティブ シェルで shift-3 を入力すると、前の単語機能が呼び出されるように見えます。つまり、カーソルは、その行に入力された最後の「単語」(つまり、スペースで区切られた項目) の先頭に移動します。bash シェルに戻ったときに、shift-3 を入力すると、予想どおり £ が生成されます。
このバージョンの Python は、readline ではなく、対話型シェルに editline を使用しているようです。デフォルトの editline キー バインディングの 1 つが、shift-3 (または、shift-3 を入力したときに表示される editline) を ed-prev-word コマンドにバインドしていると思います。
~/.editrc ファイルでこのバインドを削除するためにいくつかのことを試しましたが、効果はありません。
bind -r £
bind -r \243
bind -r \156
バスエラーを引き起こす別のもの:
bind £ \243
何か案は?
readline - GNUReadlineの使用; 同じプログラムにncursesを追加するにはどうすればよいですか?
タイトルは私の実際の目標よりも少し具体的です:
私はGNUReadlineを使用するコマンドラインプログラムを持っています。これは主にコマンド履歴(つまり、上矢印を使用して以前のコマンドを取得するため)やその他の便利な機能です。現在、プログラムの出力はユーザーの入力に散在しているように見えますが、これは問題ない場合もありますが、出力は非同期であり(入力コマンドに応答してネットワーク接続を介して送信されます)、煩わしい場合があります(たとえば、ユーザーが行を出力する場合)新しい入力を入力しています)。
このプログラムに機能を追加したいと思います。出力用の個別の「ウィンドウ」です。このためにncursesを使用することを考えました。しかし、ncurses FAQから、2つのライブラリを一緒に使用するのは簡単ではないようです。
Readlineの代わりにEditlineまたはteclaを使用することを検討するかもしれませんが、どちらかが私の問題を解決するかどうかはわかりません。両方の種類の機能(テキストモードウィンドウとコマンド履歴)を提供するライブラリなど、ncurses以外のものを使用することも検討しますが、何が最適かわかりません。
ああ、そして色付きのテキストのサポートはボーナスポイントを獲得するかもしれません。Readlineでそれができるのではないかと思うので、別の問題かもしれませんが、私の問題を解決することで、出力に少し色を追加するのも簡単になるのであれば、はるかに優れています。
Ubuntu Hardy(Linux 2.6)を使用しています。
c++ - ノンブロッキング入力の Editline
シェルでユーザーコマンドを入力するために、プログラムで editline ライブラリを使用しています。しかし、シェルに加えて、プログラムにはGUIインターフェイスがあるため、Enterキーが押されるまでブロックされるため、別のスレッドでeditlineのreadline()関数を実行する必要があります。ブロックせずに readline() 関数を使用する方法があるので、別のスレッドの使用を避けることができますか?
c++ - editline アプリケーションのプロンプトを色付けする方法
libeditを搭載したアプリケーションのプロンプトを色付けしようとしていますが、色が表示されません。ここで私が間違っていることはありますか?
でコンパイル
残念ながら、次の無色のプロンプトのみが表示されます。
c - editline/history.h と editline/readline.h が見つからない/macOS で動作する、既にインストールされている開発者ツールでコンパイルしようとすると
私は、独自の LISP ( http://www.buildyourownlisp.com/chapter4_interactive_prompt ) の構築に関するこのチュートリアルに取り組んでおり、何らかの理由でコンパイルしようとすると、次のようになります。
macOS 開発者ツールをインストールしましたが、brew は readline がインストールされていることを示しており、brew install editline を試行しても何をすべきかわかりません。
これは私のコードです:
それは明らかに非常に基本的なことですが、私は本当にこのプロジェクトを進めたいと思っているので、これを理解できることを願っています. これは私がコンパイルするために使用しているものです:
c - GTK は readline のようなライブラリで動作しますか?
グラフィカル GTK プログラムが、 GNU readline、editline、またはlinenoiseによって提供されるような「コマンドライン インターフェイス」を持つことは可能ですか?
gtk_main() 呼び出しのブロック、およびこれらのライブラリからのループ ステップのブロックに対処するにはどうすればよいですか?
c - 編集行エラー
私は C 言語に不慣れで、C コードをコマンドでコンパイルするたびにこのエラーが発生し続けますcc prompt.c
。次のエラーが表示されます。
アーキテクチャ x86_64 の未定義のシンボル:
「_add_history」、以下から参照:
「_readline」、以下から参照:
ld: アーキテクチャ x86_64 のシンボルが見つかりません
clang: エラー: リンカー コマンドが終了コード 1 で失敗しました (呼び出しを確認するには -v を使用してください)
これが私のコードです:
OSX 10.10.3 を実行している Macbook Air でこのプログラムを書いています。
私は C 言語を学び始めたばかりなので、この質問が本当に単純かどうか判断しないでください。検索しても結果がありませんでした。
どんな助けでも大歓迎です。ありがとう!
c - 削除可能な文字を端末に表示する (libedit/editline または readline を使用)
現在、「readline」機能に libedit を使用していますが、これまでのところ非常にうまく機能していますが、ユーザーが削除できるプロンプトの後に文字 (スペース) を表示したいと考えています。IPython に似ています:
ご覧のとおり、4 つの追加文字 (スペース) が自動的に追加されていますが、プロンプトが表示されるまでバックスペースを押して削除できます...:
。
libedit/editline でこの動作を模倣したいと思います。これを行う方法がない場合 (たとえば、curses や libedit が使用する下層の端末機能を使用する場合)、readline に切り替えます。
libedit/editlineまたはreadlineを使用することをお勧めします。
編集: を変更しようとしrl_line_buffer
ましたが、これは表示を変更せず、 から取得した値のみを変更しましたreadline
。