3

Bash は readline を使用しており、readline は「kill-word」でカーソルの右側の単語を削除できます。

問題は、control-delete のキー押下を認識することです。それらをbashで押すと、画面に「5〜」が出力されます。これをバインドすることもできますが、ある日「5~」と入力する必要があり、代わりに右側の単語が削除されることを意味します! したがって、正しい制御シーケンスを見つけたいと思います。

私はグーグルで検索しましたが、かなりの数のリソースが「削除」キーについて議論していますが、「制御削除」キーについて議論しているリソースは見つかりませんでした。多くのバリエーションを試しましたが、何も機能しません。

最悪なのは、私がこの退屈で無知なグラインドに費やした時間です。実際には問題はないはずです.

編集:X経由なので、xevとxmodmapを使用した解決策があるかもしれません

4

5 に答える 5

4

あなたが見るものは真実のすべてではありません。それはおそらく<ESC>5~またはそのようなものです。Ctrl-V Ctrl-Delete を試してください。Ctrl-V は「次のものを解釈しない」という意味です。

したがって<ESC>5~、かなり安全なバインディングです。

于 2009-03-24T13:19:58.757 に答える
3

Alt+D はカーソルの右側にある 1 つの単語を削除します Ctrl+W はカーソルの左側にある 1 つの単語を削除します (どちらも Emacs に基づいていると思います)

于 2009-06-12T15:14:03.690 に答える
2

^Q^V (Control-Q の後に Control-V が続きます。その間の Control キーを放しても問題ありません) と入力して Control-Delete を押すと、前述の出力が得られますか? 試してみましたが、少なくともパテを使用すると、まったく応答がありません。ただし、実際の Linux コンソールでは動作が異なる可能性があります。

他のキーの場合、readline は、誤って入力しにくい特別な「コマンド シーケンスの導入」文字を含む、より長いシーケンスを出力します。試してみて、^Q^V コマンド (ところで、quoted-insert と呼ばれます) でより長いシーケンスが得られるかどうかを確認してください。

たとえば、^Q^V を押してから Delete キーを押すと (コントロールを押さずに)、readline は を出力し^[[3~ます。これは、言うことで Delete キーに何かをバインドできることを示しています\e[[3~。CSI キャラクターが存在する可能性が非常に高いようですが、入力を適切に引用するように readline に要求していないため、表示されていません。

于 2009-03-24T13:17:21.463 に答える