Mac OS Xターミナル:option + deleteを「後方削除単語」にマップ


232

[設定]-> [設定]-> [キーボード]からマップしようとしましたが、「キー」コンボボックスには「前方削除」のみがあり、「削除」はありません。一方、私のキーボードには「削除」のみがあり、「前方削除」はありません。

設定以外の方法はありますか?


「逆方向に単語を削除する」とは、バックスペースキーを意味しますか?削除キーが付いている最近のAppleキーボードは知りません。
ソレンKuklau

「単語を逆方向に削除する」とは、カーソルから逆方向に単語全体を削除するという意味です。:)最後のMacbookには「削除」というラベルの付いたキーがありますが、バックスペースとして機能します。
ibz 2008

私は同じ問題に直面しています。キーボードには後方削除がありますが、Terminal.appでバインディングとして使用できません。
knoopx 2009

私にとって、あなたの質問は何百万もの賛成に値します。それは私を大いに助けました。以前、私はUbuntuでした。これにより、Mac OSでの作業も楽になりました。ありがとう。
doptimusprime

回答:


424

オプションキーをメタキーとして有効にする

  1. へ行きますTerminal> Preferences> Profiles>Keyboard
  2. 確認してくださいUse option key as meta key

画像

2018年10月23日にキャプチャされたmacOS High Sierra 10.13.6。

オプションキーをメタキーとして切り替えるウィンドウの図

ノート

多くのアプリケーション(bashやtcshを含む)はMeta-Deleteを「後方削除ワード」として扱います。


32
ターミナルの設定>設定>キーボードの下にあります。
ジョン

16
なぜこれがデフォルトではないのですか?
ロスハンブリック2014

8
Yosemiteでは、この設定は[設定]-> [プロファイル]-> [キーボード]にあります。プロファイルごとに変更/設定する必要があるようです。
palimpsestor 2015年

6
米国以外のキーボードでは、特定の文字を取得するためにオプションキーが必要になることがよくあります(たとえば、シェルではパイプ '|'が非常に重要です)。その場合、他の回答で述べられている<Esc> bと<Esc> fがおそらく最良の解決策ですか?
Touko、2015

