Macターミナルでコマンドラインコマンドの前の部分にジャンプする方法はありますか?


9

多くの場合、bashシェルで長いコマンド(多くの引数、Webアドレス、ルートなどを持つもの)を書き出すことがよくあります。コマンドの先頭に「バンドルexec」を置くのを忘れたり、何かのスペルを間違えたり、引用符を忘れたりしたことに気づくことがよくあります。あるいは、「vim」の代わりに「cd」を置くのと同じくらい簡単なことです。

したがって、コマンドの先頭に戻るまで、左矢印キーを押し続けるという退屈なプロセスが始まります。

もう一度行の先頭にジャンプする方法はありますか?


2
デフォルトのターミナルアプリを削除して、iTermをダウンロードすることもできます
Clement Herreman

どうして?チェックしたところ、動作はほぼ同じようです。(現在、ホームキーは機能しますが、他の重要ではないキーがあるので)。すべての設定、構成、タスクをやり直す価値があると思われるものは何ですか?
GlyphGryph '25年

これは.inputrcでセットアップできるもののようです
Rob

また、一度に1単語ずつジャンプするには、⌥Bと⌥Fを使用して前後にジャンプします。
fideli

@fideli、ただし「Use Option as meta key」を有効にした場合のみ。Mac OS X Lion 10.7以降、ターミナルのデフォルトのキーボード設定はOption-左矢印/右矢印をEsc-b / fにマッピングするため、設定は必要ありません。
Chris Page

回答:


12

^ Aと^ Eに加えて、

  • Esc- bバック一つの単語をジャンプします
  • Esc- f前方に一つの単語をジャンプします
  • Ctrl- b1つの文字を移動するには
  • Ctrl- f1つの文字を移動するには

移動のコマンドについては、bashのマニュアルを参照してください。


注意すべきこと-これはEmacsからのものでありemacs、shelloptsにオプションを追加することで、さらに多くを得ることができます。
TC1、2011年

6

Emacsコマンドを使用できます。例:

  • ctrl-Aは、コマンドラインの先頭に移動します
  • ctrl-Eコマンドラインの最後に移動します

これはbashであり、Macに固有のものではありません。


3
set -o vi

その後にEsc続く

^行の始まり行の $終わり b1ワードバック wワード1ワードフォワード


私はVimのかなりのファンなので、あなたの答えの原則は私には素晴らしいですが、モーダルコマンドライン編集は、特にタイプできるように戻す方法についての言及がないと、OPを少し混乱させるかもしれません!i(挿入)を使用して挿入モードに戻り、カーソルの前に入力するか、a(追加)カーソルの後に入力します。
Cascabel 2011年

私は何十年も私の主要なテキストエディターとしてviを使用してきましたが、それでもシェルにはemacsキーバインディングを好んでいます。
キーストンプソン、

実際、OPはすべてのテキスト編集にvimを使用しているため、viの標準を設定できることを知ることは非常に便利です。どうもありがとう!
GlyphGryph 2011年

@キーストンプソン:私は同じことを考えていました。シェルがこのモード切り替えのものとうまく混合しないと思っただけです(vviモードのイライラするキーのように)。しかし、しばらくしてvimに感染したので、試してみることをお勧めします:P
kizzx2 '27 / 10/27

1

これはあなたの質問には答えませんが、場合によっては問題を解決するかもしれません。

でトークンあなたの前のコマンドで置換されています。したがって、コマンドの先頭に何かを追加するのを忘れた場合(など)、次のようなことができますbash!!sudo

# ./super_secret_command --with-args
=> ACCESS DENIED

# sudo !!
sudo ./super_secret_command --with-args
=> ACCESS GRANTED

0

Ctrl/Opt+Left/Rightターミナルで使用する通常のショートカットを設定できます。そうすれば、ターミナルを使用しているときにすべてを再学習する必要はありません。

ターミナル»設定…»設定»(プロファイルを選択)»キーボードを開きます

そこで、次のショートカットを割り当てます。

  • Control + Cursor Left文字列\033[1~をシェルに送信します
  • Control + Cursor Right文字列\033[4~をシェルに送信します
  • Option + Cursor Left文字列\033[5Dをシェルに送信します
  • Option + Cursor Right文字列\033[5Cをシェルに送信します

私は以下も好きです(Fn + Left/Right):

  • Home文字列\033[1~をシェルに送信します
  • End文字列\033[4~をシェルに送信します

ここに画像の説明を入力してください


ライオンに⌥←と⌥→にバインドされているM-bM-f、デフォルトで。また、⌃←と⌃→は、スペースを変更するためのデフォルトのショートカットです。
Lri

0

私はこれをMacではなくCygwinで必要としましたが、以下を追加する~/.inputrcことも役立つかもしれません:

"\e[1;5C": forward-word   # ctrl + right
"\e[1;5D": backward-word  # ctrl + left 

0

私はMacユーザーではありませんが、Homeキーはどうですか?これはLinux端末では問題なく動作します。


1
いいえ、ターミナルウィンドウの上部にスクロールします。
GlyphGryph

デフォルトでは、HomeとEndはビューをスクロールします。これはMacの標準的な動作です。デフォルトでは、Shift-HomeとShift-Endはそれぞれ「ESC [H」と「ESC [F」を送信します。これらはすべて、[ターミナル]> [設定]> [設定]> [プロファイル]>キーボードでカスタマイズできます
Chris Page

0

Mac Os Xでコマンドラインを移動する最良の方法は、私のプロファイルを使用することです:https : //github.com/lingtalfi/mac-terminal-shortcuts

次の(直感的な)ショートカットを提供します。

ALT-left: move one word backward
ALT-right: move one word forward
CTRL-left: move to the beginning of the line
CTRL-right: move to the end of the line
ALT-backspace: kill one word backward
ALT-del: kill one word forward
ALT-up: set word after cursor to uppercase
ALT-down: set word after cursor to lowercase
home: move to the beginning of the line
end: move to the end of the line    
CTRL-backspace: Same as ALT-backspace
CTRL-del: Same as ALT-del
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.