+は現在のコマンドの最初にジャンプし、Ctrl+は最後にジャンプするという組み合わせを知っています。ACtrlE
しかし、CocoaアプリケーションのAlt+ ←/のように、単語ごとにジャンプする方法はありますか?→
+は現在のコマンドの最初にジャンプし、Ctrl+は最後にジャンプするという組み合わせを知っています。ACtrlE
しかし、CocoaアプリケーションのAlt+ ←/のように、単語ごとにジャンプする方法はありますか?→
Out of the box you can use the quite bizarre Esc+F to move to the beginning of the next word and Esc+B to move to the beginning of the current word.
Mac OS X では、次のキーボード ショートカットがデフォルトで機能します。ターミナル設定(キーボードタブの下)でオプションキーをメタのように機能させる必要があることに注意してください
私は、単純なテキスト ナビゲーション用のデフォルトの emacs キー バインディングが bash シェルで動作するように見えることを観察しました。使用できます
iTerm2に切り替えます。それは無料で、普通の古い端末よりもはるかに優れています。また、キーボード ショートカットなどのカスタマイズ用のオプションも多数あります。
cmdまた、1-9 を使用してタブを切り替えることができるのも気に入っています。試してみると、通常の端末に戻ることはありません:)
iterm2 でカスタム キーボード設定をセットアップする方法
私は矢印キーで間違ったボタン ( cmd/ control/ alt) を押すことがよくあるので、矢印キーの組み合わせとこれらのボタンをすべて前後の単語にジャンプするように設定していますが、自分に最適なものを実行してください。
実はもっと良いアプローチがあります。option(一部のキーボードaltでは) を押したまま、左または右の矢印キーを押して単語単位で移動します。そのような単純な。
option←
option→
またctrle、行の最後にctrla移動し、先頭に移動します。
I have Alt+←/→ working: open Preferences » Settings » Keyboard, set the entry for option cursor left to send string to shell: \033b, and set option cursor right to send string to shell: \033f. You can also use this for other Control key combinations.
実際には、使用するシェルによって異なりますが、ほとんどのシェルには同様のバインディングがあります。あなたが参照しているバインディング (例: Ctrl+AおよびCtrl+ E) は、他の多くのプログラムで見られるバインディングであり、古くから使用されています。ところで、ほとんどの UI アプリでも機能します。
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
これらはいくつかのオプションを設定するだけです (たとえば、ベルを無効にします。これはすべて bash Web ページで調べることができます)。
"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 を入力すると、カーソルの左側の単語が削除されます。ただし、大文字を入力すると、カーソルの右側の単語が削除されます。カーソルから始まる行全体に関する l と L についても同様です。「a」と入力すると、実際には行全体が削除されます (カーソルの前後のすべて)。
Ctrl+ に 1 単語前方に、 +Fに 1 単語後方にジャンプするように配置しましたCtrl。B
"\C-f": forward-word
"\C-b": backward-word
ご覧のとおり、すぐにアクションにつながるショートカットを作成することも、文字シーケンスを開始するだけのショートカットを作成してから、1 つ (または複数) の文字を入力してアクションを実行させることもできます。上記の例に示されています。
したがって、デフォルトのバインディングに満足できない場合は、自由にカスタマイズしてください。詳細については、bash マニュアルへのリンクを次に示します。
Option キーを押しながら、カーソルを移動する場所をクリックします。
たまたま Vim ユーザーである場合は、bash の vim モードを試すことができます。~/.bashrc
これを実行するか、ファイルに入れます。
set -o vi
デフォルトでは挿入モードになっています。エスケープを押すと、通常モードの Vim と同じように動き回ることができるため、単語単位の移動はw
またはb
であり、通常の移動キーも機能します。
設定のキーボードタブをチェックインするUse option as meta key
と、デフォルトの emacs スタイルのコマンドで、前方ワードと後方ワード、および⌥F
( Alt+ F) と⌥B
( Alt+ B) がそれぞれ表示されます。
From Bash to Z-Shell を読むことをお勧めします。bash/zsh の腕前を上げたいなら!
Mac OS X Lion 10.7 以降、ターミナルはデフォルトで-OptionにLeft/Right Arrowマップされるため、これらの emacs 互換キーバインドを使用する bash やその他のプログラムに組み込まれています。Escb/f
In Bash, these are bound to Esc-B and Esc-F.
Bash has many, many more keyboard shortcuts; have a look at the output of bind -p
to see what they are.
iTerm2 Build 3.3.4 ユーザー向けの新しい回答:
ステップ 1: (macOS X) [システム環境設定] > [キーボード] > [ショートカット] タブ > [ミッション コントロール] を選択 (左側のパネル) > [スペースを左に移動] および [スペースを右に移動] というラベルの付いたショートカットのチェックを外します
ステップ 2: (iTerm2 Build 3.3.4) [設定] > [プロファイル] > [* デフォルト] を選択 (左パネル) > [キー] タブ > 「⌥->」と「⌥<-」の両方のエントリを削除 > 「左オプション (⌥) キー」の両方を設定:" および "Right Option (⌥) Key:" から Esc+
シェル プロファイルをいじったり、下位の masOS (デフォルト) ターミナルをいじったり、面倒な Esc+F/B をいじったり、意味のないことを繰り返したりする必要はありません。
取引完了!!!
仲間のプログラマーの皆さん、このヒントをお楽しみください!
ここで @cris-page によって既に述べられているように、[ターミナル] > [設定] > [設定] > [プロファイル] > [キーボード] の [オプションをメタ キーとして使用] オプションをチェックするだけです。
ただし、macOS Catalina (10.15) 以降では、zshが新しく追加されたユーザーのデフォルト シェルになることに注意してください。そのデフォルト設定では、空白のみが単語境界と見なされますが、古いbashでは、meta-left/right が最も近い非- にジャンプします。英数字( vimに慣れている人にとってはB
/W
ではなくb
/に似ています):w
v----v- bash jumps here
$ vim some-folder/what.txt_<- jump left twice from here
^---^- zsh jumps here by default
(同様の動きはメタバックスペースにも当てはまります)
zsh コマンド ライン エディターのナビゲーションを bash と同じように機能させる方法は複数あります。そのような方法の 1 つを次に示します。
# Place in your profile init script, e.g. `~/.zshrc`
autoload -U select-word-style
select-word-style bash