Sử dụng Caps Lock làm Esc trong Mac OS X


449

Làm cách nào để tôi thực hiện Caps Lockcông việc như Esctrong Mac OS X?


31
Đây có vẻ như là một nhiệm vụ tiêu chuẩn cho một lập trình viên sử dụng vim; do đó phiếu bầu của tôi sẽ mở lại
Jeromy Anglim

4
Một cách khác là ánh xạ Caps Lock to Control (System Preferences> Keyboard> Modifier Keys) và thực hiện chuỗi thoát Ctrl + [cho esc. Hữu ích cho Vim.
thelostspore

2
Giải pháp gốc hoạt động trong macOS Sierra: stackoverflow.com/a/41004544/1940276
Kevin Roth

1
Giải pháp bản địa hoạt động trong macOS Sierra là câu trả lời tốt thứ hai tại đây (từ @rkusa)
Marián erný

Câu trả lời:


394

Chỉnh sửa: Như được mô tả trong câu trả lời này , các phiên bản mới hơn của MacOS hiện có hỗ trợ riêng cho việc bật Caps Locklại Escape. Do đó, không còn cần thiết phải cài đặt phần mềm của bên thứ ba để đạt được điều này.


Đây là nỗ lực của tôi trong câu trả lời trực quan, toàn diện (có liên kết) về cách đạt được điều này bằng Seil (trước đây gọi là PCKeyboardHack).

  1. Đầu tiên, đi vào Tùy chọn hệ thống , chọn Bàn phím , sau đó chọn Tab Bàn phím (tab đầu tiên) và bấm Phím điều chỉnh :

Bước 1

Trong hộp thoại bật lên, đặt Caps Lock Key thành No Action:

không chọn hành động

2) Bây giờ, bấm vào đây để tải Seil và cài đặt nó:

3) Sau khi cài đặt, bạn sẽ cài đặt Ứng dụng mới (Mountain Lion và mới hơn) và nếu bạn đang sử dụng HĐH cũ hơn, bạn có thể phải kiểm tra ngăn Tùy chọn hệ thống mới:

mở seil hoặc khung ưu tiên

4) Chọn hộp có nội dung "Thay đổi khóa mũ" và nhập "53" làm mã cho khóa thoát:

đặt mã bàn phím

Và bạn đã hoàn thành! Nếu nó không hoạt động ngay lập tức, bạn có thể cần phải khởi động lại máy.

Ấn tượng? Muốn kiểm soát nhiều hơn?

Bạn cũng có thể muốn kiểm tra KeyRemap4MacBook thực sự là công cụ ánh xạ lại bàn phím hàng đầu pqrs.org- nó cũng miễn phí.

Nếu bạn thích những công cụ này, bạn có thể đóng góp . Tôi không có liên kết với họ nhưng tôi đã sử dụng các công cụ này trong một thời gian dài và phải nói rằng những người ở đó đã làm một công việc tuyệt vời để duy trì chúng, thêm các tính năng và sửa lỗi.

Đây là một ảnh chụp màn hình để hiển thị một vài trong số (hàng trăm) tùy chọn có thể chọn trước:

Hình 1.png

PQRS cũng có một tiện ích tuyệt vời có tên NoEjectDelay mà bạn có thể sử dụng kết hợp với KeyRemap4MacBook để lập trình lại khóa Eject. Sau một chút tinh chỉnh, tôi đã cài đặt để chuyển đổi AirPort Wifi.

Các tiện ích này cung cấp sự linh hoạt không giới hạn khi ánh xạ lại bàn phím Mac. Chúc vui vẻ!


3
Tôi muốn làm rõ rằng tôi đã sử dụng PCPalHack một mình mà không có KeyRemap4Macbook trong gần 2 năm để thực hiện chính xác điều này.
rossipedia

