Я обычно использую Linux. Я часто использую Vim, поэтому клавиша Escape чрезвычайно важна. Я также часто использую другие сочетания клавиш, поэтому Control также является «клавишей». В Linux я решил эту проблему, используя xcape для сопоставления клавиши Caps Lock с Escape, если она нажата сама по себе, или с Control, если она нажата в сочетании с другой клавишей. Таким образом, лучшее из обоих миров находится в пределах досягаемости моего мизинца. Есть ли способ сделать это на Mac?
Да , с помощью Karabiner (ранее KeyRemap4Macbook) .
Сначала перейдите на панель настроек клавиатуры, нажмите «Клавиши-модификаторы…» и измените Caps Lock на Control. Затем зайдите в Karabiner и найдите эту опцию:
Control_L в Control_L
(+ когда вы набираете только Control_L, отправляете Escape)
Проверьте это, и все готово. С Karabiner вы можете делать гораздо больше интересных вещей, например, сопоставлять свою (теперь бесполезную) клавишу Escape с клавишей Hyper с еще большим количеством комбинаций клавиш.
Karabiner в настоящее время несовместим с MacOS Sierra. Еще одно решение для Sierra — это Keyboard Maestro (оно платное). Измените поведение клавиши Caps-Lock на Control через System Preferences
-> Keyboard
-> Modifier Keys
, как предлагали другие.
Затем в Keyboard Maestro настройте макрос следующим образом:
USB Device Key Trigger
^
Text
->Type a keystroke
^
нажатия только вместе с капслоком, чтобы вызвать действие. Это совсем не то, что требуется в вопросе.^
модификатор, действие никогда не сработает.Чтобы сделать это с помощью Karabiner Elements , который поддерживает macOS 10.12 и более поздние версии, откройте ~/.config/karabiner/karabiner.json
и добавьте в rules
массив следующее правило.
{
manipulators: [
{
description:
"Change caps_lock to control when used as modifier, escape when used alone",
from: {
key_code: "caps_lock",
modifiers: {
optional: ["any"]
}
},
to: [
{
key_code: "left_control"
}
],
to_if_alone: [
{
key_code: "escape",
modifiers: {
optional: ["any"]
}
}
],
type: "basic"
}
]
}
Вы также можете попробовать использовать ControlEscape.spoon с Hammerspoon .
to_if_alone
разделе. Но спасибо за фрагмент. Это супер полезно.
Аарон Шен
Скобе
Вен
Вен
Джойтвиддл