端末から「/」を「/」に削除する方法は?

端末から「/」を「/」に削除する方法は?

私はKittyエミュレータとbashシェルを使います。

知っていますCtrl+w削除できます。一言端末で(例:Ctrl+ Backspace)が、次のようなものがあるとしたらどうでしょうか?

sh /home/user/dir1/dir2/file.sh

ただ削除したいのですfile.shが?

これCtrlで+で削除できません。w行全体が削除されます。そして手動で削除したくありません。

1つのパス要素のみを削除する方法について提案がありますか?

答え1

私が正しく理解したら、あなたはbashを使っていて、デフォルトのEmacsスタイルで編集しています。それからEmacsチートシート役に立つかもしれません。Alt+Backspace(backward-kill-word) を実行すると、最後の単語の先頭まで再度削除できます.

答え2

bashラインエディタとして使用されるアプリケーションや他のアプリケーションでは、ttyラインルール設定readlineにバインドされているすべての文字()werase出力参照文字を他のウィジェットにバインドする試みは無視されます(AFAICT)。それに縛られています。stty -aunix-word-ruboutwerase

ほとんどのシステムではデフォルトのtty設定weraseになっています。^W

^Wしたがって、readlineの他のコンテンツに再バインドするには、まずtty設定を変更する必要があります。

stty werase '^O'

werase次のいずれかにバインディング^O

stty werase ''

完全に無効にしてください。

これにより、次のことができます。

bind '"\C-w": backward-kill-word'

またはアプリケーション"\C-w": backward-kill-wordに追加するだけです。~/.inputrcreadlinebash

^Wは必要に応じて単語を削除します。性格アンダースコアではなく、一連の文字または数字として定義されます。

ただし、これは自己行エディターを持たないアプリケーションから単語を削除するために^ Wを使用できないことを意味します。

または、完全に設定可能なすべてのテキスト移動/削除ウィジェットをzsh代わりに使用できます。bash

またはすでに@AndreBeaudが言及されていますデフォルトでは、readlineのemacsモードにバインドされたAlt+ Backspace(通常は送信され^[^H、後者はin)を使用します。^[^?kittybackward-kill-word

答え3

unix-filename-rubout.inputrcへのバインディングの設定

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

この方法は、CTRL Bスラッシュまたはスペースが出るまで後方に削除することにマップされます。

パスにアンダースコアがあるとバックスラッシュまで削除されないALT BACKSPACEため、これはより良い解決策です。ALT BACKSPACE

下線は単語の境界として扱われます。

もちろん、他のキーボードショートカットを選択することもできます。

答え4

端末のキーボードテキストショートカット

これが役に立ちます。 「ヘルプ、コンテンツ、詳細設定、キーボードショートカット」にアクセスして、端末でより多くのショートカットを見つけることができます。

関連情報