13
Lưu ý rằng nếu bạn sử dụng bàn phím ngoài, bạn nên lặp lại bước một (nghĩa là caps lock = không có hành động) cho mỗi bàn phím. Tôi đã không thực hiện bước này cho bàn phím ngoài của mình và kết quả là khóa nắp không phản ứng với các lần nhấn phím rất nhanh do bảo vệ khóa mũ vô tình. superuser.com/questions/317900/006inate-macbook-capslock-delay
Jeromy Anglim

11
Hướng dẫn tuyệt vời. Tôi đã ánh xạ Caps Lock thành Esc trong khoảng một năm. Đó là cực kỳ hiệu quả. Tuy nhiên, một ngày nọ, tôi đã bắt cặp với một nhà phát triển cao cấp. Tôi nói với anh ấy rằng tôi đã sử dụng Vim làm biên tập viên chính của mình. Tôi cũng vậy, anh nói. Anh ấy mở máy và chúng tôi bắt đầu làm việc. Khi đến lượt tôi chỉnh sửa mã, tôi dò dẫm và vấp ngã vì Caps Lock của anh ta không được lập bản đồ. Tôi tiếp tục cố gắng đi đến Esc, nhưng tôi đã nhấn Caps mỗi lần và sau đó các lệnh thông thường của tôi sẽ thay đổi. Anh ấy dạy tôi rằng Ctrl-c cũng sẽ đưa bạn trở lại chế độ Visual. Tự mình làm và bắt đầu sử dụng Ctrl-c.
cắm trại