8
残念ながら、これは、オプションキーを{メタキーとして使用すると機能しないため、のような特別な記号を取得するためにオプションキーを使用する必要がある外部キーボードを使用するプログラマにとっては逆効果です。
Magne

74

OS Xのターミナルは、readlineサポートを含むbashを実行します。フォローGlomekのアドバイスとメタキー(または他の使用として使用するオプションにターミナル言うEsc)とは、あなたは便利なオプションの束を持っている:Ctrl+ w削除前の単語を(メタ+が述べたように削除するように)、しかし、あなたはまた、メタ+を使用することができますfとMeta + bで単語を前後に移動し、Ctrl+ aCtrl+ eで行の先頭と行末まで、Ctrl+ kカーソルから行の末尾まで削除(kill)、その他多数。

小さな参照表については、http://www.bigsmoke.us/readline/shortcutsを参照してください


3
これは「便利」ですか?システムの残りの部分ではdelete、修飾子を使用して単語を削除します。
idrougge 2017

「行を削除」することもできますか?
wenbert 2017年

1
Readlineは素晴らしいですが、これはOPの助けにはなりません。Ctrl + wは、単語(句読点+空白で区切られた)ではなく、単語(空白で区切られた)を削除します。の末尾にカーソルがあるcat .git/refs/heads場合、Ctrl-wを押すとになりcatます。メタ+削除の結果cat .git/refs/
idbrii

@ nadafigment、 'a'と 'e'はどういう意味ですか?
パセリエ

63

さかのぼって単語を削除します。

Ctr-w。


2
これを読んだ後、「単語を前方に削除」がctrl + k(試行錯誤による)であることがわかりました。今、私はなぜこれについてすべてのドキュメントがほとんどないのかと思います。
勝利者n。

8
Ctr-kは、1つの単語だけでなく、先頭のすべてを削除しますか?
Shai

これは私のMacで動作します。それはubuntu linuxでも動作しますか?
user391339

1
Ctrl + wは、単語(句読点+空白で区切られた)ではなく、単語(空白で区切られた)を削除します。の末尾にカーソルがあるcat .git/refs/heads場合、Ctrl-wを押すとになりcatます。メタ+削除の結果cat .git/refs/
idbrii

24

デフォルトでは、メタバックスペースはほとんどのシェルで後方ワードヤンクを行います。エスケープを押してからバックスペースを押すと、ほとんどどこでも機能します。


3
素晴らしい、追加の設定は必要ありません。それに気づき<Esc> b<Esc> f1単語前または後ろにジャンプするように働きます。
joeytwiddle

1
<ALT> +矢印がもっと好きです。ESCでは、bまたはfを連続してクリックすることはできません。
Vitali Pom

1
<ALT> +矢印を使用して移動しましたが、同様の方法で削除する方法がないことがわかりました。上記のCTRL + Wのアプローチは、<ALT> +矢印のように単語以外の文字で停止しないため、空白文字まですべて削除されます。<ALT> +矢印と同様の境界検出を使用して削除する方法があれば
幸いです

18

⌃W(control + W)はmeta + deleteと同じではありません(使用オプションをメタキーとしてチェックしていない場合はESC + delete)meta + deleteは/ _単語の区切り文字として扱われ、^Wスペースは区切り文字と見なされます。

例:ESC + Bakcspace on(最後のカーソル)

rm /dira/dirb/file1

与える

rm /dira/dirb/

同じ上の^ Wは

rm

したがって、端末プロファイルの変更を定義するときは、^ Wではなく\ 033 \ 177を使用することをお勧めします。そうすることで、⌥⌫をesc⌫の実行内容に実際にマッピングし、スペース区切り文字に基づいて^ Wで単語を消去し続けます。

私はこれをどのように行うかについて画像を投稿できるようになりたいのですが、初心者としてはできません。

端末プロファイルを変更する方法については、boukeコメントを参照してください。


5
でこれを実行したいiterm2場合は、[設定]> [キー]> [キーマッピング⌥⌫を追加]を選択して、16進コードを送信できます0x1B 0x7F。🍻
QIX

それ\033\177が「単語の一部を削除する」ために必要なことをどのようにして見つけましたか?
断熱的な

実際、ターミナル設定ダイアログで必要なキーシーケンスを押すだけです。[設定]→[プロファイル]→[キーボード]タブ→[+]ボタンをクリックし、修飾子「オプション」とキー「key削除」を選択して、テキストフィールドを選択し、エスケープキーを押してから⌫キーを押すと、完了です。Esc +⌫はasと同じことを行います
ステファンガスパリーニ

14

ターミナルのプロファイルで、⌥⌫(option + delete)を⌃W(control + W)にバインドできるため、他のアプリと同様に機能します。

端末プロファイルのキーボード設定


sttyがこれを機能させるには、^ wをwerase(デフォルトの動作)にマップする必要があります。コマンドラインでstty -aを使用して、マッピングの設定方法を確認します。
natersoz 2017

4

コマンド編集のショートカット

Ctrl + a –コマンドラインの先頭に移動

Ctrl + e –コマンドラインの最後に移動

Ctrl + k –カーソルからコマンドラインの最後まで削除

Ctrl + u –カーソルからコマンドラインの先頭まで削除

Ctrl + w –カーソルから単語の先頭まで削除(つまり、1単語逆方向に削除)

Ctrl + y –カーソルの後に削除ショートカット(上記など)の1つを使用して切り取られた単語またはテキストを貼り付けます

Ctrl + xx –コマンドラインの開始と現在のカーソル位置の間を移動します(そして再び戻る)

Alt + b – 1単語後ろに移動します(またはカーソルが現在位置している単語の先頭に移動します)

Alt + f – 1単語前に移動します(またはカーソルが現在ある単語の終わりに移動します)

Alt + d –カーソルで始まる単語の最後まで削除(カーソルが単語の先頭にある場合は単語全体)

Alt + c –カーソルで始まる単語の終わりまで大文字にする(カーソルが単語の先頭にある場合は単語全体)

Alt + u –カーソルから単語の終わりまで大文字にする

Alt + l –カーソルから単語の終わりまで小文字にする

Alt + t –現在の単語を前の単語と入れ替えます

Ctrl + f – 1文字進む

Ctrl + b – 1文字後ろに移動

Ctrl + d –カーソルの下の文字を削除

Ctrl + h –カーソルの前の文字を削除

Ctrl + t –カーソルの下の文字を前の文字と入れ替えます

コマンド呼び出しのショートカット

Ctrl + r –履歴を逆方向に検索

Ctrl + g –履歴検索モードからの脱出

Ctrl + p –履歴内の前のコマンド(つまり、コマンド履歴をさかのぼります)

Ctrl + n –履歴内の次のコマンド(つまり、コマンド履歴を進む)Alt +。–前のコマンドの最後の単語を使用する

コマンドコントロールのショートカット

Ctrl + l –画面をクリアする

Ctrl + s –画面への出力を停止します(長時間実行する詳細コマンドの場合)

Ctrl + q –画面への出力を許可(以前に上記のコマンドを使用して停止した場合)

Ctrl + c –コマンドを終了します

Ctrl + z –コマンドの一時停止/停止

Bash Bang(!)コマンドBashには、!を使用する便利な機能もいくつかあります。(強打)bashコマンドでファンキーなことを行えるようにします。

!! –最後のコマンドを実行!blah – 'blah'で始まる最新のコマンドを実行(例:!ls)

!blah:p –!blahが実行するコマンドを出力します(これもコマンド履歴の最新のコマンドとして追加されます)

!$ –前のコマンドの最後の単語(Alt +と同じ)

!$:p –!$が置換する単語を出力します

!* –最後の単語を除く前のコマンド(たとえば、「_ find somefile.txt /」と入力すると、!*は「_find somefile.txt」を返します)

:p –何を出力する!代用する


2

Natural Text Editing>キー-プリセットプロファイルで有効。あなたは単に単語を削除することができます

  • 後方に alt + delete
  • と転送 fn + alt + delete
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.