Mac OS Xの「Option-Arrow」をWindowsの「Ctrl-Arrow」のように機能させる


20

私は、Windowsの「Ctrl- 」コマンドを使用して、テキストドキュメントをナビゲートします。

この便利なキーコンボを使用すると、すぐに次の単語の先頭に移動できます。たとえば、次のシーケンスは、Ctrl-を連続して押した後にカーソル位置に何が起こるかを示しています(「^」はカーソルを表します)。

^The quick brown fox jumped over the lazy dog
The ^quick brown fox jumped over the lazy dog
The quick ^brown fox jumped over the lazy dog
The quick brown ^fox jumped over the lazy dog
The quick brown fox ^jumped over the lazy dog
...

そして、代わりにを押し始めると、カーソルがドキュメント内のまったく同じ場所に移動し、反対方向に移動します(これは、カーソルの位置が予測可能であるため理想的です。編集):

The quick brown fox ^jumped over the lazy dog
The quick brown ^fox jumped over the lazy dog
The quick ^brown fox jumped over the lazy dog
The ^quick brown fox jumped over the lazy dog
^The quick brown fox jumped over the lazy dog
...

Mac OS Xには同様のキーボードショートカットがあります(Option-- Ctrl」に「Option」をマッピングしたため、慣れ親しんだ方法で同じ機能を利用できます)。

ただし、次に示すように、右矢印キーを使用すると、「Option- Arrow」によって現在の単語の末尾に移動します。

^The quick brown fox jumped over the lazy dog
The^ quick brown fox jumped over the lazy dog
The quick^ brown fox jumped over the lazy dog
The quick brown^ fox jumped over the lazy dog
The quick brown fox^ jumped over the lazy dog
...

さらに悪いことに、他の方向に進んでも、前進するのと同じ場所に戻ることはできません。最後の単語の先頭に移動します。

The quick brown fox^ jumped over the lazy dog
The quick brown ^fox jumped over the lazy dog
The quick ^brown fox jumped over the lazy dog
The ^quick brown fox jumped over the lazy dog
^The quick brown fox jumped over the lazy dog
...

WindowsとMacを頻繁に切り替える必要があるため、これは非常にイライラします。また、現在の単語の最後に移動することはほとんどありません( " Shift"を保持していない限り、これが必要なのはなぜですか? )。私はいつも次の単語の先頭にスキップしたいです。

私はMacバージョンを同じように動作させるためにいくつかの時間を費やしたいと思います(ソフトウェアを購入し、これらのキーボードショートカットに結び付けられたカスタムApplescriptコマンドを記述します)ので、提案を探しています。

これを変更する既存のツールはありますか?

「修正」をどのように提案しますか?

ありがとう

編集

Automatorで「サービス」を作成でき、次のAppleScriptを使用しました。

on run {input, parameters}

    tell application "System Events" to key code 124 using {option down}
    tell application "System Events" to key code 124

end run

次に、システム環境設定の「キーボード」設定を使用して、このサービスを「Command- 」キーストロークに関連付けました。

ただし、これを機能させるには、Commandキーから指を離す必要があります。また、速度が遅く、動作するために最も必要なアプリケーション(Xcode)では動作しないようです。

回答:


22

以下に、説明どおりに⌃ Control+矢印キーを使用する方法を示します。次のプロパティリストをにコピーします~/Library/KeyBindings/DefaultKeyBinding.dict(ディレクトリが存在しない場合は作成できます)。

{
    "^\UF703" = ("moveWordForward:", "moveWordForward:", "moveWordBackward:");
    "^$\UF703" = ("moveWordForwardAndModifySelection:", "moveWordForwardAndModifySelection:", "moveWordBackwardAndModifySelection:");
}

これにより、⌃ Control+矢印が設定され、次の単語の先頭に移動します(OS Xの通常のナビゲーションを3回使用して、現在の単語の末尾、次の単語の末尾、次に次の単語の先頭に戻ります)。また、⇧ Shift使用するテキストを選択できるように機能するバージョンも含まれています。

警告:これはCocoaアプリでのみ機能しますが、通常の⌥ Option+矢印ナビゲーションも機能すると思います。また、アプリを必ず再起動してください!


おっと!私が望んでいたことは...ありがとうございます!試してみましょう。答えをマークします。
スティーブ

本当にありがとう!魅力のように働いた。参考までに、「キーバインディング」と「キーバインディング」...「キーバインディング」を使用しました。違いがあるかどうかはわかりません。あまりにも悪いXcodeは、独自の、より強力ではないキーバインドでこれらをオーバーライドします。
スティーブ

おっと、はい、キーバインドを意味しました!キャメルケースのサブワードをナビゲートできるので、Xcodeはいい感じです。
jtbandes

キャメルケースナビゲーションが好きです。理想的には、XcodeでのVisual Studioの動作が欲しいです...まあ。
スティーブ

少なくとも、Xcodeをカスタマイズできます。環境設定には、キーバインドを変更するためのタブがあります。
jtbandes

5

あなたが試すかもしれないこと。これらをテストして、必要な機能を実行するかどうかを確認していません。

DoubleCommandと呼ばれる、Mac OS Xのキーコマンドを再マッピングするための無料のオープンソースユーティリティがあります。これはカーネル拡張なので、非常に低いレベルで機能します。

DoubleCommandの人々がチェックアウトすることを推奨するもう1つの無料プログラムはKeyRemap4MacBookです。どちらかを使用する必要があります。両方がMacにインストールされている場合、競合します。


1
OS X 10.11.xでKeyRemap4MacBookを使用して、Windowsの場合のようにControl + [Arrow]が下にスクロールして、PCユーザーの場合は「PCスタイルコントロール+上/下/左/右を使用」をチェックします「。他にも非常に便利なオプションがあります。間違いなくこの答えに賛成であり、それに加えて追加の百ドルはかかりませんでした!
ジョン

1

煩わしいOSXのデフォルトマッピングが何年も続いた後、CommandキーとControlキーを切り替えて、Control +矢印キーでBOL / EOLの代わりに単語の前方への移動、単語の後方への移動機能を提供したいと考えました。コマンドの代わりにControlを使用するようになったため、^が@に変更されたことを除いて、受け入れられた答えは私のために働きました。また、使用頻度の低いBOL / EOL機能をOption +矢印キーの組み合わせにマッピングしました。

{
    "@\UF702" = ("moveWordBackward:");
    "@$\UF702" = ("moveWordBackwardAndModifySelection:");
    "~\UF702" = ("moveToBeginningOfLine:");
    "~$\UF702" = ("moveToBeginningOfLineAndModifySelection:");
    "@\UF703" = ("moveWordForward:", "moveWordForward:", "moveWordBackward:");
    "@$\UF703" = ("moveWordForwardAndModifySelection:", "moveWordForwardAndModifySelection:", "moveWordBackwardAndModifySelection:");    
    "~\UF703" = ("moveToEndOfLine:");
    "~$\UF703" = ("moveToEndOfLineAndModifySelection:");
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.