Come disabilitare la combinazione di tasti Opzione-Spazio per spazi non interrotti?


59

Come disabilitare la fastidiosa combinazione di tasti Opzione-Spazio per spazi non interrotti?

Questo è molto fastidioso in Eclipse o nel terminale poiché spesso scrivo lo spazio non-break anziché uno normale.


3
FWIW, è indicato come il tasto opzione piuttosto che il tasto alt su un Mac.
Chealion,

È possibile fare in modo che il Terminale visualizzi nbsp come carattere inverso o in qualche modo, in modo da poterlo vedere immediatamente quando si digita male? Perché alcune volte in realtà non desidera digitare un nbsp.
forthrin

Risposte:


61

Rendi il tuo ~/Library/KeyBindings/DefaultKeyBinding.dictfile simile a questo (se non esiste crealo, se ci sono già dei collegamenti in esso basta aggiungere quello dal basso):

{
"~ " = ("insertText:", " ");
}

Cosa fa questo? Ogni volta che premi Opzione-Spazio invece di inserire uno spazio non interrotto, OS X ora inserisce uno spazio normale. Problema risolto.

È necessario riavviare il dispositivo per applicare questa modifica.


Non ho potuto ottenere questo lavoro su OSX 10.7 :(
Eemeli Kantola il

4
@EemeliKantola Funziona ancora per me, ma devi riaprire le applicazioni per applicare le modifiche. Terminal, Xcode e molte applicazioni multipiattaforma non supportano DefaultKeyBinding.dict.
Lri,

1
@LauriRanta Terminal sembra supportare il DefaultKeyBinding.dictfile.
Ragnar123,

Funziona su Yosemite 10.10.2. Ho creato la directory e il file da zero. Grazie mille!
Petr Cibulka,

1
Ha lavorato anche per me su El Capitan, OS X 10.11. Grazie!
n.

15

Come menzionato nei commenti, la soluzione fornita da Martin non funziona in alcune applicazioni, soprattutto (per me) nel mio editor, Sublime Text 2.

Quindi, per tutti voi che non siete disturbati da spazi di interruzione nel codice, è possibile aggiungere il seguente keybinding personalizzato nel keymap utente ( "Sublime Text 2 > Preferences > Key Bindings - User"):

{ "keys": ["alt+space"], "command": "insert_snippet", "args": {"contents": " " } }

Ciò inserirà uno spazio regolare anziché uno non-breaking.


11

Uso iTerm2 per la maggior parte del mio lavoro e la mappatura può essere aggiunta nel riquadro delle preferenze "Chiavi", aggiungendo una nuova combinazione di tasti in Preferenze -> Chiavi -> il pulsante più. Nota quando si aggiunge la chiave assicurarsi di inserire un singolo spazio nella casella inferiore come mostrato.

screencap di aggiungere la scorciatoia da tastiera


Ottima soluzione! Cavolo, sto ancora ricevendo preziose informazioni da un post di quattro anni. :-)
Malax,

Hai migliorato la mia giornata!
Enrique Marcos,

6

Puoi anche creare un layout di tastiera personalizzato con Ukelele (vedi https://superuser.com/a/515151 ) o utilizzare KeyRemap4MacBook :

https://github.com/tekezo/KeyRemap4MacBook/blob/master/src/core/server/Resources/include/checkbox/standards/space.xml

<item>
  <name>Non-Breaking Space to Normal Space</name>
  <appendix>(Option+Space to Space)</appendix>
  <appendix>(Option+Shift+Space to Space)</appendix>
  <identifier>remap.option_space_to_space</identifier>
  <autogen>__KeyToKey__ KeyCode::SPACE, MODIFIERFLAG_EITHER_LEFT_OR_RIGHT_OPTION | ModifierFlag::NONE, KeyCode::SPACE</autogen>
  <autogen>
    __KeyToKey__
    KeyCode::SPACE, MODIFIERFLAG_EITHER_LEFT_OR_RIGHT_OPTION | MODIFIERFLAG_EITHER_LEFT_OR_RIGHT_SHIFT | ModifierFlag::NONE,
    KeyCode::SPACE,
  </autogen>
</item>

3

Dato che questa è la risposta che Google ti mostra quando cerchi "Come disabilitare gli spazi non interrompibili in Sublime Text" ( vedi la risposta di x3ro ), ho pensato di pubblicare la risposta per Sublime Text su Linux. Aggiungi questo ai tuoi collegamenti chiave:

{ "keys": [" "], "command": "insert_snippet", "args": { "contents": " " } }

Vai su "Preferenze" → "Associazioni di tasti - Utente" per modificare le associazioni di tasti.

Si noti che lo spazio in "keys": [" "]è uno spazio continuo.

Si noti inoltre che questa associazione di tasti influisce anche sui widget, come la casella di ricerca. In altre parole, non puoi più digitare spazi non interrompibili nella casella di ricerca, il che potrebbe essere un problema. Per disabilitare gli spazi non interrompibili solo nell'editor di testo, utilizzare invece questa associazione di tasti:

{
    "keys": [" "],
    "command": "insert_snippet", "args": { "contents": " " },
    "context": [
        { "key": "setting.is_widget", "operand": false }
    ]
}

3

Una possibile soluzione globale è impostare alt- spacesu qualcos'altro come Mostra centro notifiche in Preferenze di Sistema> Tastiera> Scorciatoie> Controllo missione.

inserisci qui la descrizione dell'immagine


3

Usando OSX Sierra (10.12.6) e risolto molto facilmente usando Karabiner-Elements:

https://github.com/tekezo/Karabiner-Elements

Una volta aperto, vai su "Modifiche complesse"> "Aggiungi regola"> "Importa più regole da Internet" e scarica la regola "Disabilita alt + barra spaziatrice (spazio non infrangibile)". Aggiungilo e il gioco è fatto!


3

Inoltre non sono riuscito a far funzionare la correzione KeyBindings. Simile alla risposta Sublime, ho finito per configurare il mio editor (VS Code) per inserire uno spazio normale aggiungendo

{ "key": "alt+space", "command": "type", 
                      "when": "editorTextFocus",
                      "args": { "text": " " } }

al mio globale keybindings.json( Preferences: Open Keyboard Shortcuts Filenella tavolozza di comando).


1

Per me la correzione di KeyBindings non ha funzionato. Uso Coda2 come editor. Sono riuscito a far funzionare la sostituzione con BetterTouchTool.

BetterTouchTool: "Tastiera> Aggiungi nuova scorciatoia" quindi digita "alt + spazio" in "Scorciatoia da tastiera" e "Spazio" in "Attiva altra scorciatoia da tastiera"


Grazie !, bettertouchtool ha una soluzione a tutti i problemi: p
Steven.B
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.