tcshシェルのコマンドプロンプトで特定の単語を見つける方法は?

tcshシェルのコマンドプロンプトで特定の単語を見つける方法は?

CTRL+Aコマンドプロンプトに次の行があり、カーソルが行の合計または()を使用して行の先頭にあるとします。

[subhrcho@slc04lyo pcbpel]$ abc def ghi jkl

toなどの特定の単語に移動するにはどうすればよいですかdef?使っていますtcshシェルからオペレーティングシステム私の考えの基本的なバインディングはEmacsモデル。

MetaPS:私のキーボードにはキーがありません。CTRL+fとをそれぞれ使用して、単語間を前後に移動できます。だから私のMeta鍵がEsc鍵だと思います。お願いしますこの仮定が間違っている場合は訂正してください。Alt また、メタキーとして使用することはできません。一度見たEmacsドキュメントしかし、電話CTRL-s wして押したことはEnter私には役立ちません。まず、プロンプトに文字を追加してプロンプトの内容を実行しようとすると、wプロンプトが表示されます。

[subhrcho@slc04lyo pcbpel]$ abc def ghi jklw
abc: Command not found.

答え1

つまり、ASCII文字(または)とそれに続くMeta-x tcsh必要があります。いつでもすばやくとを順番に押すことでこれを行うことができます。一部の端末では、を押してこれを実行します。ESC^[\exEscapexAlt-x

x一部の他の端末では、ビット8は設定された時間に合わせて文字を送信しますAlt-x。を使用すると、xterm以下を追加して変更できます。

XTerm*metaSendsEscape: true

X11リソースファイルに。

今から検索するには/またはモーダルをtcshシミュレートする場合は、バインディングとウィジェットを使用する必要があります。emacszsh Ctrl-RCtrl-Semacsi-search-backi-search-fwd

bindkey '^R' i-search-back
bindkey '^S' i-search-fwd

ただし、ターミナルドライバがターミナルの入出力文字を一時停止するのが^S一般的です(resumeを使用)。したがって、バインドするには、フロー制御を無効にしてバインディングを無効にする必要があります。stop^Q^S

stty -ixon

またはstop他のキャラクターにバインドしてください:

stty stop '^T'

関連情報