Utilizzo di Caps Lock come Esc in Mac OS X


449

Come faccio a Caps Lockfunzionare come Escin Mac OS X?


31
Questo sembra un compito standard per un programmatore che usa vim; quindi il mio voto per riaprire
Jeromy Anglim

4
Un'alternativa è mappare Blocco maiuscole su Controllo (Preferenze di Sistema> Tastiera> Tasti modificatore) ed eseguire la sequenza di escape Ctrl + [per esc. Utile per Vim.
thoreostspore

2
Soluzione nativa che funziona in macOS Sierra: stackoverflow.com/a/41004544/1940276
Kevin Roth,

1
La soluzione nativa che funziona in macOS Sierra è la seconda migliore risposta qui (da @rkusa)
Marián Černý

Risposte:


394

Modifica: come descritto in questa risposta , le versioni più recenti di MacOS ora hanno il supporto nativo per il rebinding Caps Locka Escape. Pertanto non è più necessario installare software di terze parti per raggiungere questo obiettivo.


Ecco il mio tentativo di ottenere una risposta dettagliata e visiva (con collegamenti) su come raggiungere questo obiettivo utilizzando Seil (precedentemente noto come PCKeyboardHack).

  1. Innanzitutto, vai nelle Preferenze di Sistema , scegli Tastiera , quindi la scheda Tastiera (prima scheda) e fai clic su Tasti modificatore :

Passo 1

Nella finestra di dialogo popup impostare Caps Lock Key su No Action:

non scegliere alcuna azione

2) Ora, fai clic qui per scaricare Seil e installarlo:

3) Dopo l'installazione avrai installato una nuova applicazione (Mountain Lion e versioni successive) e se ti trovi su un sistema operativo precedente potresti dover controllare un nuovo pannello Preferenze di Sistema:

aprire seil o il riquadro delle preferenze

4) Seleziona la casella "Cambia maiuscole" e inserisci "53" come codice per la chiave di escape:

imposta il codice della tastiera

E hai finito! Se non funziona immediatamente, potrebbe essere necessario riavviare il computer.

Impressionato? Desideri un maggiore controllo?

Puoi anche dare un'occhiata a KeyRemap4MacBook che è in realtà lo strumento di rimappatura della tastiera di punta pqrs.org- è anche gratuito.

Se ti piacciono questi strumenti puoi fare una donazione . Non ho alcuna affiliazione con loro, ma sto usando questi strumenti da molto tempo e devo dire che i ragazzi laggiù hanno fatto un ottimo lavoro nel mantenerli, aggiungendo funzionalità e correggendo i bug.

Ecco uno screenshot per mostrare alcune delle (centinaia di) opzioni preselezionabili:

Immagine 1.png

PQRS ha anche una grande utility chiamata NoEjectDelay che puoi usare in combinazione con KeyRemap4MacBook per riprogrammare il tasto di espulsione. Dopo un po 'di modifica, ho impostato il mio per attivare AirPort Wifi.

Queste utility offrono flessibilità illimitata durante la rimappatura della tastiera del Mac. Divertiti!


3
Vorrei chiarire che sto usando PCKeyboardHack da solo senza KeyRemap4Macbook per quasi 2 anni per fare esattamente questo.
rossipedia

13
Si noti che se si utilizza una tastiera esterna, è necessario ripetere il passaggio uno (ovvero, maiuscolo = nessuna azione) per ciascuna tastiera. Non sono riuscito a fare questo passaggio per la mia tastiera esterna e, di conseguenza, il blocco maiuscole non ha risposto alla pressione molto rapida dei tasti a causa della protezione accidentale del blocco maiuscole. superuser.com/questions/317900/eliminate-macbook-capslock-delay
Jeromy Anglim

