846

+は現在のコマンドの最初にジャンプし、Ctrl+は最後にジャンプするという組み合わせを知っています。ACtrlE

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

4

18 に答える 18

621

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.

于 2008-09-17T09:04:01.687 に答える
489

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

  • alt (⌥)+前方に 1 単語Fジャンプ
  • alt (⌥)+後方に 1 単語Bジャンプ

私は、単純なテキスト ナビゲーション用のデフォルトの emacs キー バインディングが bash シェルで動作するように見えることを観察しました。使用できます

  • alt (⌥)+D現在のカーソル位置から始まる単語を削除するには
  • ctrl+ 行頭Aにジャンプ
  • ctrl+E行末にジャンプ
  • ctrl+Kカーソル位置から始まる行を削除するには
  • ctrl+Yキル バッファからテキストを貼り付ける
  • ctrl+R過去に入力したコマンドを履歴から逆検索する
  • ctrl+S前方検索 (zsh では動作しますが、bash では動作しません)
  • ctrl+ F1文字分進む
  • ctrl+B文字単位で後方に移動する
  • ctrl+W単語をカーソル位置から後方に削除する
于 2011-04-04T19:00:13.680 に答える
297
于 2008-09-17T09:01:23.643 に答える
186

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

cmdまた、1-9 を使用してタブを切り替えることができるのも気に入っています。試してみると、通常の端末に戻ることはありません:)

iterm2 でカスタム キーボード設定をセットアップする方法

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

写真1.png

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

iTerm2

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

写真2.png

  • 必要なキーの組み合わせで繰り返します。escape+Bは 1 単語を左に移動し、escape+fは 1 単語を右に移動します。
  • +を設定して、カーソルの前の単語をcmd+で削除することもできます。descaped

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

于 2011-11-24T00:39:30.750 に答える
165

実はもっと良いアプローチがあります。option(一部のキーボードaltでは) を押したまま、左または右の矢印キーを押して単語単位で移動します。そのような単純な。

option
option

またctrle、行の最後にctrla移動し、先頭に移動します。

于 2012-12-08T17:55:11.563 に答える
79

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.

于 2008-09-17T09:03:17.913 に答える
38

実際には、使用するシェルによって異なりますが、ほとんどのシェルには同様のバインディングがあります。あなたが参照しているバインディング (例: Ctrl+AおよびCtrl+ E) は、他の多くのプログラムで見られるバインディングであり、古くから使用されています。ところで、ほとんどの 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

これらはいくつかのオプションを設定するだけです (たとえば、ベルを無効にします。これはすべて 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 単語後方にジャンプするように配置しましたCtrlB

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

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

したがって、デフォルトのバインディングに満足できない場合は、自由にカスタマイズしてください。詳細については、bash マニュアルへのリンクを次に示します。

于 2008-09-17T21:19:20.703 に答える
27

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

于 2019-04-11T19:23:48.177 に答える
17

たまたま Vim ユーザーである場合は、bash の vim モードを試すことができます。~/.bashrcこれを実行するか、ファイルに入れます。

set -o vi

デフォルトでは挿入モードになっています。エスケープを押すと、通常モードの Vim と同じように動き回ることができるため、単語単位の移動はwまたはbであり、通常の移動キーも機能します。

于 2011-08-11T23:03:08.283 に答える
15

設定のキーボードタブをチェックインするUse option as meta keyと、デフォルトの emacs スタイルのコマンドで、前方ワードと後方ワード、および⌥F( Alt+ F) と⌥B( Alt+ B) がそれぞれ表示されます。

From Bash to Z-Shell を読むことをお勧めします。bash/zsh の腕前を上げたいなら!

于 2008-09-17T09:09:23.420 に答える
14

Mac OS X Lion 10.7 以降、ターミナルはデフォルトで-OptionLeft/Right Arrowマップされるため、これらの emacs 互換キーバインドを使用する bash やその他のプログラムに組み込まれています。Escb/f

于 2011-08-12T01:03:03.257 に答える
8

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.

于 2008-09-17T09:08:22.347 に答える
1

iTerm2 Build 3.3.4 ユーザー向けの新しい回答:

ステップ 1: (macOS X) [システム環境設定] > [キーボード] > [ショートカット] タブ > [ミッション コントロール] を選択 (左側のパネル) > [スペースを左に移動] および [スペースを右に移動] というラベルの付いたショートカットのチェックを外します

ステップ 2: (iTerm2 Build 3.3.4) [設定] > [プロファイル] > [* デフォルト] を選択 (左パネル) > [キー] タブ > 「⌥->」と「⌥<-」の両方のエントリを削除 > 「左オプション (⌥) キー」の両方を設定:" および "Right Option (⌥) Key:" から Esc+

シェル プロファイルをいじったり、下位の masOS (デフォルト) ターミナルをいじったり、面倒な Esc+F/B をいじったり、意味のないことを繰り返したりする必要はありません。

取引完了!!!

仲間のプログラマーの皆さん、このヒントをお楽しみください!

于 2019-10-01T18:11:02.687 に答える
0

ここで @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

于 2021-09-09T08:15:32.647 に答える