対話型シェルでパスの一部を削除する方法は?


19

パスの1つのコンポーネントを削除するためのショートカットがbashとzshにありますか?たとえば、を入力ls ~/local/color/し、カーソルが行末にある場合color/、末尾に削除するショートカットはありますか?理想的には、viモードとemacsモードの両方のソリューションが必要です

回答:


25

デフォルトのbash emacsモードで最も一般的に使用されるキーボードで最も一般的に使用されるコマンド:

移動

  • Ctrl- p、またはUp:前のコマンド
  • Ctrl- n、またはDown:次のコマンド
  • Ctrl- bまたは、Left前の文字
  • Ctrl- fまたは、Right次の文字
  • Alt- b:前の単語
  • Alt- f:次の単語
  • Ctrl- a、またはHome:コマンドの開始
  • Ctrl- e、またはEnd:コマンドの終わり

編集

  • BkSpc:前の文字を削除
  • Ctrl- d、またはDel:現在の文字を削除します
  • Alt- BkSpc:左側の単語を削除
  • Alt- d:右側の単語を削除
  • Ctrl- u:コマンドの開始まで削除
  • Ctrl- k:コマンドの最後まで削除
  • Ctrl- y:最後のカットを貼り付け

その他

  • Cltr- /:元に戻す
  • Cltr- r:増分逆方向履歴検索

2
bindkey [key] vi-backward-kill-word
補足

ありがとう。これを〜/ .zshrcファイルに追加しました。Alt+ Backspaceを押すとうまく機能します:bindkey "^ [^?" vi-backward-kill-word。理想的ではありません。
ティムスチュワート

Alt-BckspcとAlt-dは、試したファイルパスでうまく機能します。(bashの上)
おとなしそうな

10

ありますunix-filename-ruboutのためにReadline

# in ~/.inputrc
# press ctrl-b to delete unix filename parts
# see: man bash | less -p 'unix-filename-rubout' and
#      http://www.calmar.ws/vim/vi-bash.html
set editing-mode vi
set keymap vi
"\C-b": unix-filename-rubout

2
IMHO unix-filename-ruboutは、Alt-BkSpcハイフン、アンダースコア、ドットなどの文字で停止するのに対し、スラッシュまたは空白文字を削除するときに尋ねられる質問に対する正しい答えです。
スティーブ

6

デフォルトでは、bash(およびzshを推測しています)はemacsモードになります。次のようなものを試すことができます:

Esc + bカーソルを1単語戻します。 Ctrl + k行末まで削除します。

最新のシェル(bashなど)は、高度なコマンドライン編集機能を実装します。これらのコマンドは、emacsの編集に近いものです(行の開始にはCtrl + A、行の終了にはCtrl + E、...)。

viに似たエディターに慣れている場合は、viモードを許可してみてください。

set -o vi

シェルviのようなモード(コマンドモード/挿入モード)を提供し、標準コマンド(削除の場合はd、置換の場合はr)にアクセスできます。

Viモードでは、次のように説明します。

Esc (command mode); d; b.

1
「コマンドライン編集はviモードでさらに強力で完全」とは言いません。emacsモードにviモードでできることをすべて実行するコマンドがあります
エンゾチブ

私は少し夢中になったことを認めます。これを言い換えます。
ラーム

bashにはviモードがあることを思い出していただき、ありがとうございます。bash dbでこのシナリオを使用できます。またvi-backward-kill-word、zshで欲しいものが見つかりました。bashでviモードを設定するよりも便利です。しかし、私はまだこの目的のために、bashでemacsモードのショートカットを見つけたいです。
ベイン

または「alt-bC」。この方法でdbは、場合によっては末尾の文字が残りません。
ワイルドカード
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.