7
(Học ​​nhiều hơn mỗi ngày) CTRL-[thực sự là tương đương với ESC. stackoverflow.com/questions/5030164/ từ
campeterson

5
Sẽ thật tuyệt nếu bạn cũng có thể chỉnh sửa và đề cập ở đầu rằng đây hiện là tính năng gốc trong câu trả lời của macOS 10.12.1 mỗi @ rkusa để người dùng mới không phải tải xuống phần mềm của bên thứ ba
edhurtig

309

Vì macOS 10.12.1, có thể ánh xạ lại Caps Lockthành Escbản gốc (Tùy chọn hệ thống -> Bàn phím -> Phím sửa đổi).

nhập mô tả hình ảnh ở đây


11
Tuyệt vời! Tôi đã tìm thấy điều này sau khi nghe MBP mới sẽ không có khóa thoát. Có vẻ như Apple đã lường trước một số phản ứng dữ dội.
Andy E

1
Chạy El Capitan 10.11.6 và cài đặt này đã có sẵn.
zool

1
Cảm ơn chúa vì điều này; Sau khi Sierra phá vỡ Seil / Karabiner, tôi nghĩ rằng mình đã cam chịu.
Philip

4
Điều kỳ lạ là tôi đang ở ngày 10.11.6 và không có tùy chọn này. Tôi chỉ được phép sắp xếp lại esc cho mũ, ctrl, opt hoặc lệnh. Điều này đúng với bàn phím WASD của tôi v2.
Benny Powers

1
Có cách nào để làm điều này thông qua dòng lệnh? Có lẽ trong một phương pháp tương tự như thế này? github.com/herrbischoff/awgie-osx-command-line#keyboard
Jordan Eldredge

40

Tôi không hài lòng với bất kỳ câu trả lời nào ở đây và đã tìm kiếm một giải pháp dòng lệnh .

Trong macOS Sierra 10.12, Apple đã giới thiệu một cách mới để người dùng sắp xếp lại các phím.

  • Không cần phải loay hoay với GUI hệ thống
  • Không có đặc quyền được yêu cầu
  • Hoàn toàn tùy biến
  • Không cần phải cài đặt bất kỳ crap của bên thứ 3 như PCPalHack / Seil / Karabiner / KeyRemap4MacBook / DoubleCommand / NoEjectDelay

Nếu điều đó nghe có vẻ tốt với bạn, hãy xem hidutil.

Ví dụ: để ánh xạ lại caps-lock để thoát, hãy tham khảo bảng khóa và thấy rằng caps-lock có mã sử dụng 0x39 và esc có mã sử dụng 0x29. Đặt các mã này hoặc có giá trị hex 0x700000000 vào nguồn và định mệnh như sau:

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

Bạn có thể thêm các ánh xạ khác trong cùng một lệnh. Cá nhân, tôi thích ánh xạ lại mũ lưỡi trai thành backspace và ánh xạ lại backspace để xóa:

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

Để xem ánh xạ hiện tại:

hidutil property --get "UserKeyMapping"

Những thay đổi của bạn sẽ bị mất khi khởi động lại hệ thống. Nếu bạn muốn chúng tồn tại, hãy đặt chúng vào tập lệnh và thiết lập hook đăng nhập:

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

3
+! đây là cách hiện đại và đúng đắn để sắp xếp lại các phím trên macOS
Fanckush

2
Vấn đề của Karabiner với các phím lặp lại khiến tôi tìm kiếm một giải pháp gốc cho ánh xạ lại khóa. Bài đăng này và một bài khác trong apple.stackexchange.com đã giúp rất nhiều.
chb

Cảm ơn vì điều này, +1! Tôi đã thêm một số ghi chú tiếp tuyến vào bài đăng của Apple , hy vọng sẽ thêm một số giá trị cho chúng tôi, những người nghèo không muốn có khóa Esc nhưng không có trên Caps Lock.
tripleee

Phương pháp tuyệt vời cho MacBook có vấn đề với bàn phím tích hợp. Của tôi đã gây ra sự cố với Cài đặt bàn phím nên tôi không thể sắp xếp lại bất kỳ phím nào ở đó.
Igor

Tôi không thể làm cho LoginHookphương thức này hoạt động đúng với phương pháp - Tôi đoán có thể một cái gì đó sau khi nó thực thi chọn cài đặt bàn phím cục bộ của tôi cho bàn phím Scandinavia? Dù sao đi nữa, stackoverflow.com/a/22872222/874188 ghi chú LoginHookbị phản đối và ủng hộ sử dụng launchdthay thế.
tripleee

34

Điều đó là có thể.

Giải pháp 1

Từ một arcticle trên TrueAffection.net.

  • Tải xuống PCPalHack và cài đặt nó.
  • Đi tới PCPalHack trong Tùy chọn hệ thống.
  • Bật 'Thay đổi khóa mũ' và đặt mã khóa thành 53.

Giải pháp 2

Giải pháp này không liên quan đến việc vá trình điều khiển bàn phím, nhưng cung cấp cho bạn một giải pháp cụ thể về Vim.

OS X hỗ trợ ánh xạ khóa Caps Lock thành một loạt các khóa, nhưng bạn phải thực hiện nó 'bằng tay', chỉnh sửa các tệp .plist. Quá trình này được mô tả trong bài viết này . Như phần phụ lục cho gợi ý đó, tôi khuyên bạn trước tiên nên đặt Caps-Lock thành Không có trong Tùy chọn hệ thống, sau đó bạn chỉ cần thay đổi một giá trị trong tệp .plist. Ngoài ra, tất nhiên bạn có thể sử dụng Trình soạn thảo danh sách tài sản thay vì thực hiện các bước chuyển đổi XML.

Mẹo nhỏ là ánh xạ phím Caps Lock sang phím Trợ giúp (mã 6), không có trên hầu hết các bàn phím. Nhưng nếu có, nó sẽ được coi là phím chèn, dù sao bạn có thể không sử dụng, vì bạn hỏi về cách ánh xạ lại Caps Lock để tránh duỗi tay;)

Sau đó, bạn có thể ánh xạ Trợ giúp và Insertchìa khóa Escvào vim.

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

Điều này sẽ làm việc cho gvim (Vim.app). Tôi đã không làm cho nó hoạt động với vim trong Terminal và tôi chưa thử nghiệm nó với MacVim.

Vì vậy, nó khá là một giải pháp phức tạp, nửa nướng hoặc cài đặt một phần của bên thứ ba. Lựa chọn của bạn;)

