Зробіть Mac OS X “Option-Arrow” так, як Windows “Ctrl-Arrow”


21

Я покладаюся на команду " Ctrl- " в Windows, щоб орієнтуватися в текстових документах.

Ця корисна комбінація клавіш швидко приведе мене до початку наступного слова. Наприклад, наступна послідовність ілюструє, що станеться з розташуванням курсору після послідовних натискань 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, прив'язану до цих комбінацій клавіш), тому я шукаю пропозиції.

Чи існують якісь інструменти, які змінять це для мене?

Як би ви запропонували "виправити" це?

Спасибі

EDIT

Мені вдалося зробити "Сервіс" в 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 тричі: до кінця поточного слова, до кінця наступного слова, а потім до початку наступного слова). Я також включив версію, яка працює з цим, ⇧ Shiftщоб ви могли вибрати текст у процесі роботи.

Caveat: це працюватиме лише в додатках какао, але я думаю, що нормальна ⌥ Optionнавігація зі стрілками теж. Також переконайтеся, що перезавантажте додатки!


Кому! Просто те, на що я сподівався ... дякую! Дозвольте спробувати, тоді я позначу відповідь.
Стів

Дуже дякую! Працював як шарм. FYI "Ключові прив'язки" до "KeyBindings" ... Я використав "KeyBindings", і це спрацювало. Не впевнений, чи має це значення. Занадто поганий Xcode замінює їх власними, менш потужними, Ключовими прив'язками.
Стів

Ну, так, я мав на увазі KeyBindings! Xcode - це приємно, тому що ви можете орієнтуватися в підсловах camelCase.
jtbandes

Мені подобається camelCase nav. В ідеалі, я хотів би, щоб поведінка Visual Studio в Xcode ... ну добре.
Стів

Ви можете, принаймні, налаштувати Xcode. У налаштуваннях є вкладка щодо зміни ключових прив’язок.
jtbandes

5

Те, що ви можете спробувати. Я не перевіряв їх, щоб перевірити, чи будуть вони виконувати потрібну вам функцію.

Існує безкоштовна утиліта з відкритим кодом для перекодування ключових команд для Mac OS X під назвою DoubleCommand . Це розширення ядра, тому воно працює на дуже низькому рівні.

Ще одна безкоштовна програма, яку рекомендують перевірити користувачі DoubleCommand - KeyRemap4MacBook . Вам потрібно використовувати те чи інше; вони конфліктуватимуть, якщо вони обидва встановлені на вашому Mac.


1
Використання KeyRemap4MacBook в OS X 10.11.x для управління Control + [Arrow], як у Windows, прокручуйте вниз, доки не знайдете для користувачів ПК, а потім встановіть прапорець (для мене, опція шість) "Використовувати управління стилем ПК + вгору / вниз / вліво / вправо ". Є й інші дуже корисні варіанти. Безумовно, голосуючи за цю відповідь, і, крім того, вона не коштувала зайвих сотень доларів!
Іван,

1

Після років роздратованих відображень за замовчуванням OSX я переключив свої клавіші Command і Control і хотів, щоб кнопки Control + Arrow забезпечували функцію переміщення вперед, перехід слово назад, а не BOL / EOL. Прийнята відповідь працювала для мене, за винятком параметра ^, зміненого на @, оскільки я тепер використовую Control замість Command. Я також зіставив менш використовувані функції BOL / EOL на комбінації клавіш Option + Arrow.

{
    "@\UF702" = ("moveWordBackward:");
    "@$\UF702" = ("moveWordBackwardAndModifySelection:");
    "~\UF702" = ("moveToBeginningOfLine:");
    "~$\UF702" = ("moveToBeginningOfLineAndModifySelection:");
    "@\UF703" = ("moveWordForward:", "moveWordForward:", "moveWordBackward:");
    "@$\UF703" = ("moveWordForwardAndModifySelection:", "moveWordForwardAndModifySelection:", "moveWordBackwardAndModifySelection:");    
    "~\UF703" = ("moveToEndOfLine:");
    "~$\UF703" = ("moveToEndOfLineAndModifySelection:");
}
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.