Використання Caps Lock як Esc в Mac OS X


449

Як зробити так, Caps Lockяк Escв Mac OS X?


31
Це здається стандартним завданням для програміста, який використовує vim; звідси мій голос за повторне відкриття
Джеромі Англім

4
Альтернативою є складання Caps Lock для керування (Налаштування системи> Клавіатура> Клавіші модифікатора) та виконання послідовності запуску Ctrl + [для esc. Корисно для Вім.
thelostspore

2
Рідне рішення, яке працює в macOS Sierra: stackoverflow.com/a/41004544/1940276
Кевін Рот

1
Рідне рішення, яке працює в macOS Сьєрра, - друга найкраща відповідь тут (від @rkusa)
Marián Černý

Питання, пов’язані з питанням "Задати запитання": Як я зможу перевстановити функцію Caps Lock і на Escape, і на управління?
joeytwiddle

Відповіді:


394

Змінити: Як описані в цій відповіді , нові версії MacOS тепер мають вбудовану підтримку підміни Caps Lockв Escape. Таким чином, для досягнення цього більше не потрібно встановлювати стороннє програмне забезпечення.


Ось моя спроба вичерпної, наочної відповіді (з посиланнями) про те, як цього досягти за допомогою Seil (раніше відомий як PCKeyboardHack).

  1. Спочатку перейдіть до системних налаштувань , виберіть Клавіатура , потім вкладку клавіатури (перша вкладка) та натисніть клавіші модифікатора :

Крок 1

У діалоговому вікні, що з’являється, встановіть Caps Lock Key для No Action:

не вибирайте жодних дій

2) Тепер натисніть тут, щоб завантажити Seil та встановити його:

3) Після встановлення у вас буде встановлено нову програму (Mountain Lion і новіша версія), і якщо ви перебуваєте на старшій ОС, можливо, доведеться перевірити нову панель системних налаштувань:

відкритий вуал або область налаштування

4) Поставте прапорець "Змінити Caps Lock" і введіть "53" як код для клавіші втечі:

встановити код клавіатури

І ви закінчили! Якщо це не працює відразу, можливо, вам доведеться перезавантажити машину.

Вражений? Хочете більше контролю?

Ви також можете перевірити KeyRemap4MacBook, який є фактично інструментом для перестановки флагманської клавіатури pqrs.org- це також безкоштовно.

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

Ось скріншот, на якому показано декілька (сотень) попередньо вибраних варіантів:

Зображення 1.png

PQRS також має чудову утиліту під назвою NoEjectDelay, яку ви можете використовувати в поєднанні з KeyRemap4MacBook для перепрограмування ключа вилучення. Після невеликого налаштування у мене встановлено перемикання AirPort Wifi.

Ці утиліти пропонують необмежену гнучкість під час перестановки клавіатури Mac. Веселіться!


3
Я хотів би уточнити, що я майже 2 роки використовую PCKeyboardHack без KeyRemap4Macbook, щоб зробити саме це.
rossipedia

13
Зауважте, що якщо ви використовуєте зовнішню клавіатуру, вам слід повторити перший крок (тобто, блокування заглушок = без дії) для кожної клавіатури. Мені не вдалося зробити цей крок для своєї зовнішньої клавіатури, і в результаті блокування шапки не реагувало на дуже швидкі натискання клавіш через випадкове захист від блокування шапки. superuser.com/questions/317900/eliminate-macbook-capslock-delay
Джеромі Англім

11
Чудовий підручник. Я картавав Caps Lock в Esc близько року. Це було дико ефективно. Однак одного разу я спарювався зі старшим розробником. Я сказав йому, що використовую Vim як головного редактора. Я теж, сказав він. Він відкрив свою машину і ми почали працювати. Коли прийшла моя черга редагувати код, я набриднув і поцікавився, бо його Caps Lock не було відображено. Я постійно намагався пройти весь шлях до Esc, але я раз на час ударяв Caps, і тоді мої звичайні команди змінюватимуться. Він навчив мене, що Ctrl-c також поверне вас у візуальний режим. Зробіть собі послугу і почніть використовувати Ctrl-c.
campeterson

