bashにパスの最後のセグメントを削除するショートカットはありますか?

bashにパスの最後のセグメントを削除するショートカットはありますか?

私はbashをより速くする多くのbashショートカット(Ca / Ce、Cu、Cw、Mf / Mb、Crなど)を使うのにとても上手になりました。しかし、パスの最後の部分を削除しようとすると、一般的な作業のための良いショートカットが見つかりませんでした。

私が持っていると言う

ls ~/projects/arcaneweb/libraries

私の言葉がどういう意味なのか悟った

ls ~/projects/arcaneweb/sources

libraries多くのキーストロークを節約しながら削除する方法はありますか?

答え1

シングルショートカット:M-backspace

Alt+←      

答え2

代替オプションがありますが、パスが非常に長くない場合は、実際にキーストロークを保存するかどうかはわかりません。

^abc^xyz

これはabcの最初の発生をxyzに置き換えます。

[root~]# ls -l /var/log/messages
-rw-------  1 root root 850312 Dec 28 14:08 /var/log/messages
[root ~]# ^messages^secure
ls -l /var/log/secure
-rw-------  1 root root 652614 Dec 28 14:08 /var/log/secure

Bashショートカットを参照: http://www.skorks.com/2009/09/bash-shortcuts-for-maximum-productivity/

答え3

Mb、Ckは私が見つけたものの中で最も速く、ESCをMetaとして使う必要があるので少し遅いです。 Alt/Optionをメタにバインドすると、これに対する筋肉記憶が発達すればかなり早くなります。

答え4

問題unix-filename-ruboutは、スペースをパスの一部として理解できないことです。

私は次のようなバインディングを考えました(Alt-wにバインディング)。

bind '"\ew":"\e[D\e\C-]/\e[C\e\C-d"'

ロジックは簡単です。

\e[D-backward-char

\e\C-]/-then(逆スラッシュをcharacter-search-backward探す)/

\e[C-forward-char

\e\C-d-shell-kill-word



さまざまなコマンドがここで説明されています。 https://www.gnu.org/software/bash/manual/html_node/Bindable-Readline-Commands.html


特定のコマンドのショートカットを照会するには、次のようにします。
bind -q shell-kill-word

関連情報