Ini sepertinya tugas standar untuk seorang programmer yang menggunakan vim; karenanya suara saya untuk dibuka kembali
Jeromy Anglim
4
Alternatif adalah untuk memetakan Caps Lock Control (System Preferences> Keyboard> Modifier Keys) dan mengeksekusi urutan escape Ctrl + [untuk esc. Berguna untuk Vim.
Edit: Seperti dijelaskan dalam jawaban ini , versi yang lebih baru dari MacOS sekarang memiliki dukungan asli untuk rebinding Caps Lockuntuk Escape. Jadi tidak perlu lagi menginstal perangkat lunak pihak ketiga untuk mencapai hal ini.
Inilah usaha saya pada jawaban walk-through visual yang komprehensif (dengan tautan) tentang bagaimana mencapai ini menggunakan Seil (sebelumnya dikenal sebagai PCKeyboardHack).
Pertama, masuk ke System Preferences , pilih Keyboard , lalu Tab Keyboard (tab pertama), dan klik Modifier Keys :
Dalam dialog munculan, tetapkan Caps Lock Key ke No Action:
3) Setelah instalasi, Anda akan menginstal Aplikasi baru (Mountain Lion dan yang lebih baru) dan jika Anda menggunakan OS yang lebih lama, Anda mungkin harus memeriksa panel System Preferences baru:
4) Centang kotak yang mengatakan "Ubah Caps Lock" dan masukkan "53" sebagai kode untuk tombol escape:
Dan kamu selesai! Jika tidak segera bekerja, Anda mungkin perlu me-restart mesin Anda.
Terkesan? Ingin Lebih Banyak Kontrol?
Anda mungkin juga ingin memeriksa KeyRemap4MacBook yang sebenarnya merupakan alat pembuat ulang keyboard andalan pqrs.org- juga gratis.
Jika Anda menyukai alat ini, Anda dapat memberikan sumbangan . Saya tidak memiliki afiliasi dengan mereka, tetapi saya telah menggunakan alat ini untuk waktu yang lama dan harus mengatakan orang-orang di sana telah melakukan pekerjaan yang sangat baik untuk mempertahankan ini, menambahkan fitur dan memperbaiki bug.
Berikut screenshot untuk menunjukkan beberapa (ratusan) opsi yang dapat dipilih:
PQRS juga memiliki utilitas hebat bernama NoEjectDelay yang dapat Anda gunakan bersama dengan KeyRemap4MacBook untuk memprogram ulang kunci Eject. Setelah sedikit mengutak-atik, saya telah mengatur saya untuk beralih AirPort Wifi.
Utilitas ini menawarkan fleksibilitas tak terbatas saat memetakan kembali keyboard Mac. Selamat bersenang-senang!
Saya ingin mengklarifikasi bahwa saya telah menggunakan PCKeyboardHack sendirian tanpa KeyRemap4Macbook selama hampir 2 tahun untuk melakukan hal ini.
rossipedia
13
Perhatikan bahwa jika Anda menggunakan keyboard eksternal, Anda harus mengulangi langkah pertama (yaitu, caps lock = no action) untuk setiap keyboard. Saya gagal melakukan langkah ini untuk keyboard eksternal saya, dan sebagai hasilnya caps lock tidak merespon penekanan tombol yang sangat cepat karena perlindungan caps lock yang tidak disengaja. superuser.com/questions/317900/eliminate-macbook-capslock-delay
Jeromy Anglim
11
Tutorial yang bagus. Saya memetakan Caps Lock ke Esc selama sekitar satu tahun. Itu sangat efisien. Namun suatu hari, saya berpasangan dengan pengembang senior. Saya mengatakan kepadanya bahwa saya menggunakan Vim sebagai editor utama saya. Aku juga, katanya. Dia membuka mesinnya dan kami mulai bekerja. Ketika tiba giliran saya untuk mengedit kode, saya gagal dan tersandung karena Caps Lock-nya tidak dipetakan. Aku terus berusaha terus sampai ke Esc, tapi aku memukul Caps sesekali dan kemudian perintah normalku akan berubah. Dia mengajari saya bahwa Ctrl-c juga akan menurunkan Anda kembali ke mode Visual. Bantulah diri Anda dan mulai menggunakan Ctrl-c.
Akan lebih bagus jika Anda juga dapat mengedit dan menyebutkan di atas bahwa ini sekarang adalah fitur asli di macOS 10.12.1 per @ rkusa jawaban sehingga pengguna baru tidak harus mengunduh perangkat lunak pihak ketiga
edhurtig
309
Sejak MacOS 10.12.1 adalah mungkin untuk remap Caps Lockke Escnative (System Preferences -> Keyboard -> Modifier Keys).
Luar biasa! Saya menemukan ini setelah mendengar MBP baru tidak akan memiliki kunci keluar. Sepertinya Apple mengantisipasi beberapa reaksi.
Andy E
1
Menjalankan El Capitan 10.11.6 dan pengaturan ini sudah tersedia.
zool
1
Terima kasih Tuhan untuk ini; setelah Sierra mematahkan Seil / Karabiner, kupikir aku sudah dikutuk.
Philip
4
Anehnya, saya di 10.11.6 dan tidak memiliki opsi ini. Saya hanya diizinkan untuk memetakan ulang esc menjadi caps, ctrl, opt, atau command. Ini berlaku untuk keyboard WASD v2 saya.
Saya tidak senang dengan salah satu jawaban di sini, dan pergi mencari solusi baris perintah .
Di macOS Sierra 10.12, Apple memperkenalkan cara baru bagi pengguna untuk memetakan kembali kunci.
Tidak perlu bermain-main dengan sistem GUI
Tidak ada hak khusus yang diperlukan
Sepenuhnya dapat dikustomisasi
Tidak perlu menginstal omong kosong pihak ketiga seperti PCKeyboardHack / Seil / Karabiner / KeyRemap4MacBook / DoubleCommand / NoEjectDelay
Jika itu terdengar bagus untuk Anda, lihatlah hidutil.
Misalnya, untuk memetakan ulang caps-lock untuk keluar, lihat tabel kunci dan temukan bahwa caps-lock memiliki kode penggunaan 0x39 dan escape memiliki kode penggunaan 0x29. Masukkan kode-kode ini atau akan dengan nilai hex 0x700000000 di sumber dan dest seperti ini:
Anda dapat menambahkan pemetaan lain dalam perintah yang sama. Secara pribadi, saya ingin memetakan kembali caps-lock ke backspace, dan remap backspace untuk menghapus:
Terima kasih untuk ini, +1! Saya menambahkan beberapa catatan tangensial ke pos Apple yang semoga menambah nilai bagi kita orang miskin yang tidak menginginkan kunci Esc tetapi tidak pada Caps Lock.
tripleee
Metode hebat untuk MacBook yang memiliki masalah dengan keyboard bawaan. Milik saya menyebabkan masalah dengan Pengaturan Keyboard sehingga saya tidak dapat memetakan ulang tombol apa pun di sana.
Igor
Saya tidak dapat membuat ini berfungsi dengan baik dengan LoginHookmetode - saya kira mungkin sesuatu setelah dieksekusi memilih pengaturan keyboard lokal saya untuk keyboard Skandinavia? Bagaimanapun, stackoverflow.com/a/22872222/874188 catatan yang LoginHooksudah usang, dan menganjurkan menggunakan launchdsebagai gantinya.
Aktifkan 'Ubah Caps Lock' dan atur kode kunci ke 53.
Solusi 2
Solusi ini tidak melibatkan menambal driver keyboard, tetapi memberi Anda solusi spesifik Vim.
OS X mendukung pemetaan tombol Caps Lock ke sejumlah besar tombol, tetapi Anda harus melakukannya 'dengan tangan', mengedit file .plist. Prosesnya dijelaskan dalam artikel ini . Sebagai tambahan pada petunjuk itu, saya sarankan Anda mengatur Caps-Lock menjadi None di System Preferences, maka Anda hanya perlu mengubah satu nilai dalam file .plist. Selain itu, Anda tentu saja dapat menggunakan Editor Daftar Properti alih-alih melalui langkah-langkah konversi XML.
Caranya adalah dengan memetakan tombol Caps Lock ke tombol Bantuan (kode 6), yang tidak ada di sebagian besar keyboard. Tetapi jika ya, itu akan diperlakukan sebagai kunci masukkan, yang mungkin tidak Anda gunakan, karena Anda bertanya tentang memetakan kembali Caps Lock Anda untuk mencegah peregangan tangan Anda;)
Anda kemudian dapat memetakan Bantuan dan Insertkunci Escdalam vim.
Ini akan bekerja untuk gvim (Vim.app). Saya tidak membuatnya bekerja dengan vim di Terminal dan saya belum mengujinya dengan MacVim.
Jadi, ini agak rumit, solusi setengah matang atau menginstal peretasan pihak ketiga. Pilihan Anda;)
Sunting: Hanya perhatikan solusi 3, jika Anda menggunakan MacVim, Anda dapat menggunakannya Ctrl, Optiondan Commandsebagai Esc. Dengan System Preferences, mudah untuk memetakan Caps Lock ke salah satu tombol itu.
Satu-satunya yang saya tahu bagaimana melakukannya adalah memetakan Caps Lock ke Control, atau Option, atau Command. Ini dapat dilakukan melalui panel Keyboard & Mouse Preferensi Sistem. Klik pada "Tombol Pengubah" di kiri bawah dan Anda akan dapat memetakan ulang Caps Lock, Kontrol, Opsi, dan Perintah, ke salah satu dari mereka.
@Craig: Ini menunjukkan bahwa Caps Lock dapat digunakan sebagai tombol normal - yaitu, non-beralih -. Di MacBook saya, karena saya telah memetakan kembali Caps Lock untuk Kontrol, lampu Caps Lock tidak pernah menyala. Ini hanya bertindak seperti tombol Kontrol.
Saya menggunakan github.com/tekezo/Karabiner-Elements (yang berfungsi di Sierra). Bekerja sangat baik sejauh ini, meskipun saya berharap itu berhasil "Control_L ke Control_L (+ ketika Anda mengetik Control_L saja, kirim Escape)"
atomkirk
1
@atomkirk Maukah Anda berbagi konfigurasi Karabiner JSON yang Anda gunakan?
Karabiner melakukan trik untuk saya dengan atomonk JSON. Meskipun screenshot di atas, Keyboard Maestro UI berantakan dan saya tidak bisa mengkonfigurasinya.
Paul
10
Setelah mencoba beberapa solusi ini, saya punya beberapa catatan:
DoubleCommand tidak akan memungkinkan Anda untuk menukar esc dan caps-lock.
PCKeyboardHack akan memungkinkan Anda untuk memetakan capslock untuk melarikan diri,tetapi tidak memiliki kemampuan untuk memetakan melarikan diri ke capslock. Versi terbaru akan memungkinkan Anda untuk melakukan pertukaran lengkap dengan mengedit kedua tombol.
Ini mungkin atau mungkin tidak cukup untuk kebutuhan Anda (saya tahu itu untuk saya).
PCKeyboardHack tidak membiarkan Anda memetakan melarikan diri ke capslock, tetapi aplikasi pendamping KeyRemap4MacBook tidak. Ini memungkinkan Anda memetakan "Escape to CapsLock" dan "Shift + Escape to CapsLock".
Rory O'Kane
9
Jika Anda tidak ingin menginstal aplikasi pihak ketiga dan Anda benar-benar hanya peduli vim di dalam iTerm, berikut ini berfungsi:
Remap CapsLock untuk Membantu seperti yang dijelaskan di sini .
Versi singkat: gunakan plutil atau mirip dengan edit ~/Library/Preferences/ByHost/.GlobalPreferences*.plist, seharusnya terlihat mirip dengan ini:
Mengulang kembali! Log-out dan log-in yang sederhana tidak berhasil untuk saya.
Di iTerm, tambahkan pemetaan kunci baru untuk Bantuan: kirim kode hex 0x1b, yang sesuai dengan Escape.
Saya tahu ini bukan apa yang diminta, tetapi saya berasumsi maksud banyak orang mencari solusi seperti ini sebenarnya adalah varian yang lebih khusus ini.
Untuk benar-benar menukar tombol escape dengan tombol caps lock (tidak hanya memetakan satu ke yang lain) menggunakan PCKeyboardHack dan KeyRemap4MacBook, Anda harus mengikuti petunjuk di utas ini , memetakan kunci caps lock ke kode kunci yang tidak digunakan oleh keyboard tetapi dicatat oleh KeyRemap4MacBook (mis. 110). Kemudian, di PCKeyboardHack, pilih opsi yang sesuai yang memetakan kode kunci untuk melarikan diri (dalam kasus 110, itu "Application Key to Escape"). Begini tampilan preferensi KeyRemap4MacBook Anda (asalkan Anda telah memilih kotak centang "show enabled only").
Saya awalnya mencoba memposting informasi ini sebagai edit untuk jawaban yang sangat baik cwd , tetapi ditolak. Saya mendorong siapa pun yang ingin pergi rute yang saya jelaskan untuk pertama kali membaca jawabannya.
Ctrl + [
untukesc
. Berguna untuk Vim.Jawaban:
Edit: Seperti dijelaskan dalam jawaban ini , versi yang lebih baru dari MacOS sekarang memiliki dukungan asli untuk rebinding Caps Lockuntuk Escape. Jadi tidak perlu lagi menginstal perangkat lunak pihak ketiga untuk mencapai hal ini.
Inilah usaha saya pada jawaban walk-through visual yang komprehensif (dengan tautan) tentang bagaimana mencapai ini menggunakan Seil (sebelumnya dikenal sebagai
PCKeyboardHack
).Dalam dialog munculan, tetapkan Caps Lock Key ke
No Action
:2) Sekarang, klik di sini untuk mengunduh Seil dan menginstalnya:
3) Setelah instalasi, Anda akan menginstal Aplikasi baru (Mountain Lion dan yang lebih baru) dan jika Anda menggunakan OS yang lebih lama, Anda mungkin harus memeriksa panel System Preferences baru:
4) Centang kotak yang mengatakan "Ubah Caps Lock" dan masukkan "53" sebagai kode untuk tombol escape:
Dan kamu selesai! Jika tidak segera bekerja, Anda mungkin perlu me-restart mesin Anda.
Terkesan? Ingin Lebih Banyak Kontrol?
Anda mungkin juga ingin memeriksa KeyRemap4MacBook yang sebenarnya merupakan alat pembuat ulang keyboard andalan
pqrs.org
- juga gratis.Jika Anda menyukai alat ini, Anda dapat memberikan sumbangan . Saya tidak memiliki afiliasi dengan mereka, tetapi saya telah menggunakan alat ini untuk waktu yang lama dan harus mengatakan orang-orang di sana telah melakukan pekerjaan yang sangat baik untuk mempertahankan ini, menambahkan fitur dan memperbaiki bug.
Berikut screenshot untuk menunjukkan beberapa (ratusan) opsi yang dapat dipilih:
PQRS juga memiliki utilitas hebat bernama NoEjectDelay yang dapat Anda gunakan bersama dengan KeyRemap4MacBook untuk memprogram ulang kunci Eject. Setelah sedikit mengutak-atik, saya telah mengatur saya untuk beralih AirPort Wifi.
Utilitas ini menawarkan fleksibilitas tak terbatas saat memetakan kembali keyboard Mac. Selamat bersenang-senang!
sumber
CTRL-[
sebenarnya setara dengan ESC. stackoverflow.com/questions/5030164/…Sejak MacOS 10.12.1 adalah mungkin untuk remap Caps Lockke Escnative (System Preferences -> Keyboard -> Modifier Keys).
sumber
Saya tidak senang dengan salah satu jawaban di sini, dan pergi mencari solusi baris perintah .
Di macOS Sierra 10.12, Apple memperkenalkan cara baru bagi pengguna untuk memetakan kembali kunci.
Jika itu terdengar bagus untuk Anda, lihatlah
hidutil
.Misalnya, untuk memetakan ulang caps-lock untuk keluar, lihat tabel kunci dan temukan bahwa caps-lock memiliki kode penggunaan 0x39 dan escape memiliki kode penggunaan 0x29. Masukkan kode-kode ini atau akan dengan nilai hex 0x700000000 di sumber dan dest seperti ini:
Anda dapat menambahkan pemetaan lain dalam perintah yang sama. Secara pribadi, saya ingin memetakan kembali caps-lock ke backspace, dan remap backspace untuk menghapus:
Untuk melihat pemetaan saat ini:
Perubahan Anda akan hilang pada saat reboot sistem. Jika Anda ingin mereka tetap ada, masukkan ke dalam skrip dan siapkan pengait login:
sumber
LoginHook
metode - saya kira mungkin sesuatu setelah dieksekusi memilih pengaturan keyboard lokal saya untuk keyboard Skandinavia? Bagaimanapun, stackoverflow.com/a/22872222/874188 catatan yangLoginHook
sudah usang, dan menganjurkan menggunakanlaunchd
sebagai gantinya.Itu mungkin.
Solusi 1
Dari sebuah artikel di TrueAffection.net.
Solusi 2
Solusi ini tidak melibatkan menambal driver keyboard, tetapi memberi Anda solusi spesifik Vim.
OS X mendukung pemetaan tombol Caps Lock ke sejumlah besar tombol, tetapi Anda harus melakukannya 'dengan tangan', mengedit file .plist. Prosesnya dijelaskan dalam artikel ini . Sebagai tambahan pada petunjuk itu, saya sarankan Anda mengatur Caps-Lock menjadi None di System Preferences, maka Anda hanya perlu mengubah satu nilai dalam file .plist. Selain itu, Anda tentu saja dapat menggunakan Editor Daftar Properti alih-alih melalui langkah-langkah konversi XML.
Caranya adalah dengan memetakan tombol Caps Lock ke tombol Bantuan (kode 6), yang tidak ada di sebagian besar keyboard. Tetapi jika ya, itu akan diperlakukan sebagai kunci masukkan, yang mungkin tidak Anda gunakan, karena Anda bertanya tentang memetakan kembali Caps Lock Anda untuk mencegah peregangan tangan Anda;)
Anda kemudian dapat memetakan Bantuan dan Insertkunci Escdalam vim.
Ini akan bekerja untuk gvim (Vim.app). Saya tidak membuatnya bekerja dengan vim di Terminal dan saya belum mengujinya dengan MacVim.
Jadi, ini agak rumit, solusi setengah matang atau menginstal peretasan pihak ketiga. Pilihan Anda;)
Sunting: Hanya perhatikan solusi 3, jika Anda menggunakan MacVim, Anda dapat menggunakannya Ctrl, Optiondan Commandsebagai Esc. Dengan System Preferences, mudah untuk memetakan Caps Lock ke salah satu tombol itu.
sumber
Sekarang jauh lebih mudah untuk memetakan Caps Lockkunci Escdengan macOS Sierra.
Buka System Preferences → Keyboard.
Klik tombol Modifier Keys di sudut kanan bawah.
Klik kotak drop down di sebelah tombol perangkat keras yang ingin Anda remap, dan pilih Escape.
Klik OK dan tutup System Preferences.
https://9to5mac.com/2016/10/25/remap-escape-key-action-macbook-pro-macos-sierra-10-12-1-modifier-keys/
sumber
Satu-satunya yang saya tahu bagaimana melakukannya adalah memetakan Caps Lock ke Control, atau Option, atau Command. Ini dapat dilakukan melalui panel Keyboard & Mouse Preferensi Sistem. Klik pada "Tombol Pengubah" di kiri bawah dan Anda akan dapat memetakan ulang Caps Lock, Kontrol, Opsi, dan Perintah, ke salah satu dari mereka.
@Craig: Ini menunjukkan bahwa Caps Lock dapat digunakan sebagai tombol normal - yaitu, non-beralih -. Di MacBook saya, karena saya telah memetakan kembali Caps Lock untuk Kontrol, lampu Caps Lock tidak pernah menyala. Ini hanya bertindak seperti tombol Kontrol.
sumber
Seil belum tersedia di macOS Sierra (10.12 beta). Karena itu, saya telah menggunakan Keyboard Maestro dengan pengaturan ini:
Penghargaan untuk komentar github ini: https://github.com/tekezo/Seil/issues/68#issuecomment-230131664
sumber
Setelah mencoba beberapa solusi ini, saya punya beberapa catatan:
DoubleCommand tidak akan memungkinkan Anda untuk menukar esc dan caps-lock.
PCKeyboardHack akan memungkinkan Anda untuk memetakan capslock untuk melarikan diri,
tetapi tidak memiliki kemampuan untuk memetakan melarikan diri ke capslock. Versi terbaru akan memungkinkan Anda untuk melakukan pertukaran lengkap dengan mengedit kedua tombol.Ini mungkin atau mungkin tidak cukup untuk kebutuhan Anda (saya tahu itu untuk saya).
sumber
Jika Anda tidak ingin menginstal aplikasi pihak ketiga dan Anda benar-benar hanya peduli vim di dalam iTerm, berikut ini berfungsi:
Remap CapsLock untuk Membantu seperti yang dijelaskan di sini .
Versi singkat: gunakan plutil atau mirip dengan edit
~/Library/Preferences/ByHost/.GlobalPreferences*.plist
, seharusnya terlihat mirip dengan ini:Mengulang kembali! Log-out dan log-in yang sederhana tidak berhasil untuk saya.
Di iTerm, tambahkan pemetaan kunci baru untuk Bantuan: kirim kode hex 0x1b, yang sesuai dengan Escape.
Saya tahu ini bukan apa yang diminta, tetapi saya berasumsi maksud banyak orang mencari solusi seperti ini sebenarnya adalah varian yang lebih khusus ini.
sumber
Untuk benar-benar menukar tombol escape dengan tombol caps lock (tidak hanya memetakan satu ke yang lain) menggunakan PCKeyboardHack dan KeyRemap4MacBook, Anda harus mengikuti petunjuk di utas ini , memetakan kunci caps lock ke kode kunci yang tidak digunakan oleh keyboard tetapi dicatat oleh KeyRemap4MacBook (mis. 110). Kemudian, di PCKeyboardHack, pilih opsi yang sesuai yang memetakan kode kunci untuk melarikan diri (dalam kasus 110, itu "Application Key to Escape"). Begini tampilan preferensi KeyRemap4MacBook Anda (asalkan Anda telah memilih kotak centang "show enabled only").
Saya awalnya mencoba memposting informasi ini sebagai edit untuk jawaban yang sangat baik cwd , tetapi ditolak. Saya mendorong siapa pun yang ingin pergi rute yang saya jelaskan untuk pertama kali membaca jawabannya.
sumber
Seil belum bekerja di macOS Sierra, jadi saya menggunakan Karabiner Elements , unduh dari https://pqrs.org/latest/karabiner-elements-latest.dmg .
Gunakan GUI atau masukkan yang berikut ini ke
~/.karabiner.d/configuration/karabiner.json
:sumber
Anda juga dapat menggunakan Perintah Ganda untuk memetakan kembali ini, dan kunci lainnya.
IIRC, itu akan memetakan Caps Lock ke Esc.
sumber
Buka preferensi Keyboard dan klik tombol pengubah ... Anda dapat mengubah tombol caps lock untuk mengontrol, opsi, melarikan diri, atau perintah.
sumber
Esc
danEscape
? (pertanyaan serius)Karabiner-Elements Penyesuai keyboard yang kuat dan stabil untuk macOS. (freeware)
https://pqrs.org/osx/karabiner/index.html
Bekerja untukku agar Mojave mengubah caps-lock menjadi backspace
sumber