7
(Щодня більше навчаюсь) CTRL-[насправді є відповідним еквівалентом ESC. stackoverflow.com/questions/5030164 / ...
campeterson

5
Було б чудово, якби ви могли також відредагувати та згадати вгорі, що це тепер вже рідна функція в macOS 10.12.1 за відповідь @ rkusa, так що новим користувачам не доведеться завантажувати програмне забезпечення сторонніх розробників
edhurtig

309

Оскільки macOS 10.12.1, можна зробити перезавантаження Caps Lockна Escпочатково (Налаштування системи -> Клавіатура -> Клавіші модифікатора).

введіть тут опис зображення


11
Дивовижно! Я виявив це, почувши, що новий MBP не матиме клавішу відключення. Схоже, Apple передбачила певний зворотній зв'язок.
Енді Е

1
Запуск El Capitan 10.11.6 і цей параметр уже доступний.
zool

1
Слава богу за це; після того, як Сьєрра зламала Seil / Karabiner, я подумав, що я приречений.
Філіп

4
Як не дивно, я на 10.11.6 і не маю такої можливості. Мені дозволено лише перенаправляти esc до cap, ctrl, opt або команд. Це справедливо для моїх клавіатур WASD v2.
Бенні Пауерс

1
Чи можливо це зробити за допомогою командного рядка? Можливо, методом, подібним до цих? github.com/herrbischoff/awesome-osx-command-line#keyboard
Jordan

40

Я не був задоволений жодною з відповідей тут і пішов шукати рішення командного рядка .

У macOS Sierra 10.12, Apple представила новий спосіб для користувачів переробляти ключі.

  • Немає необхідності спіткнутися із системними графічними інтерфейсами
  • Ніяких спеціальних пільг не потрібно
  • Повністю настроюється
  • Не потрібно встановлювати жодних сторонніх лайнів, таких як PCKeyboardHack / Seil / Karabiner / KeyRemap4MacBook / DoubleCommand / NoEjectDelay

Якщо це вам добре звучить, погляньте hidutil.

Наприклад, для перенастроювання шапки-блокування для втечі, зверніться до таблиці ключових даних і виявіть, що в шапці-блокуванні є код використання 0x39, а у escape - код використання 0x29. Введіть ці коди або позначте шістнадцяткове значення 0x700000000 у джерелі та dest таким чином:

hidutil property --set '{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x700000039,"HIDKeyboardModifierMappingDst":0x700000029}]}'

Ви можете додати інші відображення в тій же команді. Особисто мені подобається перевпорядковувати шапки-блокування на задній простір, а також перезавантажувати назад, щоб видалити:

hidutil property --set '{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x700000039,"HIDKeyboardModifierMappingDst":0x70000002A}, {"HIDKeyboardModifierMappingSrc":0x70000002A,"HIDKeyboardModifierMappingDst":0x70000004C}]}'

Щоб побачити поточне відображення:

hidutil property --get "UserKeyMapping"

Зміни будуть втрачені при перезавантаженні системи. Якщо ви хочете, щоб вони зберігалися, введіть їх у сценарій та встановіть гачок для входу:

sudo defaults write com.apple.loginwindow LoginHook /path/to/login_script.sh

3
+! це сучасний і правильний спосіб перевпорядкувати ключі на macOS
Fanckush

2
Проблема Карабінера з повторюваними клавішами змусила мене шукати нативне рішення для перескладання ключів. Ця публікація та ще одна у apple.stackexchange.com допомогли дуже багато.
чб

Дякую за це, +1! Я додав до допису Apple кілька дотичних нот, які, сподіваємось, додають певної цінності нам бідним людям, які не хочуть клавіші Esc, але не на Caps Lock.
трійка

Відмінний метод для MacBooks, які мають проблеми із вбудованою клавіатурою. Шахта викликала проблеми з налаштуваннями клавіатури, тому я не зміг перезавантажувати жодних клавіш там.
Ігор

Мені не вдалося зробити цю роботу належним чином із LoginHookметодом - я думаю, можливо, що-небудь після його виконання вибере мої параметри локальної клавіатури для скандинавської клавіатури? Так чи інакше, stackoverflow.com/a/22872222/874188 зазначає, що LoginHookце застаріле, і виступає launchdзамість цього.
трійка

34

Це можливо.

Рішення 1

З в arcticle на TrueAffection.net.

  • Завантажте PCKeyboardHack та встановіть його.
  • Перейдіть до PCKeyboardHack у розділі Налаштування системи.
  • Увімкніть "Change Caps Lock" і встановіть код ключа на 53.

Рішення 2

Це рішення не передбачає виправлення драйвера клавіатури, але дає вам специфічне рішення Vim.

OS X підтримує відображення клавіші Caps Lock на цілу купу клавіш, але це потрібно зробити "вручну", редагуючи файли .plist. Процес описаний у цій статті . Як доповнення до цього підказу, я пропоную вам спочатку встановити функцію Caps-Lock на "None" у системних налаштуваннях, тоді вам потрібно змінити лише одне значення у файлі .plist. Крім того, ви можете, звичайно, використовувати Редактор списку властивостей, а не проходити кроки перетворення XML.

Трюк полягає в тому, щоб зіставити клавішу Caps Lock на клавішу довідки (код 6), що не на більшості клавіатур. Але якщо це так, він буде розглядатися як клавіша вставки, яку ви, мабуть, не використовуєте, оскільки ви просите про перестановку Caps Lock, щоб запобігти розтягуванню рук;)

