問題タブ [readline]
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.
c - GNU readline で複数行の入力を処理する良い方法はありますか?
私のアプリケーションにはコマンド ライン インターフェースがあり、履歴や編集可能なコマンド ラインなどを提供するためにGNU Readline ライブラリを使用することを考えています。
問題は、私のコマンドが非常に長く複雑になる可能性があることです (SQL を考えてください)。ユーザーがコマンドを複数の行に広げて、履歴で読みやすくすることを許可したいと考えています。
readline でこれを行うことは可能ですか (おそらく、改行とコマンドの終わりの違いを指定することによって)?
それとも、独自のコマンド ラインを実装した方がよいでしょうか (ただし、GNU History ライブラリを使用することもできます)。
python - Python readline モジュールが OS X で利用できないのはなぜですか?
Pythonreadline
モジュールのドキュメントには、「可用性: Unix」と記載されています。ただし、OS X では利用できないようですが、Unix としてマークされた他のモジュールは利用可能です。これが私が使用しているものです:
MacPorts から Python 2.5 もインストールしましたreadline
が、そこでも利用できません。
OS Xreadline
で Python の機能を提供するにはどうすればよいですか?raw_input()
c# - .NETでStreamReader.ReadLine()によって読み取られる文字数を制限するにはどうすればよいですか?
私はC#でWebサーバーアプリケーションを作成し、StreamReaderクラスを使用して基盤となるNetworkStreamから読み取ります。
このコードはDoS攻撃を受けやすいです。攻撃者が切断しないと、行の読み取りが終了しないためです。.NETでStreamReader.ReadLine()によって読み取られる文字数を制限する方法はありますか?
python - 非同期出力を適切に処理する Python REPL を実装する方法は?
シンプルな read-eval-print-loop でいくつかのコマンドを受け入れることができる Python ベースのアプリがあります。入力を取得するために使用raw_input('> ')
しています。Unix ベースのシステムでは、import readline
動作を少し改善することも目的としています。これはすべて正常に機能しています。
問題は、非同期イベントが発生することです。イベントが発生したらすぐに出力を印刷したいと考えています。残念ながら、これは見栄えを悪くします。"> " 文字列は出力後に再び表示されず、ユーザーが何かを入力している途中である場合、テキストが半分に切り刻まれます。何かを印刷した後、おそらくユーザーの進行中のテキストを再描画する必要があります。
これは、解決された問題でなければならないようです。これを行う適切な方法は何ですか?
また、一部のユーザーは Windows ベースであることにも注意してください。
ティア
編集:受け入れられた回答はUnixyプラットフォーム(readlineモジュールが利用可能な場合)で機能しますが、Windowsでこれを機能させる方法を誰かが知っていれば、大歓迎です!
c# - ループが 100% の CPU を使用し、終了しないのはなぜですか?
私はこの方法を持っています:
そして、プロセス (cmd.exe) からストリームを読み取ります。ユーザーが cmd.exe ウィンドウを閉じると、CPU 使用率が 100% に跳ね上がります。デバッガーで遊んでいると、sr.ReadLine() で停止し、戻ってこないことがわかります。これは StandardErrorStream と StandardOutputStream の両方を監視しているため、両方のコアで 100% を使用します。
必要に応じて、プロジェクトのコードをさらにいくつか示します。
もう 1 つの興味深い点は、想定どおりにコマンド ウィンドウが常に非表示になるとは限らないことです。最初は非表示にしますが、2 回目 (またはそれ以降) は非表示にしません。これは、ユーザーが cmd.exe ウィンドウを閉じて、readline の動作がおかしくなる場合です。また、終了しない限り、cmd に出力された最後の行を読み取ることはありません。
これを修正する方法について何か提案はありますか?
macos - readline .inputrc ファイルに複数のコマンドを追加することは可能ですか?
ターミナルを設定しようとしていて、1 回のキーストロークで@{}を挿入したいと考えています。これは次のコードで動作します
しかし、カーソルを中かっこの中に入れたいと思っています。これどうやってするの?以下は動作しません。
python - IPythonでタブ補完の可能性をクラスごとに整理するにはどうすればよいですか?
オブジェクトに数百のメソッドがある場合、タブ補完は使いにくいです。多くの場合、興味深いメソッドは、基本クラスではなく、検査対象のオブジェクトのクラスによって定義またはオーバーライドされるメソッドです。
IPythonにタブ補完の可能性をグループ化して、検査対象のオブジェクトのクラスで定義されたメソッドとプロパティが最初に来て、次に基本クラスのメソッドとプロパティが続くようにするにはどうすればよいですか?
文書化されていないinspect.classify_class_attrs(cls)
関数とinspect.getmro(cls)
、必要な情報のほとんどが提供されているようです(これらは、もともとPythonのhelp(object)
機能を実装するために作成されたものです)。
デフォルトでは、readlineは補完をアルファベット順に表示しますが、補完を表示するために使用される関数は、ctypesまたはPython2.6以降に含まれるreadlineモジュールに置き換えることができます。readlineの完了表示を上書きしましたが、うまく機能します。
今必要なのは、クラスごとの情報(inspect.*
上記から)をインスタンスごとの情報とマージし、メソッドの解決順序で結果を並べ替え、きれいに印刷してページ分割するメソッドです。
追加のクレジットとして、選択したオートコンプリートを保存し、次に同じオブジェクトでオートコンプリートが試行されたときに最も人気のある選択肢を最初に表示すると便利です。
c# - C#でreadline入力を検証する最良の方法は?
ああ、2 つのこと: 1) コンソール アプリケーションです。2)デンマーク語であることは知っていますが、実際には問題ではありません。入力を求める例にすぎません。テキストと変数は関係ありません。
さて、この単純な入力を考えてみましょう。これは、実際にはあらゆる種類の入力質問である可能性があります。
では、顧客が何か間違ったことを入力した場合はどうなるでしょうか。手紙など。try & catch はアプリケーションが壊れないことを確認しますが、それは私が望む解決策ではありません。あなたが間違ったことをしたと言いたいので、もう一度やり直してください。かなりクラシックですよね?
しかし、この解決策を解決する最善の方法は何ですか? 私はこれについて考えました:
しかし、それは正しい方法ではないようです。
また、私が遊んでいるこの小さなアプリケーションには、4 つの入力質問が連続しています。これは、この厄介な while() ループの 4 倍を意味します。
関数を書くこともできます。このようなもの(正しい方法で行う理由はありません。概念を説明するためだけです):
しかし、入力の質問ごとに関数を作成する必要があります。(おそらくすべて整数を要求することを意味しますが、質問と変数が異なります)。
これは while() ソリューションよりも優れているようには見えません。
誰かが賢い考えを持っていますか?
python - 改行で区切られたファイルを読み取り、改行を破棄するための最良の方法は?
Pythonで改行区切りファイルを読み取るときに、改行を取り除くための最良の方法を決定しようとしています。
私が思いついたのは次のコードで、テストする使い捨てコードが含まれています。