Это кажется стандартной задачей для программиста, который использует vim; отсюда мой голос, чтобы вновь открыть
Jeromy Anglim
4
Альтернативой является сопоставление Caps Lock с Control (Системные настройки> Клавиатура> Клавиши-модификаторы) и выполнение escape-последовательности Ctrl + [для esc. Полезно для Vim.
Изменить: Как описано в этом ответе , более новые версии MacOS теперь имеют встроенную поддержку для привязки Caps Lockк Escape. Таким образом, больше нет необходимости устанавливать стороннее программное обеспечение для достижения этой цели.
Вот моя попытка получить исчерпывающий визуальный ответ (со ссылками) о том, как этого добиться, используя Seil (ранее известный как PCKeyboardHack).
Сначала перейдите в Системные настройки , выберите « Клавиатура» , затем вкладку «Клавиатура» (первая вкладка) и нажмите « Клавиши-модификаторы» :
Во всплывающем диалоговом окне установите Caps Lock Key на No Action:
3) После установки у вас будет установлено новое приложение (Mountain Lion и новее), и если вы работаете в более старой ОС, вам, возможно, придется проверить новую панель «Системные настройки»:
4) Установите флажок «Change Caps Lock» и введите «53» в качестве кода для клавиши ESC:
И вы сделали! Если это не сработает сразу, вам может потребоваться перезагрузить компьютер.
Пораженный? Хотите больше контроля?
Вы также можете попробовать KeyRemap4MacBook, который на самом деле является флагманским инструментом переназначения клавиатуры pqrs.org- он также бесплатный.
Если вам нравятся эти инструменты, вы можете сделать пожертвование . Я не имею к ним никакого отношения, но я уже давно пользуюсь этими инструментами и должен сказать, что ребята отлично справились с этим, добавили функции и исправили ошибки.
Вот скриншот, чтобы показать несколько (сотни) предварительно выбираемых опций:
В PQRS также есть отличная утилита NoEjectDelay, которую вы можете использовать в сочетании с KeyRemap4MacBook для перепрограммирования клавиши Eject. После небольшой настройки я установил переключатель AirPort Wifi.
Эти утилиты предлагают неограниченную гибкость при переназначении клавиатуры Mac. Радоваться, веселиться!
Я хотел бы уточнить, что я использую один PCKeyboardHack без KeyRemap4Macbook в течение почти 2 лет, чтобы сделать именно это.
Россипедия
13
Обратите внимание, что если вы используете внешнюю клавиатуру, вы должны повторить первый шаг (т.е. caps lock = no action) для каждой клавиатуры. Я не смог выполнить этот шаг для своей внешней клавиатуры, и в результате блокировка клавиш не реагировала на очень быстрые нажатия клавиш из-за случайной защиты от блокировки клавиш. superuser.com/questions/317900/eliminate-macbook-capslock-delay
Джером Энглим,
11
Отличный учебник. Я сопоставил Caps Lock с Esc около года. Это было невероятно эффективно. Однажды, однако, я был в паре со старшим разработчиком. Я сказал ему, что использовал Vim в качестве основного редактора. Я тоже, сказал он. Он открыл свою машину, и мы начали работать. Когда пришла моя очередь редактировать код, я нащупал и запнулся, потому что его Caps Lock не был нанесен на карту. Я продолжал пытаться пройти весь путь до Esc, но время от времени я нажимал Caps, и тогда мои обычные команды менялись. Он научил меня, что Ctrl-c также вернет вас в визуальный режим. Сделайте себе одолжение и начните использовать Ctrl-c.
Было бы замечательно, если бы вы могли также отредактировать и упомянуть в верхней части, что теперь это встроенная функция в macOS 10.12.1 для ответа @ rkusa, чтобы новым пользователям не приходилось загружать стороннее программное обеспечение
edhurtig,
309
Начиная с macOS 10.12.1 его можно переназначить Caps Lockв Escисходное состояние (Системные настройки -> Клавиатура -> Клавиши-модификаторы).
Потрясающие! Я обнаружил это после того, как услышал, что у нового MBP не было клавиши Escape. Похоже, Apple ожидала некоторой обратной реакции.
Энди Э
1
Запуск El Capitan 10.11.6 и эта настройка уже доступна.
zool
1
Слава Богу за это; после того, как Сьерра разбила Сейл / Карабинер, я думал, что обречен.
Филипп
4
Как ни странно, я нахожусь на 10.11.6 и не имею этой опции. Мне разрешено только переназначать esc в caps, ctrl, opt или command. Это верно для моей клавиатуры WASD v2.
Я не был рад ни одному из ответов здесь, и пошел искать решение командной строки .
В macOS Sierra 10.12 Apple представила новый способ для пользователей переназначать ключи.
Нет необходимости возиться с системным графическим интерфейсом
Никаких особых привилегий не требуется
Полностью настраиваемый
Нет необходимости устанавливать какую-либо стороннюю хрень, такую как PCKeyboardHack / Seil / Karabiner / KeyRemap4MacBook / DoubleCommand / NoEjectDelay
Если это звучит хорошо для вас, посмотрите hidutil.
Например, чтобы переназначить caps-lock для экранирования, обратитесь к таблице ключей и найдите, что caps-lock имеет код использования 0x39, а escape - код использования 0x29. Поместите эти коды or'd с шестнадцатеричным значением 0x700000000 в источник и dest, как это:
Вы можете добавить другие сопоставления в той же команде. Лично мне нравится переназначать caps-lock в backspace и переназначать backspace для удаления:
Спасибо за это, +1! Я добавил некоторые заметки к посту Apple, которые, как мы надеемся, добавят некоторую ценность для нас, бедных людей, которым не нужна клавиша Esc, но нет Caps Lock.
трипл
Отличный метод для MacBook, у которых есть проблемы со встроенной клавиатурой. У меня были проблемы с настройками клавиатуры, поэтому я не мог переназначить там какие-либо клавиши.
Игорь
Я не смог заставить это работать должным образом с LoginHookметодом - я думаю, может быть, что-то после его выполнения выбирает мои локальные настройки клавиатуры для скандинавской клавиатуры? Во всяком случае, stackoverflow.com/a/22872222/874188 отмечает, что LoginHookэто устарело, и рекомендует использовать launchdвместо этого.
Включите «Изменить Caps Lock» и установите код клавиши на 53.
Решение 2
Это решение не включает в себя исправление драйвера клавиатуры, но дает вам конкретное решение Vim.
OS X поддерживает сопоставление ключа Caps Lock с целой связкой ключей, но вы должны сделать это «вручную», редактируя файлы .plist. Процесс описан в этой статье . В качестве дополнения к этой подсказке я предлагаю сначала установить для Caps-Lock значение None в Системных настройках, затем вам нужно изменить только одно значение в файле .plist. Кроме того, вы, конечно, можете использовать Редактор списка свойств вместо того, чтобы выполнять шаги преобразования XML.
Хитрость заключается в том, чтобы сопоставить клавишу Caps Lock с клавишей Help (код 6), которой нет на большинстве клавиатур. Но если это так, он будет рассматриваться как клавиша вставки, которую вы, вероятно, в любом случае не используете, поскольку вы спрашиваете о переназначении вашего Caps Lock, чтобы не растягивать руки;)
Затем вы можете сопоставить справку и Insertключ с Escvim.
Это будет работать для gvim (Vim.app). Я не заставил его работать с vim в Терминале, и я не тестировал его с MacVim.
Таким образом, это довольно сложное, недоделанное решение или установка сторонней хакерской программы. Ваш выбор;)
Изменить: только что заметил решение 3, если вы используете MacVim, вы можете использовать Ctrl, Optionи Commandкак Esc. С Системными настройками тривиально сопоставить Caps Lock с одной из этих клавиш.
Единственное, что я знаю, как это сделать - привязать Caps Lock к Control, Option или Command. Это можно сделать с помощью панели «Клавиатура и мышь» в Системных настройках. Нажмите «Ключи модификаторов» в левом нижнем углу, и вы сможете переназначить Caps Lock, Control, Option и Command на любой из них.
@Craig: Это говорит о том, что Caps Lock можно использовать как обычный, то есть не переключаемый ключ. На моем MacBook, так как я повторно сопоставил Caps Lock с Control, индикатор Caps Lock никогда не загорается. Он просто действует как клавиша управления.
Я использую github.com/tekezo/Karabiner-Elements (который работает на Sierra). Работает до сих пор замечательно, хотя я хотел бы, чтобы он сделал «Control_L to Control_L (+ когда вы набираете только Control_L, отправьте Escape)»
atomkirk
1
@atomkirk Не могли бы вы поделиться используемой JSON-конфигурацией Karabiner?
LandonSchropp
1
{"анкеты": [{"name": "Профиль по умолчанию", "selected": true, "simple_modification": {"caps_lock": "escape"}}]}
Карабинер помог мне с JSON от Атомкирка. Несмотря на скриншот выше, пользовательский интерфейс Keyboard Maestro является бесполезным, и я не смог его настроить.
Пол
10
Перепробовав несколько из этих решений, у меня есть несколько заметок:
DoubleCommand будет не позволит вам своп ЭСК и колпаков замком.
PCKeyboardHack будет позволит вам карту CapsLock бежать,но не имеет возможности отобразить переход к кепке, Последние версии позволят вам выполнить полный обмен, отредактировав обе клавиши.
Это может или не может быть достаточно для ваших нужд (я знаю, что это для моих).
PCKeyboardHack не позволяет вам сопоставить escape с capslock, но сопутствующее приложение KeyRemap4MacBook делает. Это позволяет сопоставить «Escape to CapsLock» и «Shift + Escape to CapsLock».
Рори О'Кейн
9
Если вы не хотите устанавливать стороннее приложение и вам действительно важен vim внутри iTerm, работает следующее:
Переустановите CapsLock в Help, как описано здесь .
Краткая версия: используйте plutil или аналогичный для редактирования ~/Library/Preferences/ByHost/.GlobalPreferences*.plist, он должен выглядеть примерно так:
Запустить снова! Простой выход из системы и вход не работал для меня.
В iTerm добавьте новое сопоставление клавиш для справки: отправьте шестнадцатеричный код 0x1b, который соответствует Escape.
Я знаю, что это не совсем то, о чем просили, но я предполагаю, что намерение многих людей, ищущих решение, подобное этому, на самом деле является более специализированным вариантом.
Чтобы на самом деле поменять местами клавишу escape с ключом caps lock (а не просто привязать один к другому), используя PCKeyboardHack и KeyRemap4MacBook, необходимо следовать инструкциям в этой теме , сопоставив ключ блокировки caps с кодом, не используемым клавиатура, но учитывается KeyRemap4MacBook (например, 110). Затем в PCKeyboardHack выберите соответствующую опцию, которая отображает этот код клавиши для выхода (в случае 110 это «Application Key to Escape»). Вот как должны выглядеть ваши настройки KeyRemap4MacBook (при условии, что вы установили флажок «показывать только»).
Первоначально я пытался опубликовать эту информацию как редактирование к отличному ответу cwd , но она была отклонена. Я призываю всех, кто хочет идти по пути, который я описал, сначала прочитать его / ее ответ.
Ctrl + [
дляesc
. Полезно для Vim.Ответы:
Изменить: Как описано в этом ответе , более новые версии MacOS теперь имеют встроенную поддержку для привязки Caps Lockк Escape. Таким образом, больше нет необходимости устанавливать стороннее программное обеспечение для достижения этой цели.
Вот моя попытка получить исчерпывающий визуальный ответ (со ссылками) о том, как этого добиться, используя Seil (ранее известный как
PCKeyboardHack
).Во всплывающем диалоговом окне установите Caps Lock Key на
No Action
:2) Теперь нажмите здесь, чтобы загрузить Seil и установить его:
3) После установки у вас будет установлено новое приложение (Mountain Lion и новее), и если вы работаете в более старой ОС, вам, возможно, придется проверить новую панель «Системные настройки»:
4) Установите флажок «Change Caps Lock» и введите «53» в качестве кода для клавиши ESC:
И вы сделали! Если это не сработает сразу, вам может потребоваться перезагрузить компьютер.
Пораженный? Хотите больше контроля?
Вы также можете попробовать KeyRemap4MacBook, который на самом деле является флагманским инструментом переназначения клавиатуры
pqrs.org
- он также бесплатный.Если вам нравятся эти инструменты, вы можете сделать пожертвование . Я не имею к ним никакого отношения, но я уже давно пользуюсь этими инструментами и должен сказать, что ребята отлично справились с этим, добавили функции и исправили ошибки.
Вот скриншот, чтобы показать несколько (сотни) предварительно выбираемых опций:
В PQRS также есть отличная утилита NoEjectDelay, которую вы можете использовать в сочетании с KeyRemap4MacBook для перепрограммирования клавиши Eject. После небольшой настройки я установил переключатель AirPort Wifi.
Эти утилиты предлагают неограниченную гибкость при переназначении клавиатуры Mac. Радоваться, веселиться!
источник
CTRL-[
на самом деле является надлежащим эквивалентом ESC. stackoverflow.com/questions/5030164/…Начиная с macOS 10.12.1 его можно переназначить Caps Lockв Escисходное состояние (Системные настройки -> Клавиатура -> Клавиши-модификаторы).
источник
Я не был рад ни одному из ответов здесь, и пошел искать решение командной строки .
В macOS Sierra 10.12 Apple представила новый способ для пользователей переназначать ключи.
Если это звучит хорошо для вас, посмотрите
hidutil
.Например, чтобы переназначить caps-lock для экранирования, обратитесь к таблице ключей и найдите, что caps-lock имеет код использования 0x39, а escape - код использования 0x29. Поместите эти коды or'd с шестнадцатеричным значением 0x700000000 в источник и dest, как это:
Вы можете добавить другие сопоставления в той же команде. Лично мне нравится переназначать caps-lock в backspace и переназначать backspace для удаления:
Чтобы увидеть текущее отображение:
Ваши изменения будут потеряны при перезагрузке системы. Если вы хотите, чтобы они сохранялись, поместите их в скрипт и настройте хук входа в систему:
источник
LoginHook
методом - я думаю, может быть, что-то после его выполнения выбирает мои локальные настройки клавиатуры для скандинавской клавиатуры? Во всяком случае, stackoverflow.com/a/22872222/874188 отмечает, чтоLoginHook
это устарело, и рекомендует использоватьlaunchd
вместо этого.Возможно.
Решение 1
Из статьи на TrueAffection.net.
Решение 2
Это решение не включает в себя исправление драйвера клавиатуры, но дает вам конкретное решение Vim.
OS X поддерживает сопоставление ключа Caps Lock с целой связкой ключей, но вы должны сделать это «вручную», редактируя файлы .plist. Процесс описан в этой статье . В качестве дополнения к этой подсказке я предлагаю сначала установить для Caps-Lock значение None в Системных настройках, затем вам нужно изменить только одно значение в файле .plist. Кроме того, вы, конечно, можете использовать Редактор списка свойств вместо того, чтобы выполнять шаги преобразования XML.
Хитрость заключается в том, чтобы сопоставить клавишу Caps Lock с клавишей Help (код 6), которой нет на большинстве клавиатур. Но если это так, он будет рассматриваться как клавиша вставки, которую вы, вероятно, в любом случае не используете, поскольку вы спрашиваете о переназначении вашего Caps Lock, чтобы не растягивать руки;)
Затем вы можете сопоставить справку и Insertключ с Escvim.
Это будет работать для gvim (Vim.app). Я не заставил его работать с vim в Терминале, и я не тестировал его с MacVim.
Таким образом, это довольно сложное, недоделанное решение или установка сторонней хакерской программы. Ваш выбор;)
Изменить: только что заметил решение 3, если вы используете MacVim, вы можете использовать Ctrl, Optionи Commandкак Esc. С Системными настройками тривиально сопоставить Caps Lock с одной из этих клавиш.
источник
Теперь намного проще сопоставить Caps Lockключ Escс macOS Sierra.
Откройте Системные настройки → Клавиатура.
Нажмите кнопку «Ключи модификатора» в нижнем правом углу.
Щелкните раскрывающийся список рядом с аппаратным ключом, который вы хотите переназначить, и выберите Escape.
Нажмите OK и закройте Системные настройки.
https://9to5mac.com/2016/10/25/remap-escape-key-action-macbook-pro-macos-sierra-10-12-1-modifier-keys/
источник
Единственное, что я знаю, как это сделать - привязать Caps Lock к Control, Option или Command. Это можно сделать с помощью панели «Клавиатура и мышь» в Системных настройках. Нажмите «Ключи модификаторов» в левом нижнем углу, и вы сможете переназначить Caps Lock, Control, Option и Command на любой из них.
@Craig: Это говорит о том, что Caps Lock можно использовать как обычный, то есть не переключаемый ключ. На моем MacBook, так как я повторно сопоставил Caps Lock с Control, индикатор Caps Lock никогда не загорается. Он просто действует как клавиша управления.
источник
Seil пока недоступен в macOS Sierra (бета-версия 10.12). Поэтому я использую Keyboard Maestro со следующими настройками:
Предоставьте этот комментарий github: https://github.com/tekezo/Seil/issues/68#issuecomment-230131664
источник
Перепробовав несколько из этих решений, у меня есть несколько заметок:
DoubleCommand будет не позволит вам своп ЭСК и колпаков замком.
PCKeyboardHack будет позволит вам карту CapsLock бежать,
но не имеет возможности отобразить переход к кепке, Последние версии позволят вам выполнить полный обмен, отредактировав обе клавиши.Это может или не может быть достаточно для ваших нужд (я знаю, что это для моих).
источник
Если вы не хотите устанавливать стороннее приложение и вам действительно важен vim внутри iTerm, работает следующее:
Переустановите CapsLock в Help, как описано здесь .
Краткая версия: используйте plutil или аналогичный для редактирования
~/Library/Preferences/ByHost/.GlobalPreferences*.plist
, он должен выглядеть примерно так:Запустить снова! Простой выход из системы и вход не работал для меня.
В iTerm добавьте новое сопоставление клавиш для справки: отправьте шестнадцатеричный код 0x1b, который соответствует Escape.
Я знаю, что это не совсем то, о чем просили, но я предполагаю, что намерение многих людей, ищущих решение, подобное этому, на самом деле является более специализированным вариантом.
источник
Чтобы на самом деле поменять местами клавишу escape с ключом caps lock (а не просто привязать один к другому), используя PCKeyboardHack и KeyRemap4MacBook, необходимо следовать инструкциям в этой теме , сопоставив ключ блокировки caps с кодом, не используемым клавиатура, но учитывается KeyRemap4MacBook (например, 110). Затем в PCKeyboardHack выберите соответствующую опцию, которая отображает этот код клавиши для выхода (в случае 110 это «Application Key to Escape»). Вот как должны выглядеть ваши настройки KeyRemap4MacBook (при условии, что вы установили флажок «показывать только»).
Первоначально я пытался опубликовать эту информацию как редактирование к отличному ответу cwd , но она была отклонена. Я призываю всех, кто хочет идти по пути, который я описал, сначала прочитать его / ее ответ.
источник
Seil еще не работает на macOS Sierra, поэтому я использую элементы Karabiner , загрузите их с https://pqrs.org/latest/karabiner-elements-latest.dmg .
Либо используйте графический интерфейс, либо вставьте следующее в
~/.karabiner.d/configuration/karabiner.json
:источник
Вы также можете использовать DoubleCommand для переназначения этого и других ключей.
IIRC, он отобразит Caps Lock на Esc.
источник
Откройте настройки клавиатуры и нажмите клавиши-модификаторы ... вы можете изменить клавишу Caps Lock на control, option, escape или command.
источник
Esc
иEscape
? (серьезный вопрос)Karabiner-Elements Мощный и стабильный настройщик клавиатуры для macOS. (Бесплатно)
https://pqrs.org/osx/karabiner/index.html
У меня работал Мохаве, чтобы изменить caps-lock на backspace
источник