web-dev-qa-db-ja.com

前のスラッシュまで削除するbashreadline

Bash emacsモードで、前のスラッシュ文字まで削除する方法はありますか?たとえば、コマンドcp /usr/local/bin/reallylongincorrectfolder /home/myname/reallylong_and_correct_pathを入力し、reallylongincorrectfolderを削除したい場合、ショートカットはありますか?これは、bashでの私にとって非常に複雑なシナリオです。 viのdF<char>のようなもの?

16
woodstok
bind -P |grep unix-filename-rubout

たとえば、キーバインディングをテストします。 Ctrl-b

bind \\C-b:unix-filename-rubout

永続的に使用するには、~/.inputrcに追加します

9
user1338062

Alt-Backspace そして Ctrl-w 通常、backward-kill-Wordにマップされます。システム上で何にマップされているかを知りたい場合は(もしあれば)、bind -P | grep '^backward-kill-Word'を実行します。

@ Barmar で説明されているように、これはunix-Word-ruboutとは異なり、前のスペース境界に移動します。

11
l0b0

これを.inputrcに入れて、新しいシェルを開始します。

C-b:unix-filename-rubout

Ctrl-b 次のスラッシュまで逆方向に消去するようになりました。

涅槃!

忘れないでください Ctrl-XCtrl-E エディターが起動するので、複雑なコマンドラインを快適に編集できます。

6
Greg Bell