OS XでXcodeのキャメルケース選択キーボードショートカットを模倣する


25

Xcodeでテキストを編集するのに非常に多くの時間を費やしています。CocoaText Systemの残りの部分でテキストを操作して、同じ体験を提供したいと思います。Xcodeで定期的に使用するカーソルキーボードショートカットには3つのバージョンがあります(簡潔にするために、前方の非選択変更バージョンのみを示しています)。

  1. + カーソル1サブワードを前方に移動(^ camelCase-> camel ^ Case-> camelCase ^)
  2. ⌥ Option+ カーソルを1単語前に移動
  3. ⌘ Command+ カーソルを行末に移動します

OS Xのデフォルトのキーバインドは、2と3尊重するが、1のXcodeの外では、との格差がある+ のように振る舞う⌘ Command+は。それほど頻繁に適用されるわけではありませんが、+ でMailなどの行末まで行くたびに、小さな爆竹が頭の中で鳴り響くようです。動作を「修正」するためにハッカーに投資したいと思っているのは、単に迷惑なことです。

古い領域をカバーすることを避けるために、私はすでにこの小さなtidbitセレクターのリストを知っていますが、サブワード選択のためのCocoa Text SystemのAPIを知りません。おそらくどこかにドキュメント化されていないAPIがありますか?


キーボードショートカットを使用してXcodeの外部で常にキャメルケースを選択しようとするわけではありませんが、そうするときはOS Xに準拠させたいと思います。


2
私のMac上で^は→デフォルトでスペースを切り替えて、それが→⌘のように動作しません
CousinCocaine

2
これは、システム環境設定でそのショートカットを無効にしていることを前提としています。
マットワイルディング

いや。OS X(Mavericks)では、⌃→のデフォルトの動作はスペースを切り替えます。osxdaily.com/2011/09/06/...
CousinCocaine

それも欲しい。YandexのPuntoSwitcherのような外部ツールを使用して、テキストボックスの入力カーソルを操作できると思います。
ДаниилПронин

回答:


2

申し訳ありませんが、あなたが望むことは不可能です。

これを行うXCodeキーバインディングを追加してみてください

"^\UF702" = "moveSubWordBackward:";                     /* Ctl-Left Arrow */
"^$\UF702" = "moveSubWordBackwardAndModifySelection:";  /* Ctl-Shift-Left Arrow */
"^\UF703" = "moveSubWordForward:";                      /* Ctl-Right Arrow */
"^$\UF703" = "moveSubWordForwardAndModifySelection:";   /* Ctl-Shift-Right Arrow */
"^\177" = "deleteSubWordBackward:";                     /* ctl-delete */
"^\UF728" = "deleteSubWordForward:";                    /* ctl-forwardDelete */

あなたの中に~/Library/KeyBindings/DefaultKeyBindings.dictファイルが、アプリケーションがこれらのメソッドに対応するために書かれていない限り、それは動作しません。既に述べたように、これらのメソッドは標準のテキストシステムの一部ではないため、アプリでのこれらの呼び出しは応答されないか、システムビープ音が鳴ります。


0

キャメルケース(サブワードとも呼ばれる)を適切に移動するには

^+ [サブワードを左に移動するには

^+ ]サブワードを右に移動するには

Xcode 6.1.1を実行しているOSX 10.10.1でこれを確認しました。


この質問の要点は、Xcodeのサブワードコマンドをその1つのアプリの外で、残りの標準アプリで取得することだと思います。
bmike

@bmike、おそらくそうです。その場合、この機能はOSではなくXcodeに固有であるため、おそらくこれをコーディングする必要があります。しかし、一つにはなり願ってい Xcodeのユーザーがそれを知っているだろうということ。
SaxDaddy 14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.