Заставьте 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, привязанную к этим сочетаниям клавиш), поэтому я ищу предложения.

Существуют ли какие-либо инструменты, которые изменит это для меня?

Как бы вы предложили "исправить" это?

Благодарность

РЕДАКТИРОВАТЬ

Я смог сделать «Сервис» в 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можно работать, чтобы вы могли выбирать текст по мере необходимости.

Предостережение: это будет работать только в приложениях Какао, но я думаю, что нормальная ⌥ Optionнавигация + стрелки тоже. Кроме того, обязательно перезапустите свои приложения!

jtbandes
источник
Whoot! Только то, на что я надеялся ... спасибо! Дай мне попробовать, тогда я отмечу ответ.
Стив
Спасибо! Работал как шарм. К вашему сведению: «Привязки клавиш» против «Привязок клавиш» ... Я использовал «Привязки клавиш», и это сработало. Не уверен, если это имеет значение. Жаль, что Xcode переопределяет их с помощью своих собственных, менее мощных, привязок клавиш.
Стив
Ой, да, я имел в виду KeyBindings! Xcode довольно хороши, потому что вы можете перемещаться по подсловам camelCase.
jtbandes
Мне нравится CamelCase Nav. В идеале, я хотел бы, чтобы поведение Visual Studio в Xcode ... о, хорошо.
Стив
Вы можете, по крайней мере, настроить Xcode's. В настройках есть вкладка для изменения привязок клавиш.
jtbandes
5

Вещи, которые вы можете попробовать. Я не проверял их, чтобы увидеть, будут ли они выполнять ту функцию, которая вам нужна.

Существует бесплатная утилита с открытым исходным кодом для переназначения ключевых команд для Mac OS X, которая называется DoubleCommand . Это расширение ядра, поэтому оно работает на очень низком уровне.

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


источник
1
Используя KeyRemap4MacBook в OS X 10.11.x, чтобы Control + [Arrow] работал как в Windows, прокрутите вниз, пока не найдете « Для пользователей ПК», а затем установите флажок (для меня, опция 6) «Использовать управление стилем ПК + Вверх / Вниз / Влево / Вправо» ». Там есть и другие очень полезные опции. Определенно, проголосовав за этот ответ, и, кроме того, он не стоил лишних сотен долларов!
Джон
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:");
}
m1k3t
источник