サーバー上の複数のファイル間を行き来することがよくあります。以下のサンプル コマンドを順番に実行します。
nano /web/site/path/to/file
/web/site/script.py
nano /web/site/path/to/anotherFile
nano /web/site/path/to/yetAnotherFile
/web/site/script.py
nano /web/site/path/to/etc
nano
1つのコマンドから次のコマンドへ進むには、現在、パスの最後のセグメントを置き換えるためにUpを押しますBackspace。これの問題は、本当に怠け者。
次のいずれかを実行できるキーボード ショートカット (または Bashism) はありますか?
- 最後に使用されたパスに置き換えられます(最後に追加ビットが付きます)
- 現在の行(例えば を押した後Up)の最後の行まで削除する
/
答え1
Alt+ショートカットを探しているのだと思いますBackspace。
これを押すと、Up前の文字/
またはspace
文字が削除されます。
答え2
希望どおりに単語を後方に削除する readline バインディングを検出するには、ターミナルで次のコマンドを使用します。
bind -p | awk '/kill/ && /word/ && /backward/'
デフォルトの Ubuntu インストールでは、出力は次のようになります。
"\e\C-h": backward-kill-word
# shell-backward-kill-word (not bound)
2行目はこの時点では重要ではないようですので、1行目の意味を見てみましょう。私の理解では、backward-kill-word
readline関数は、前の特殊文字(/
、;
など,
)が\e\C-h
キーシーケンスにバインドされるまで、すべての文字を削除します。さて、このシーケンスでは\e
を表すキーEscは\C
-Ctrlキー、+\C-h
を表します。Ctrlhこの場合は同等である鍵付きBackspace。
あなたが探しているのはEsc+ Ctrl+h同等のキーボードショートカットEsc+Backspaceそして、xtermの動作により、makeAltキーはメタ文字として動作し、メタ文字は文字自体の前にEsc(を参照man xterm
)が付いた2文字のシーケンスに変換されます。は、Alt+Backspace。
さて、それが気に入らず、忘れ続けてしまう場合は、次のコマンドを使用して、目的に合わせて新しいショートカット (たとえばEsc+ ) を作成できます。w
bind '"\ew": backward-kill-word'
この新しいショートカットを、readline を使用するすべてのコマンドに対して常に有効にするには、~/.inputrc
ファイルに次の行を追加します。
"\ew": backward-kill-word
help -m bind | sensible-pager
詳細については、を参照してください。
答え3
別のキーの組み合わせは次のとおりです。
Alt+BそれからCtrl+K
Alt + B Move cursor backward one word on the current line
Ctrl + K Clear the line after the cursor
Alt+BそれからAlt+D
これにより、単語間の特殊文字を削除せずに最後の単語が削除されます。