11
Ottimo tutorial. Ho mappato Caps Lock su Esc per circa un anno. Era incredibilmente efficiente. Un giorno, tuttavia, stavo accoppiando con uno sviluppatore senior. Gli ho detto che ho usato Vim come editor principale. Anche io, disse. Ha aperto la sua macchina e abbiamo iniziato a lavorare. Quando è arrivato il mio turno di modificare il codice, ho armeggiato e inciampato dappertutto perché il suo BLOC MAIUSC non era mappato. Continuavo a cercare di salire fino a Esc, ma ogni volta mi toccavo il tasto Caps e poi i miei normali comandi sarebbero cambiati. Mi ha insegnato che Ctrl-c ti riporterà anche in modalità Visual. Fatti un favore e inizia a usare Ctrl-c.
Campeterson

7
(Imparare di più ogni giorno) CTRL-[è in realtà l'equivalente corretto di ESC. stackoverflow.com/questions/5030164/...
campeterson

5
Sarebbe bello se si potesse anche modificare e menzione in alto che questa è ormai una caratteristica nativa in MacOS 10.12.1 per @ di rkusa risposta in modo che i nuovi utenti non devono andare scaricare software di terze parti
edhurtig

309

Da macOS 10.12.1 è possibile rimappare Caps Lockin Escmodo nativo (Preferenze di Sistema -> Tastiera -> Tasti modificatori).

inserisci qui la descrizione dell'immagine


11
Eccezionale! L'ho trovato dopo aver sentito il nuovo MBP non avere una chiave di escape. Sembra che Apple abbia anticipato alcuni contraccolpi.
Andy E,

1
Eseguendo El Capitan 10.11.6 e questa impostazione è già disponibile.
zool

1
Grazie a Dio per questo; dopo che Sierra ha rotto Seil / Karabiner pensavo di essere condannato.
Filippo,

4
Stranamente, sono il 10.11.6 e non ho questa opzione. Mi è permesso rimappare solo esc in maiuscolo, ctrl, opt o comando. Questo è vero per le mie tastiere WASD v2.
Benny Powers,

1
C'è un modo per farlo tramite la riga di comando? Forse in un metodo simile a questi? github.com/herrbischoff/awesome-osx-command-line#keyboard
Jordan Eldredge

40

Non ero contento di nessuna delle risposte qui e sono andato alla ricerca di una soluzione da riga di comando .

In macOS Sierra 10.12, Apple ha introdotto un nuovo modo per gli utenti di rimappare le chiavi.

  • Non c'è bisogno di armeggiare con le GUI di sistema
  • Non sono richiesti privilegi speciali
  • Completamente personalizzabile
  • Non c'è bisogno di installare cagate di terze parti come PCKeyboardHack / Seil / Karabiner / KeyRemap4MacBook / DoubleCommand / NoEjectDelay

Se ti suona bene, dai un'occhiata hidutil.

Ad esempio, per rimappare il blocco maiuscole per uscire, fare riferimento alla tabella delle chiavi e scoprire che il blocco maiuscole ha il codice di utilizzo 0x39 e escape ha il codice di utilizzo 0x29. Inserisci questi codici o con il valore esadecimale 0x700000000 nel sorgente e dest in questo modo:

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

È possibile aggiungere altri mapping nello stesso comando. Personalmente, mi piace rimappare il blocco maiuscole al backspace e rimappare il backspace per eliminare:

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

Per vedere la mappatura corrente:

hidutil property --get "UserKeyMapping"

Le modifiche andranno perse al riavvio del sistema. Se vuoi che persistano, inseriscili in uno script e imposta un hook di accesso:

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

3
+! questo è il modo moderno e giusto per rimappare le chiavi su macOS
Fanckush, il

2
Il problema di Karabiner con la ripetizione delle chiavi mi ha portato a cercare una soluzione nativa per la rimappatura delle chiavi. Questo post e un altro in apple.stackexchange.com sono stati di grande aiuto.
chb

Grazie per questo, +1! Ho aggiunto alcune note tangenziali al post di Apple che, si spera, aggiungono valore a noi poveri che non vogliono una chiave Esc ma non su Caps Lock.
triplo il

Ottimo metodo per i MacBook che hanno problemi con la tastiera integrata. Il mio stava causando problemi con le impostazioni della tastiera, quindi non ho potuto rimappare alcun tasto lì.
Igor,

Non sono stato in grado di farlo funzionare correttamente con il LoginHookmetodo - immagino che forse qualcosa dopo l'esecuzione seleziona le mie impostazioni della tastiera locale per una tastiera scandinava? Ad ogni modo, stackoverflow.com/a/22872222/874188 note LoginHookè deprecato e sostiene launchdinvece l' utilizzo .
triplo il

34

È possibile.

Soluzione 1

Da un arcticle su TrueAffection.net.

  • Scarica PCKeyboardHack e installalo.
  • Vai a PCKeyboardHack in Preferenze di Sistema.
  • Abilita 'Cambia maiuscole' e imposta il codice chiave su 53.

Soluzione 2

Questa soluzione non comporta l'applicazione di patch al driver della tastiera, ma offre una soluzione Vim specifica.

OS X supporta la mappatura del tasto BLOC MAIUSC su un sacco di chiavi, ma devi farlo "a mano", modificando i file .plist. Il processo è descritto in questo articolo . Come aggiunta a quel suggerimento ti suggerisco di impostare prima Caps-Lock su None nelle Preferenze di Sistema, quindi devi solo cambiare un valore nel file .plist. Inoltre, puoi ovviamente utilizzare l'Editor elenco proprietà invece di seguire i passaggi di conversione XML.

Il trucco è mappare il tasto BLOC MAIUSC sul tasto Aiuto (codice 6), che non si trova sulla maggior parte delle tastiere. Ma se lo è, verrà trattato come la chiave di inserimento, che probabilmente non utilizzerai comunque, poiché chiedi di rimappare il Blocco maiuscole per evitare di allungare le mani;)