Chỉnh sửa: Chỉ cần chú ý giải pháp 3, nếu bạn đang sử dụng MacVim bạn có thể sử dụng Ctrl, OptionCommandnhư Esc. Với Tùy chọn hệ thống, việc ánh xạ Caps Lock thành một trong những phím đó là chuyện nhỏ.


1
Giải pháp lại 3: Làm thế nào để bạn sử dụng Ctrl, Tùy chọn hoặc Lệnh như Esc trong MacVim? Tôi không thể tìm thấy cài đặt này trong các tùy chọn.
clizzin

Bạn ánh xạ nó trong tùy chọn hệ thống => bàn phím.
maletor

9
Đâu là gợi ý mà bạn ám chỉ?
Matthew Schinckel

2
Maletor - không có nơi nào ở đó để bảo macvim sử dụng quyền kiểm soát như trốn thoát
Scott Schulthess

1
@MatthewSchinckel ở đây là một liên kết như vậy: hint.macworld.com/article.php?story=20060825072451882
Ben Challenor

33

Giờ đây việc ánh xạ Caps Lockkhóa trở nên dễ dàng hơn nhiều Escvới macOS Sierra.

  1. Mở tùy chọn hệ thống → Bàn phím.

  2. Nhấp vào nút Phím sửa đổi ở góc dưới bên phải.

  3. Nhấp vào hộp thả xuống bên cạnh khóa phần cứng mà bạn muốn sắp xếp lại và chọn Thoát.

  4. Bấm OK và đóng Tùy chọn hệ thống.

nhập mô tả hình ảnh ở đây

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


30

Điều duy nhất tôi biết cách làm là ánh xạ Caps Lock tới Control, hoặc Option hoặc Command. Điều này có thể được thực hiện thông qua khung Bàn phím & Chuột của Tùy chọn hệ thống. Nhấp vào "Phím bổ trợ" ở phía dưới bên trái và bạn sẽ có thể ánh xạ lại Caps Lock, Control, Option và Command, cho bất kỳ cái nào trong số đó.

@Craig: Điều này cho thấy Caps Lock có thể được sử dụng như một khóa thông thường - nghĩa là không chuyển đổi - khóa. Trên MacBook của tôi, vì tôi đã ánh xạ lại Caps Lock để điều khiển, đèn Caps Lock không bao giờ sáng. Nó chỉ đơn giản hoạt động như phím Control.

nhập mô tả hình ảnh ở đây


2
những bức ảnh đẹp ở đây: stackoverflow.com/questions/162896/ Mạnh
Kyle Cronin

1
Đáng buồn là không có bàn phím Logitech, vì vậy không có phím thoát trên CapsLock, không có vim == tôi trả lại bàn phím
Enric Ribas

14

Seil chưa có sẵn trên macOS Sierra (10.12 beta). Như vậy, tôi đã sử dụng Bàn phím Maestro với các cài đặt sau:nhập mô tả hình ảnh ở đây

Tín dụng cho nhận xét github này: https://github.com/tekezo/Seil/issues/68#issuecomment-230131664


2
Tôi đang sử dụng github.com/tekezo/Karabiner-Elements (hoạt động trên Sierra). Hoạt động rất tốt cho đến nay, mặc dù tôi ước nó đã "Control_L to Control_L (+ khi bạn chỉ gõ Control_L, gửi Escape)"
Atomkirk

1
@atomkirk Bạn có phiền khi chia sẻ cấu hình Karabiner JSON mà bạn đã sử dụng không?
LandonSchropp

1
{ "Profile": [{ "tên": "Cấu hình mặc định", "chọn": đúng, "simple_modifications": { "caps_lock": "thoát"}}]}
atomkirk


Karabiner đã lừa tôi với JSON của Atomkirk. Mặc dù ảnh chụp màn hình ở trên, UI Maestro là một sự hỗn loạn và tôi không thể cấu hình nó.
Paul

10

