Bash / readlineでスペースで区切られた単語に移動

Bash / readlineでスペースで区切られた単語に移動

Bash行の編集(またはGNU readlineを使用するすべてのプログラム)では、Meta-fは1つの単語を右に移動し、Meta-bは1つの単語を左に移動します。ここで、「単語」は文字と数字で構成される。これらはforward-wordコマンドですbackward-word。 (Meta-f は、Alt 修飾キーまたはプレフィックスが付いた Esc キーのいずれかです。)

たとえば、私が入力した場合

cat /etc/motd

次に、Meta-bを繰り返し入力してカーソルをm、、、eに移動しますc

同様に単語を移動しますが、スペースで区切って移動するコマンドはありますか/etc/motd?単一の単語にも同じように適用されますか?

(私は非常に長いファイルパスで作業することが多いので、簡単にスキップできるようにしたいです。解決策は、既存の単語移動コマンドを繰り返し入力するか、^X ^Eと入力してエディタを実行することです。)

vimでは、単語で前後に移動し、wスペースで区切られた単語に移動します。私は似たようなものを探しています。bWB

ドキュメントを見た結果、readline答えが「いいえ」のようですが、何かが欠けている可能性があります。

ベストアンサー1

これにより、readlineはスタイルコマンドをset -o vi採用し、/および/はVim自体と同じWORD動作を持ちます。私はコマンドラインを編集するときに通常、フルパス、URLなどを/スキップを使用します。出力では、readline コマンドが and にバインドされており、その両方であることがわかります。vimwWbBWBbind -lWBvi-forward-bigwordvi-backward-bigword

またshell-forward-wordはとがありますshell-backward-word。 Bashのマニュアルページによると、これらのコマンドは移動します。シェルメタ文字キャラクターであり、引用しない場合、単一の単語。したがって、コマンドよりも少し「攻撃的」ですが、長いvi-*-bigwordパスをスキップするにはほとんど常にトリックを実行します。

たとえば、これを行うと、bind '"\C-x": shell-backward-word'+Ctrlx説明したように機能します。

おすすめ記事