È quindi possibile mappare la Guida e la Insertchiave su Escin vim.

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

Questo funzionerà per gvim (Vim.app). Non l'ho fatto funzionare con vim nel Terminale e non l'ho provato con MacVim.

Quindi, è piuttosto una soluzione complicata, quasi cotta o installare un pezzo di hacker di terze parti. La tua scelta;)

Edit: appena notato soluzione di 3, se si sta utilizzando MacVim è possibile utilizzare Ctrl, Optione Commandcome Esc. Con le Preferenze di Sistema è banale associare Caps Lock a una di quelle chiavi.


1
Ri soluzione 3: Come si usa Ctrl, Opzione o Comando come Esc in MacVim? Non riesco a trovare questa impostazione nelle preferenze.
Clizzin,

Lo si mappa nelle preferenze di sistema => tastiera.
Maletor,

9
Dov'è il suggerimento a cui alludi?
Matthew Schinckel,

2
Maletor - non c'è un posto dove dire a Macvim di usare il controllo come fuga
Scott Schulthess,

1
@MatthewSchinckel ecco uno di questi link: hints.macworld.com/article.php?story=20060825072451882
Ben Challenor,


30

L'unica cosa che so fare è mappare Blocco maiuscole su Controllo, Opzione o Comando. Questo può essere fatto tramite il pannello Tastiera e mouse delle Preferenze di Sistema. Fai clic su "Tasti modificatori" in basso a sinistra e sarai in grado di rimappare Blocco maiuscole, Controllo, Opzione e Comando a uno di quelli.

@Craig: questo suggerisce che Caps Lock può essere usato come un normale tasto, cioè senza interruttore. Sul mio MacBook, poiché ho mappato nuovamente Caps Lock su Control, la spia Caps Lock non si accende mai. Funziona semplicemente come il tasto Control.

inserisci qui la descrizione dell'immagine



1
Purtroppo non con le tastiere Logitech, quindi nessuna chiave di escape su CapsLock, nessuna tastiera di ritorno vim == me
Enric Ribas

14

