回答:
便利なことですが、Terminalはあなたが求める機能を簡単に提供することはできません。
理由は、ターミナル内で実行されるプログラムには、カーソルを行の先頭/末尾に移動するためのさまざまなルールがあるためです。次に例を示します。
bash
(および他のシェル)CtrlAとCtrlEvi
を使用0して$/Shift4他のプログラムは他のキーを使用する場合があります。行の先頭/末尾にカーソルを配置するためのユニバーサルキーの組み合わせはありません。
もちろん、ターミナルは多くの一般的なプログラムのキーの組み合わせのリストを維持し、実行中のものをチェックして正しいキーを送信するか、シェル内の行の先頭にカーソルを移動 like ←のようなメニュー項目を提供してから送信することができますCtrlA舞台裏で。しかし、Appleのエンジニアは、CLIの領域に挑戦すれば、その特異性を知っていると考えたと思います。
注意点として、ターミナルが提供Option←してOption→いる振る舞うでbash
あなたが期待通りと前/次の単語の先頭にカーソルを移動します。これは、これらのキーの組み合わせがEscbandにマッピングされているためですEscb(詳細についてはman bash
、「移動用コマンド」セクションを参照してください)。ではvi
、たとえば、後者(種類)のみが機能します(この回答の最後でvi
、Option←およびで動作するように設定する方法を示しますOption→)。
しかし、おかげでのAutomator、AppleScriptとbashのエイリアスにあなたが得ることができる⌘←と⌘→して仕事にbash
(そしておそらく他のシェル)とvi
。
最初のステップは、マップにある⌘←と⌘→するCtrlAとCtrlE。2番目のステップでは、and vi
を尊重するように設定する方法を示します(その結果、andと互換性があります)。CtrlACtrlEvi
⌘←⌘→
マップ⌘←と⌘→するCtrlAと、CtrlE
を押し+、「左カーソル」、「Control-Shift」を修飾子として選択し、アクション「テキストを送信:」を選択します。次にCtrlA(\001
テキストフィールドに表示されます)を押して、次の確認を行いOKます。
(この回答の以前のバージョンでは、「Shift」を修飾子として使用しました。この設定⌘shift←は、⌘すぐに手を離さないと、前の「ターミナル」タブを表示すると競合することに気付きました。修正します。)
「右カーソル」のキーの組み合わせを追加しますが、CtrlE(\005
テキストフィールドに表示されます)を押します。で確認しOKます。
Automatorを開き(たとえば、ヒット⌘spaceしてSpotlightを起動し、Automatorと入力します)、[ファイル]> [新規]を選択し、Service
次を選択します。
Run AppleScript
右ペインにドラッグします。
次のスクリプトを入力します。
on run {input, parameters}
tell application "System Events"
tell application process "Terminal"
key code 123 using {shift down, control down}
end tell
end tell
end run
として保存Move Cursor to Beginning of Line
:
このスクリプトで手順4.〜6.を繰り返します。
on run {input, parameters}
tell application "System Events"
tell application process "Terminal"
key code 124 using {shift down, control down}
end tell
end tell
end run
として保存Move Cursor to End of Line
:
これは、ターミナル>サービスが現在どのように見えるかです:
vi
尊重するように設定しCtrlA、CtrlE
.bashrc
お気に入りのエディターで開き、次の行を追加します。
alias vi='vim -c "map <C-A> 0" -c "map <C-E> $" -c "map <Esc>b B" -c "map <Esc>f E"'
最初の二つmap
のコマンドは言うvim
解釈するControlEとControlAよう$と0、それぞれ、先頭または行の末尾にカーソルを移動しています。
最後の二つmap
のコマンドが伝えvim
押したとき、あなたが期待するよう一度にカーソル1ワードを移動するoption←とOption→。
注意事項
⌘←またはを押す⌘→瞬間とカーソルが実際に移動する瞬間との間に短い遅延があることに気付くでしょう。
CtrlA/ を尊重するプログラムでのみ機能CtrlEすることを覚えておいてください。そのため、ターミナルで使用する各プログラムの特定のキーの組み合わせを学習したい場合があります。
(macOS Sierra 10.12.4でテスト済み)
⌘
vi
ですが、端末とはまったく異なるアプリケーションである外部情報をすべて除外することで改善できます。