web-dev-qa-db-fra.com

Comment désactiver / remplacer la touche Entrée pour la saisie semi-automatique?

Dans Sublime Text 3, je veux désactiver le enter pour sélectionner un élément dans la liste déroulante de saisie semi-automatique et n'autoriser tab clé pour le faire.

J'ai trouvé cette section dans le fichier Default (OSX).sublime-keymap intégré:

{ "keys": ["enter"], "command": "commit_completion", "context":
    [
        { "key": "auto_complete_visible" },
        { "key": "setting.auto_complete_commit_on_tab", "operand": false }
    ]
},

Il semble que si je retire ceci de la config enter ne sélectionnera pas d'élément dans la liste déroulante. Malheureusement, il n'est pas recommandé de modifier ce fichier, et uniquement de le remplacer dans mes fichiers User. Je ne pense pas que je puisse réellement le modifier sans modifier le contenu .app.

J'ai essayé de le remplacer en supprimant différentes sections, et aussi tout supprimer sauf "keys": ["enter"], Mais rien ne semble fonctionner.

Comment pourrais-je y parvenir sans modifier le fichier Default (OSX).sublime-keymap intégré et uniquement le fichier User/Default (OSX).sublime-keymap?

40
gak

Je n'ai jamais utilisé Sublime Text 3, mais je ne pense pas que ce qui suit ait changé depuis Sublime Text 2.

Ce que vous voulez réaliser est en fait une fonctionnalité standard dans Sublime Text. Il vous suffit de l'activer.

Cette ligne de votre code que vous avez cité…

{ "key": "setting.auto_complete_commit_on_tab", "operand": false }

… Signifie "n'exécuter la commande que si le paramètre appelé 'auto_complete_commit_on_tab' est défini sur false". Il suffit donc d'activer ce paramètre.

Dans Default/Preferences.sublime-settings:

// By default, auto complete will commit the current completion on enter.
// This setting can be used to make it complete on tab instead.
// Completing on tab is generally a superior option, as it removes
// ambiguity between committing the completion and inserting a newline.
"auto_complete_commit_on_tab": false,

Mettez "auto_complete_commit_on_tab": true dans User/Preferences.sublime-settings. Les deux fichiers mentionnés sont accessibles via le menu Préférences.

61
lydell

Vous pouvez l'assigner à une commande inexistante. Essayez d'ajouter ce qui suit à User/Default (OSX).sublime-keymap

{ "keys": ["enter"], "command": "noop", "context":
    [
        { "key": "auto_complete_visible" },
        { "key": "setting.auto_complete_commit_on_tab", "operand": false }
    ]
}

Accordé si vous installez/écrivez un plugin qui a une commande noop vous devrez changer cette commande.

Modifier

La solution de Lydell est meilleure :) J'ai oublié ce paramètre (bien que ce soit dans le contexte, j'aurais dû le savoir ...). Je suppose que ma réponse est un "comment désactiver un raccourci clavier" plus générique.

11
skuroda