web-dev-qa-db-ja.com

OS Xターミナルでカーソルを単語単位で移動する方法はありますか?

組み合わせを知っています Ctrl+A 現在のコマンドの先頭にジャンプする Ctrl+E 最後に飛びます。

しかし、WordのようにWordごとにジャンプする方法はありますか。 Alt+/ Cocoaアプリケーションでは?

720
Arne

箱から出してあなたはかなり奇妙なを使用することができます Esc+F 次の言葉の最初に移動する Esc+B 現在のWordの先頭に移動します。

522
Kristian J.

Mac OS Xの場合 - 次のキーボードショートカットはデフォルトで機能します。ターミナル設定(キーボードタブの下)でOption keyをMetaのように動作させる必要があることに注意してください。

  • alt (⌥)+F 単語でジャンプするF orward
  • alt (⌥)+B ジャンプするにはB言葉でぎこちない

私は、単純なテキストナビゲーションのためのデフォルトのemacsキー割り当てがbashシェルでうまくいくように見えることを観察しました。あなたが使用することができます

  • alt (⌥)+D 現在のカーソル位置から始まるWordを削除する
  • ctrl+A 行の先頭にジャンプする
  • ctrl+E 行末にジャンプする
  • ctrl+K カーソル位置から始まる行を削除します。
  • ctrl+Y killバッファからテキストを貼り付ける
  • ctrl+R 履歴から過去に入力したコマンドを逆検索する
  • ctrl+S 前方検索(私にとってはzshで動作しますが、bashでは動作しません)
  • ctrl+F 文字で進む
  • ctrl+B charだけ後ろに移動する
  • ctrl+W カーソル位置から逆方向にWordを削除する
384
Varun Katta

これがあなたのやり方です

既定では、ターミナルにはWordごとに(左右に)移動するためのショートカットがあります。

  • esc+B (左)
  • esc+F (右)

あなたが設定することができます alt+ そして  これらのシーケンスを生成します。

  • ターミナル設定を開きます(cmd+,;
  • [設定]タブで、[キーボード]を選択し、⌥ ←がある場合はダブルクリックします。ない場合は追加します。
  • 必要に応じて修飾子を設定し、ボックスにショートカットキーを入力します。 esc+Bテキスト\033bを生成します(このテキストを手動で入力することはできません)。
  • Word-right(の繰り返し)esc+F \033fになります)

あるいは、textmateでこのブログ投稿を参照することもできます。

http://blog.macromates.com/2006/Word-movement-in-terminal/

273
Fil

iTerm2 に切り替えます。それは無料で、普通の古い端末よりはるかに良いものです。また、キーボードショートカットなど、カスタマイズのためのオプションがたくさんあります。

また、私はあなたが使うことができるのが大好きです cmd タブを切り替えるには、1-9を押します。それを試してみて、あなたは通常のターミナルに戻ることは決してないだろう:)

iterm2でカスタムキーボードの設定をする方法

  • ITerm2をインストールする
  • 起動して設定パネルに移動します。
  • キーボードプロファイルタブを選択してください
  • プロファイルを新しいものにコピーしてから、次のような矢印キーのショートカットを削除する必要があります。 ^Right/Left または、バックアップを気にしないのであれば、デフォルトのプロファイルからそれらを削除するだけです。
  • 次に、自分の変更したプロファイルが選択されていることを確認します(スター付き)。

Picture 1.png

  • 今すぐキーボードタブを選択します(一番上の行)

iTerm 2

  • 新しいキーボードショートカットを追加するためにプラスボタンをクリックしてください
  • 最初のボックスタイプ CMD+Left arrow
  • 2番目のボックスで「エスケープコードを送信する」を選択します
  • 3番目のボックスに文字を入力します B

Picture 2.png

  • 必要なキーの組み合わせで繰り返します。 escape+B 一つの単語を左に動かす escape+f 1ワード右に移動します。
  • あなたもセットアップしたいと思うかもしれません cmd+d カーソルの前の単語を削除するには escape+d

私はよく間違ったボタンを押します(cmd / control / alt)矢印キーを使って、私はそれらのボタンを持つ私の矢印キーの組み合わせをすべて前後にジャンプするように設定していますが、あなたに最も合うものをしてください。

157
cwd

実際にはもっと良い方法があります。ホールド option ( alt キーボードによっては)を押しながら左右に移動する矢印キーを押します。そのような単純な。

option
option

また ctrle 行末に移動します ctrla 始めに連れて行きます。

142
mdubez

私は持っています Alt+/ working:open Preferences"Settings"Keyboardを入力し、option cursor left to shellに文字列を送る:\ 033bと設定し、 - オプションの右カーソル to 文字列をShellに送信:\ 033f。他のコントロールキーの組み合わせにも使用できます。

78
Peter Hilton

実際には、あなたがどのシェルを使用しているかによって異なりますが、ほとんどのシェルは同様のバインディングを持っています。参照しているバインディング(例: Ctrl+A そして Ctrl+E)あなたが他の多くのプログラムで見つけるバインディングであり、彼らは年齢のために使用され、BTWもほとんどのUIアプリで動作します。