Потім можна зіставити довідку та Insertключ до Escvim.

map  <Help> <Esc>
map! <Help> <Esc>
map  <Insert> <Esc>
map! <Insert> <Esc>

Це буде працювати для gvim (Vim.app). Я не змусив його працювати з vim в Терміналі, і не перевірив його на MacVim.

Отже, це досить складне, напівфабрикатне рішення або встановлення стороннього хакера. Ваш вибір;)

Змінити: Просто зауважив Рішення 3, якщо ви використовуєте MacVim ви можете використовувати Ctrl, Optionі , Commandяк Esc. За допомогою системних налаштувань банально відображати Caps Lock на одну з цих клавіш.


1
Рішення 3: Як ви використовуєте Ctrl, Option або Command як Esc у MacVim? Я не можу знайти цей параметр у налаштуваннях.
clizzin

Ви зіставляєте його в системних налаштуваннях => клавіатурі.
малетор

9
Де натяк, на який ви натякаєте?
Меттью Шинкель

2
Maletor - немає де там, щоб сказати macvim використовувати контроль як втечу
Скотт Шультесс

1
@MatthewSchinckel ось одне таке посилання: hints.macworld.com/article.php?story=20060825072451882
Ben Challenor

33

Зараз набагато простіше відобразити Caps Lockключ до EscMacOS Sierra.

  1. Відкрийте Налаштування системи → Клавіатура.

  2. Клацніть кнопку «Модифікатор ключів» у правому нижньому куті.

  3. Клацніть спадне поле поруч із апаратним ключем, який ви хочете перезавантажити, та виберіть «Втеча».

  4. Клацніть OK і закрийте Налаштування системи.

введіть тут опис зображення

https://9to5mac.com/2016/10/25/remap-escape-key-action-macbook-pro-macos-sierra-10-12-1-modifier-keys/


30

Єдине, що я знаю, як зробити, це скласти Caps Lock для керування, або опції, або команди. Це можна зробити за допомогою панелі «Налаштування системи» клавіатури та миші. Клацніть на "Ключі модифікатора" в нижньому лівому куті, і ви зможете перезавантажувати Caps Lock, Control, Option і Command до будь-якого з них.

@Craig: Це говорить про те, що функцію Caps Lock можна використовувати як звичайну, тобто клавішу без перемикання. На моєму MacBook, оскільки я перекомпонував Caps Lock для керування, індикатор Caps Lock ніколи не загорається. Він просто діє як клавіша Control.

введіть тут опис зображення


2
красиві фотографії тут: stackoverflow.com/questions/162896/…
Кайл Кронін

1
На жаль, не з клавіатур Logitech, тому жодної клавіші
Енрік Рібас

14

Seil ще не доступний на macOS Sierra (10.12 бета). Я використовував Keyboard Maestro з такими налаштуваннями:введіть тут опис зображення

Заслуга цього коментаря github: https://github.com/tekezo/Seil/isissue/68#issuecomment-230131664


2
Я використовую github.com/tekezo/Karabiner-Elements (який працює на Сьєррі). Досі чудово працює, хоча я хотів би, щоб це було "Control_L to Control_L (+ коли ви набираєте лише Control_L, надішліть Escape)"
atomkirk

1
@atomkirk Чи не заперечуєте ви поділитися використовуваною вами конфігурацією Karabiner JSON?
LandonSchropp

