私は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