私は組み合わせを知っているCtrl+は、A現在のコマンドの先頭にジャンプすると、Ctrl+ E最後にジャンプします。
しかし、CocoaアプリケーションのAlt+ ←/のように、単語ごとにジャンプする方法はあります→か?
ALT
ショートカットは、最新のOS Xのバージョンにターミナルに追加されました。
私は組み合わせを知っているCtrl+は、A現在のコマンドの先頭にジャンプすると、Ctrl+ E最後にジャンプします。
しかし、CocoaアプリケーションのAlt+ ←/のように、単語ごとにジャンプする方法はあります→か?
ALT
ショートカットは、最新のOS Xのバージョンにターミナルに追加されました。
回答:
箱から出して、あなたは非常に奇妙使用することができますEsc+をF次の単語の先頭に移動し、Esc+ B現在の単語の先頭に移動します。
Esc
+をF
押すか、行の先頭で他のキーコンボを押すと、代わりに文字が挿入されます。迷惑!
~/.inputrc
。
Mac OS Xの場合-次のキーボードショートカットはデフォルトで機能します。ターミナル設定(キーボードタブの下)でオプションキーをメタのように機能させる必要があることに注意してください。
私は、単純なテキストナビゲーションのデフォルトのemacsキーバインディングがbashシェルで機能するように見えることを確認しました。使用できます
デフォルトでは、ターミナルには次のショートカットがあり、単語ごとに(左右に)移動します。
alt+ ←を設定して、→これらのシーケンスを生成することができます。
⌥ ←
そこにある場合は、ない場合は追加します。\033b
(手動でこのテキストを入力することはできません)。\033f
)または、textmateでこのブログ投稿を参照することもできます。
B
ために戻ったりF
するために、前方へのEsc+
フィールド
alt left
し、alt right
それらの配列を生成する
iTerm2に切り替えます。それは無料で、普通の古い端末よりもずっといいです。また、キーボードショートカットなど、カスタマイズのオプションが多数あります。
またcmd、1〜9を使用してタブを切り替えることができることも気に入っています。試してみてください。通常のターミナルに戻ることは決してありません:)
iterm2でカスタムキーボード設定をセットアップする方法
矢印キーで間違ったボタン(cmd/ control/ alt)を押すことが多いので、これらのボタンと矢印キーの組み合わせをすべて前後にジャンプするように設定していますが、自分に合った方法で行ってください。
Ctrl + Arrow Left
かRight
- Up
とDown
作品:/デフォルトとして新しいプロファイルを設定してとせずに試してみました
実際には、はるかに優れたアプローチがあります。ホールドoption(alt一部のキーボード上)を押し語で移動するために左または右の矢印キー。そのような単純な。
option←
option→
またctrle、行の最後に移動ctrlaし、最初に移動します。
[D
して[C
。これを修正するには、bind '"[D": backward-word'
およびbind '"[C": forward-word'
をmy に追加します.bashrc
。
.bashrc
ませんでした。(私はルビーマインを使用)
.bashrc
起動時にRubyMineが読み取るかどうかはわかりません。試してみてくださいecho "here"
、あなたは新しいターミナルを開いたときにそのメッセージが表示された場合に参照してください。また、ターミナルを閉じて再度開くかsource ~/.bashrc
、新しいファイルを読み取るために実行する必要があります。
私はAlt+ ←/ →作業しています:環境設定»設定»キーボードを開き、オプションカーソルのエントリを左に設定してシェルに文字列を送信します:\ 033b、オプションカーソルを右に設定して文字列をシェルに送信します:\ 033f。これを他のControlキーの組み合わせにも使用できます。
Enable option as meta key
た場合にのみ機能します。ちなみに、とてもかっこいいです。キーがはるかに便利Escキー+ BまたはEscキー+ Fと比較達することになるはずです
実際には、使用するシェルによって異なりますが、ほとんどのシェルには同様のバインディングがあります。あなたが参照しているバインディング(例:Ctrl+ AとCtrl+ E)は、他の多くのプログラムで見つかるバインディングであり、年齢に使用されます。BTWはほとんどの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+ Fに1つのワード後方Ctrl+B
"\C-f": forward-word
"\C-b": backward-word
ご覧のとおり、すぐにアクションにつながるショートカットを作成することも、文字シーケンスを開始するだけで1つ(または複数)の文字を入力して次のようにアクションを実行させるショートカットを作成することもできます。上記の例に示されています。
したがって、デフォルトのバインディングに満足できない場合は、自由にカスタマイズしてください。ここだbashのマニュアルへのリンクの詳細については。
command
キーコードは?あなたの例でcontrol
は\C
、ですが、どうcommand
ですか?
Meta
はbash(\M
)でマップされ、cmd + leftはになります\M-\e[D
。ただし、cmd + ...を何かにマップすることはできません。すべてのコマンドショートカットはターミナルアプリ自体によって処理され(したがって、飲み込まれます)、シェルに転送されないため、cmd + leftは「前のウィンドウ」にマップします。ターミナルウィンドウが開きます。申し訳ありませんが、それはターミナルアプリでは不可能です。
もしあなたがたまたま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の腕前を高めたいなら!
iTerm2 Build 3.3.4ユーザー向けの新しい回答:
ステップ1:(macOS X)システム設定>キーボード>ショートカットタブ> Mission Control(左パネル)を選択>「左にスペースを移動」および「右にスペースを移動」というラベルが付いたショートカットのチェックを外します
ステップ2:(iTerm2ビルド3.3.4)[設定]> [プロファイル]> [選択] * [デフォルト](左パネル)> [キー]タブ> "⌥->"と "⌥<-"の両方のエントリを削除>両方の "左オプション(⌥)キーを設定: "および"右オプション(⌥)キー: "からEsc +
シェルプロファイルをいじり回したり、劣ったmasOS(デフォルト)ターミナルをいじり回したり、厄介なEsc + F / Bを使用したり、すすぎや繰り返しを行ったりする必要はありません。
取引完了!
私の仲間のプログラマー、このヒントをお楽しみください!
以前に回答set -o vi
したように~/.bashrc
、使用するvi
/ vim
キーバインディングを追加するか、次の部分を追加.bashrc
しCtrl
て矢印キーで移動できます。
# bindings to move 1 word left/right with ctrl+left/right in terminal, just some apple stuff!
bind '"\e[5C": forward-word'
bind '"\e[5D": backward-word'
# bindings to move 1 word left/right with ctrl+left/right in iTerm2, just some apple stuff!
bind '"\e[1;5C": forward-word'
bind '"\e[1;5D": backward-word'
これらのコード行の効果を開始するには、source ~/.bashrc
または新しい端末セッションを開始します。