OS X端末でCtrl + Left / Ctrl + Rightと同等


19

WindowsとLinuxでは、常にctrl+ またはctrl+ を押して、ターミナルの左または右の単語をスキップできました。テキストエディタでは、+ /は機能しているように見えますが、端末にサイコロはありません。Googleを検索したところ、仕事を主張する+ B/ を行うWikipediaページ以外は何も見つかりませんでしたFが、butとƒの文字を端末に印刷するだけです(またはを保持している場合はıとÏ )。何か案は?

回答:


12

キーを使用できますが、「メタ」キーとして使用するオプションを選択する必要があります。 代替テキスト

これを行うと、+ F+ Bは期待どおりに機能します。


素晴らしい...これは長い間私を夢中にさせてきました。ありがとう。
ロバートSチャシオ

2
また、apple.stackexchange.com / q / 1391/115でそのオプションの「欠点」を確認してください。
マーティンマルコンチーニ

クールな答え。+1
ソナーゲヌール

11

これも夢中になりましたが、Terminalを使用しないのでTerminal固有の修正は必要ありません。また、OSXボックスにSSHで接続できるようにするためには正しいキーバインドも使用する必要がありました。

また、個人的には、前述のようにキーについては気にしませんでした。Linuxで慣れているctrl+ /の組み合わせを維持したかった。

この問題を解決するために、次のものをmyに追加しました~/.profile

bind '"\e[5C": forward-word'
bind '"\e[5D": backward-word'
bind '"\e[1;5C": forward-word'
bind '"\e[1;5D": backward-word'

最初の2つはターミナルの bashに適用されることに注意してください。最後の2つは、iTerm2および着信ssh接続のbashに適用されます。キーボードエミュレーションが異なる理由を聞かないでください;)

記録については、このstackoverflowの答えのヒントのおかげで、実際にキーコードが何であるかを見つけることができました:cat > /dev/nullキーの組み合わせ中に送信された正確なキーコードを監視するために実行できます。

(私にとっては、実行cat > /dev/nullしてctrl+ を押すと生成され^[[1;5Dます。正確なキーコードは異なる場合がありますが、最初のコードは、サンプルコードに示すようにとして^[表され\eます。)

ところで、すべてのアクティブなbashキーバインドを表示するには、を実行しbind -pます。


私はxxdキーボード入力を調べるのに使うのが好きです。入力すると文字が表示され、xxdreturnを入力すると16進数で値が出力されます。
クリスページ

パーフェクト!私が探していたもの:)上記の「アプリ固有の」設定を行うことができなかったが、これはうまくいく!
bisko

control + left / rightがsysprefs>キーボード>ショートカット>exposéの「スイッチスペース」にマップされていないことを確認してください。他に空きスペースがないので、キーボード入力が機能していないように見えました。
sudo

6

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


5

viの使用方法がわかっている場合は、コマンドラインset -o viで、.bash_profileまたはいつでもコマンドラインを使用してvi行編集モードをオンにすることもできます。その後、viコマンドと挿入モードを切り替えることができます。したがって、エスケープを押してから、viコマンドを使用して行をナビゲートできます。

0 = move to beginning of line
$ = move to end of line
w = move forward one word
b = move backward one word

正しい位置に到達したら、他のviコマンドを使用して挿入モードまたは追加モードを開始したり、文字を1つずつ削除したりできます。


行の開始に0を使用できるとは知らなかったので、常に使用していました^
ジェイソンサラズ

1
@vxjasonxv:はい、^は最初の非空白文字に移動し、0は最初の列に移動します(おそらく既に気づいているかもしれませんが、他の人のためにそこに捨てるだろうと思ったのです)
ロバートSチャシオ

1
ああすごい、それだけでなく、私まだそれに気づいていませんでした!ああ、その機能(最初の非空白文字)の^は常に私を怒らせました。ありがとうございました。
ジェイソンサラズ

もちろん、ESC ^必要なときは素晴らしいことです。まったく別のことをしたいときだけ迷惑です:)
ocodo

3

ターミナルを開き、設定、キーボードに移動します。リストには、「ctrl cursor right」と「ctrl cursor left」があります。
割り当てられたアクションをそれぞれ「\ 033f」および「\ 033b」に変更すると、Altキーを失うことなく、ctrl+ およびctrl+ を使用して移動できるようになります。


2

と思われるesc+ Besc+は、F単語の最初と最後に移動するには、デフォルトでマッピングされます。ただし、私のシステムでは、押さえることはできませんescが、単語ごとに押す必要があります。


1
Escは決して修飾子ではありません。押すと「エスケープ」モードになり、shift / ctrl / metaなどとは異なり、物事のモーダルな方法と見なされます(とにかく物事のReadlineスキーム)
ocodo

0

OSの最新バージョンは、これをSpacesにマップします。スペースをオフにしても、ホットキーはこの隠れた場所で短絡する可能性があります。

Terminal.appカーソルキー:[システム環境設定]-> [ショートカット]-> [ミッションコントロール]->スペースを左に移動を無効にします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.