Seil non è ancora disponibile su macOS Sierra (10.12 beta). Come tale, sto usando Keyboard Maestro con queste impostazioni:inserisci qui la descrizione dell'immagine

Ringraziamo questo commento github: https://github.com/tekezo/Seil/issues/68#issuecomment-230131664


2
Sto usando github.com/tekezo/Karabiner-Elements (che funziona su Sierra). Finora funzionava benissimo, anche se vorrei che "Control_L to Control_L (+ quando si digita solo Control_L, invia Escape)"
atomkirk

1
@atomkirk Ti dispiacerebbe condividere la configurazione JSON Karabiner che hai usato?
LandonSchropp,

1
{"profili": [{"nome": "Profilo predefinito", "selezionato": vero, "mod_modifiche": {"caps_lock": "escape"}}]}
atomkirk


Karabiner ha fatto il trucco per me con JSON di atomkirk. Nonostante lo screenshot sopra, l'interfaccia utente della tastiera Maestro è un caos e non sono riuscito a configurarlo.
Paul,

10

Dopo aver provato diverse di queste soluzioni, ho alcune note:

DoubleCommand vi non vi permetterà di esc swap e caps-lock.

PCKeyboardHack lo farà consentirà di mappare il maiuscolo per fuggire,ma non ha la capacità di mappare la escape su capslock. Le versioni recenti ti permetteranno di eseguire uno scambio completo modificando entrambi i tasti.

Questo può o non può essere sufficiente per le tue esigenze (so che è per le mie).


1
PCKeyboardHack non ti consente di mappare la fuga verso il capslock, ma l'app companion KeyRemap4MacBook lo fa. Ti consente di mappare "Escape to CapsLock" e "Shift + Escape to CapsLock".
Rory O'Kane,

9

Nel caso in cui non desideri installare un'app di terze parti e ti interessi davvero solo a VIM all'interno di iTerm, le seguenti operazioni:

Rimappa CapsLock per aiutare come descritto qui .

Versione breve: usa plutil o simile per modificarlo ~/Library/Preferences/ByHost/.GlobalPreferences*.plist, dovrebbe essere simile al seguente:

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

Ricomincia! Un semplice log-out e log-in non hanno funzionato per me.

In iTerm, aggiungi un nuovo mapping dei tasti per la Guida: invia il codice esadecimale 0x1b, che corrisponde a Escape.

So che questo non è esattamente ciò che è stato chiesto, ma presumo che l'intento di molte persone alla ricerca di una soluzione come questa sia in realtà questa variante più specializzata.


4

Per scambiare effettivamente la chiave di escape con il tasto BLOC MAIUSC (non solo mappare l'uno all'altro) utilizzando sia PCKeyboardHack che KeyRemap4MacBook, è necessario seguire le istruzioni in questo thread , associando il tasto BLOC MAIUSC a un codice non utilizzato dal tastiera ma rappresentata da KeyRemap4MacBook (es. 110). Quindi, in PCKeyboardHack, seleziona l'opzione appropriata che mappa quel codice chiave per fuggire (nel caso di 110, è "Chiave applicazione per scappare"). Ecco come dovrebbero apparire le preferenze di KeyRemap4MacBook (a condizione che tu abbia selezionato la casella di controllo "Mostra solo abilitato").

inserisci qui la descrizione dell'immagine

Inizialmente ho tentato di pubblicare queste informazioni come una modifica alla risposta eccellente di cwd , ma è stata respinta. Incoraggio chiunque voglia seguire il percorso che descrivo per leggere prima la sua risposta.




1

Apri le preferenze della tastiera e fai clic sui tasti modificatori ... puoi modificare il tasto BLOC MAIUSC in controllo, opzione, escape o comando.

inserisci qui la descrizione dell'immagine


9
Nessuno dei quali sono "Esc", di cui il poster ha chiesto. Probabile per l'utilizzo di Vim.
Rafi Jacoby,

1
@RafiJacoby Qual è la differenza tra Esce Escape? (domanda seria)
byxor

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.