これがBashのデフォルトバインディングの外観です。

最も重要なBashキーボードショートカット

あなたはそれらをカスタマイズできることにも注意してください。あなたはファイルを作成する必要があります、あなたが望むような名前で、私は私の.bash_key_bindingsと命名し、それを私のホームディレクトリに置きます。そこにいくつかの一般的なbashオプションを設定することができますし、またキーバインディングを設定することができます。それらが確実に適用されるようにするには、起動時にbashが読み込む "。bashrc"という名前のファイルを修正する必要があります。存在しない場合は、次のように呼び出します。

bind -f ~/.bash_key_bindings

〜はホームディレクトリをbashで表したものです。上で述べたように、あなたが好きなようにファイルに名前を付けたり、バインドする正しいパス+名前を与えさえすれば好きな場所に置くこともできます。

私の.bash_key_bindingsファイルの抜粋をいくつか示します。

set meta-flag on
set input-meta on
set output-meta on
set convert-meta off
set show-all-if-ambiguous on
set bell-style none
set print-completions-horizontally off

これらは2、3のオプションを設定するだけです(例えばベルを無効にする。これはすべてbashウェブページで調べることができます)。

"A": self-insert
"B": self-insert
"C": self-insert
"D": self-insert
"E": self-insert
"F": self-insert
"G": self-insert
"H": self-insert
"I": self-insert
"J": self-insert

これらは、文字が単独で何もしないことを確実にするだけで、文字が「タイプされる」ことを確実にします(それらは自分自身をシェルに挿入します)。

"\C-dW": kill-Word
"\C-dL": kill-line
"\C-dw": backward-kill-Word
"\C-dl": backward-kill-line
"\C-da": kill-line

これはとても面白いです。私がヒットした場合 Ctrl+D 単独で(私は削除のためにdを選択しました)、何も起こりません。しかし、その後に小文字のwを入力すると、カーソルの左側にあるWordが削除されます。ただし、大文字を入力すると、カーソルの右側にある単語は削除されます。カーソルから始まる行全体に関して、lとLについても同様です。 "a"を入力すると、行全体が実際に削除されます(カーソルの前後のすべてのもの)。

私は1つ前の単語にジャンプしました Ctrl+F そして一つ後ろの言葉 Ctrl+B

"\C-f": forward-Word
"\C-b": backward-Word

ご覧のとおり、すぐにアクションにつながるショートカットを作成することも、文字シーケンスを開始してから1つ以上の文字を入力して次のようにアクションを実行することもできます。上記の例に示されています。

ですから、デフォルトのバインディングに満足していないのであれば、自由にカスタマイズしてください。詳細は bashマニュアルへのリンク です。

38
Mecki

たまたまVimユーザーなら、bashのvimモードを試すことができます。これを実行するか、あなたの~/.bashrcファイルに入れてください。

set -o vi

デフォルトでは挿入モードです。エスケープを打つと通常モードのVimと同じように動き回ることができるので、Wordによる動きはwまたはbであり、 通常の動きのキーも同様に機能します

14
jches

設定のキーボードタブでUse option as meta keyをチェックすると、forward-and backward-Wordと⌥FのためのデフォルトのemacsスタイルコマンドAlt+F)と⌥BAlt+B)それぞれ。

BashからZ-Shellへ を読むことをお勧めします。あなたのbash/zshの能力を高めたいのなら!

14
Matt

Mac OS X Lion 10.7以降、ターミナルマップ Option - Left/Right Arrow に Esc - b/f デフォルトでは、これは現在bashやこれらのemacs互換のキーバインディングを使う他のプログラムのために組み込まれています。

12
Chris Page

Bashでは、これらは Esc - B そして Esc - F。 Bashにはもっとたくさんのキーボードショートカットがあります。それらが何であるかを見るためにbind -pの出力を見てください。

8
Andy Lynch

iterm2'sPreferences> Profile> Keysの下にある下の+をクリックしますキーマッピングをクリックして新しいショートカットを記録します。 アクションの場合は、Send Escape Sequenceを選択し、逆方向および順方向にそれぞれbまたはfを入力します。

録音しようとしたときCtrl+)、キーボードショートカットフィールドで矢印が表示されないことに気付きました。デフォルトのMacのシステム設定>キーボード>ショートカット>ミッションコントロールのショートカットを無効にする必要があることがわかりました。デフォルトのショートカット標準の端末アプリについても同様です。

Keyboard system preferences

3
qix

Optionキーを押しながらカーソルを移動したい場所をクリックします。

2
Dan Alboteanu

ナチュラルテキスト編集 プリセットを使用してください。

enter image description here

基本的に、他のキーシーケンスの中で、Option + LeftArrowを^[bシーケンスに、Option + RightArrowを^[fにバインドします。

これは、Fish and bash、およびpsql端末で機能します。

0
Dziamid