Đã thử một vài trong số các giải pháp này, tôi có một số lưu ý:

DoubleCommand sẽ không cho phép bạn trao đổi esc và caps-lock.

PCPalHack sẽ cho phép bạn ánh xạ capslock để thoát,nhưng không có khả năng ánh xạ thoát sang capslock. Các phiên bản gần đây sẽ cho phép bạn thực hiện hoán đổi hoàn toàn bằng cách chỉnh sửa cả hai phím.

Điều này có thể hoặc không đủ cho nhu cầu của bạn (tôi biết nó là của tôi).


1
PCPalHack không cho phép bạn ánh xạ thoát sang capslock, nhưng ứng dụng đồng hành KeyRemap4MacBook thì có. Nó cho phép bạn ánh xạ Thoát Escape sang CapsLock Cảnh và Chuyển Shift + Thoát sang CapsLock.
Rory O'Kane

9

Trong trường hợp bạn không muốn cài đặt ứng dụng của bên thứ ba và bạn thực sự chỉ quan tâm đến vim bên trong iTerm, các công việc sau:

Remap CapsLock để giúp đỡ như được mô tả ở đây .

Phiên bản ngắn: sử dụng plutil hoặc tương tự để chỉnh sửa ~/Library/Preferences/ByHost/.GlobalPreferences*.plist, nó sẽ trông giống như thế này:

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

Khởi động lại! Một đăng xuất và đăng nhập đơn giản không làm việc cho tôi.

Trong iTerm, thêm ánh xạ khóa mới cho Trợ giúp: gửi mã hex 0x1b, tương ứng với Escape.

Tôi biết đây không phải là chính xác những gì được yêu cầu, nhưng tôi cho rằng ý định của nhiều người đang tìm kiếm một giải pháp như thế này thực sự là biến thể chuyên biệt hơn này.


4

Để thực sự trao đổi khóa thoát bằng phím khóa mũ (không chỉ ánh xạ khóa này sang khóa khác) bằng cả PCPalHack và KeyRemap4MacBook, bạn phải làm theo hướng dẫn trong luồng này , ánh xạ khóa khóa mũ sang mã khóa không được sử dụng bởi bàn phím nhưng chiếm bởi KeyRemap4MacBook (ví dụ: 110). Sau đó, trong PCPalHack, chọn tùy chọn thích hợp ánh xạ mã khóa đó để thoát (trong trường hợp 110, đó là "Khóa ứng dụng để thoát"). Dưới đây là các tùy chọn KeyRemap4MacBook của bạn sẽ trông như thế nào (miễn là bạn đã chọn hộp kiểm "chỉ hiển thị được bật").

nhập mô tả hình ảnh ở đây

Ban đầu tôi đã cố gắng đăng thông tin này dưới dạng chỉnh sửa để trả lời xuất sắc của cwd , nhưng nó đã bị từ chối. Tôi khuyến khích bất cứ ai muốn đi theo con đường mà tôi mô tả trước tiên hãy đọc phản hồi của anh ấy / cô ấy.


2

Seil chưa hoạt động trên macOS Sierra, vì vậy tôi đang sử dụng Karabiner Elements , tải xuống từ https://pqrs.org/latest/karabiner-elements-latest.dmg .

Sử dụng GUI hoặc đặt các mục sau vào ~/.karabiner.d/configuration/karabiner.json:

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

Lưu ý rằng các phần tử Karabiner phá vỡ thanh cảm ứng và phím fn
mperrin


1

Mở tùy chọn Bàn phím và bấm các phím bổ trợ ... bạn có thể thay đổi phím khóa mũ để điều khiển, tùy chọn, thoát hoặc lệnh.

nhập mô tả hình ảnh ở đây


9
Không ai trong số đó là "Esc", mà người đăng đã hỏi về. Có khả năng sử dụng Vim.
Rafi Jacoby

1
@RafiJacoby Sự khác biệt giữa Escvà là Escapegì? (câu hỏi nghiêm túc)
byxor

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.