1
{"profile": [{"name": "Профіль за замовчуванням", "selected": true, "simple_modifications": {"caps_lock": "escape"}}]}
atomkirk


Карабінер зробив для мене трюк за допомогою JSON atomkirk. Незважаючи на скріншот, наведений вище, інтерфейс Maestro UI клавіатури - це суперечка, і я не зміг його налаштувати.
Пол

10

Спробувавши декілька цих рішень, я маю кілька приміток:

DoubleCommand буде НЕ дозволить вам своп ЕСК і ковпаків замком.

PCKeyboardHack буде дозволить вам карту CapsLock бігти,але він не має можливості відобразити втечу до caplock. Останні версії дозволять вам здійснити повний своп, редагуючи обидві клавіші.

Це може бути або не достатньо для ваших потреб (я знаю, що це для мене).


1
PCKeyboardHack не дозволяє вам втекти з картки, але додаток-додаток KeyRemap4MacBook робить. З його допомогою можна скласти карту «Втеча до CapsLock» та «Shift + Escape to CapsLock».
Rory O'Kane

9

Якщо ви не хочете інсталювати сторонній додаток, і вам дійсно цікаво лише vim всередині iTerm, виконуються наступні дії:

Перейдіть до допомоги, як описано тут .

Коротка версія: для редагування використовуйте plutil або подібне ~/Library/Preferences/ByHost/.GlobalPreferences*.plist, воно має виглядати приблизно так:

<key>HIDKeyboardModifierMappingDst</key>
<integer>6</integer>
<key>HIDKeyboardModifierMappingSrc</key>
<integer>0</integer>

Перезапустіть! Простий вихід із системи та вхід у мене не працювали.

У iTerm додайте нове відображення ключів для довідки: надішліть шістнадцятковий код 0x1b, який відповідає Escape.

Я знаю, що це не саме те, про що вимагали, але я припускаю, що наміри багатьох людей, які шукають таке рішення, насправді - це більш спеціалізований варіант.


4

Для того, щоб фактично поміняти клавішу втечі клавішею блокування шапок (а не просто зіставити одну на іншу), використовуючи PCKeyboardHack та KeyRemap4MacBook, ви повинні дотримуватися вказівок у цій темі , відображаючи ключ блокування шапок на код, який не використовується клавіатури, але припадає на KeyRemap4MacBook (наприклад, 110). Потім у програмі PCKeyboardHack виберіть відповідний варіант, який відображає код для виходу з клавіатури (у випадку 110 - це "Ключ програми для втечі"). Ось як повинні виглядати ваші налаштування KeyRemap4MacBook (за умови, що ви встановили прапорець "Показувати лише включено").

введіть тут опис зображення

Спочатку я спробував відправити цю інформацію в якості редагування до відмінним відповіддю ВУХО в , але вона була відхилена. Я закликаю всіх, хто хоче пройти маршрут, який я описав, першим прочитати його відповідь.


2

Seil ще не працює на macOS Sierra, тому я використовую Karabiner Elements , скачайте з https://pqrs.org/latest/karabiner-elements-latest.dmg .

Або використовуйте графічний інтерфейс або вкладайте таке ~/.karabiner.d/configuration/karabiner.json:

{
  "profiles" : [
    {
      "name" : "Default profile",
      "selected" : true,
      "simple_modifications" : {
        "caps_lock" : "escape"
      }
    }
  ]
}

Зауважимо, що елементи Karabiner порушують сенсорну панель та клавішу fn
mperrin

1

Ви також можете використовувати DoubleCommand для повторного перезавантаження цього та інших клавіш.

IIRC, він буде відображати Caps Lock до Esc.


1
Власне, мені довелося написати патч, щоб це зробити. Це було для старішої версії, але я все ще використовую її зараз: sourceforge.net/tracker/?group_id=65339&atid=510607
Matthew Schinckel

1

Відкрийте налаштування клавіатури та натисніть клавіші модифікатора ... Ви можете змінити клавішу блокування шапки для керування, опції, втечі чи команди.

введіть тут опис зображення


9
Жоден з яких не є "Esc", про який запитував плакат. Ймовірно, для використання Vim.
Рафі Джакобі

1
@RafiJacoby У чому різниця між Escта Escape? (серйозне запитання)
byxor

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.