Bash:カーソルの前の単語を削除します


76

次のbashコマンドラインを検討します。^はカーソルの位置を示します。

svn commit -m very/long/path/to/some/file "[bug 123456] Fix the pixel issue"
              ^

同じメッセージで別のファイルをコミットしたいと思います。カーソル位置から次のスペースまで、現在の単語を削除するにはどうすればよいですか?後方削除のショートカットもありますか?カーソルを最初のスペースに後方に形成しますか?

更新: ctrl + wは後方に消去しますが、どのショートカットが前方に1単語を消去しますか?


2
Ctrl u先頭にカーソル位置から消去するためのオプションです...
ナッツの粋についての

23
試してみてくださいalt + d。emacs編集モードが設定されている場合に便利です。

@Mikはemacsモードをどのように有効にしますか?
アダムマタン

@AdamMatan set -o emacsはこれを有効にしますが、通常はデフォルトです。そうでない場合は、その行を.bashrcまたはに入れてから.bash_aliases、ファイルを入手するか、ターミナルをリロードします。ただし、viモードで使用するショートカットは使用できませんが、ctrl + cなどのショートカットはBashショートカットではないため使用できます。

回答:


56

unix.stackexchange.comで同様の質問に答えました

Bashには、デフォルトでバインドされていないreadlineコマンドがあります。参照でそれらを見つけることができます:http : //www.gnu.org/software/bash/manual/html_node/Bindable-Readline-Commands.html#Bindable-Readline-Commands

探しているコマンドは「shell-backward-kill-word」と呼ばれます。最初にショートカットを選択する必要があります。「前のコマンド」であるため、Crtl + pを使用しましょう-上矢印と同じです。

bind '"\C-p": shell-backward-kill-word'

唯一の違いは、前方に削除するため、代わりに「shell-kill-word」コマンドを使用する必要があることです。

Meta+ dショートカット付きの「kill-word」コマンドもあります(メタキーがない場合は、Esc+を試してくださいd)。パスの一部のみを一度に削除します。


31
私のためのAlt-D作品
ricab

8
一般的に、Metaが存在しないキーボードの世界では、Alt = Metaです。
ネイトCK

多くの異なるキーボードを使用している世界では、プレフィックスとしてのEscがMetaとしても機能するという便利でかなり便利な事実があります。
トリプリー

1
要するに、たとえば、これを$ HOME / .inputrcファイルに追加します。これにより、"\ew": shell-kill-word Alt-wが単語を前方に削除します。CTRL-wが後方に単語を削除するのと同じです/または-およびその他の文字)
-user964970

7

OSX Mavericksでesc+ dalt/ opt+の両方をテストし、dそこでも機能します。


12
Option + dOSXでgivesをくれた
イヴァンバラショフ

4
-1 OSXはUbuntuではありません。コメントを自由に追加できますが、これは答えではありません。
wjandrea

あなたは、第1端子の好み( - > [キーボード]タブ- > [チェックボックスプロファイル)で「メタキーとして使用オプション」チェックボックスを有効にする必要があります
NILSはpetersohn

control + dMacシエラで
mfink

2
@IvanBalashov itermを使用している場合、let optキーをesc +として設定します。[プロファイル]> [キー]の下で
-tessie
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.