2017-03-28 2 views
1

J'essaie de lier Ctrl + d et Ctrl + CAPS + d comme celui-ciCd et touches du clavier cdd dans emacs

(global-set-key (kbd "C-d") 'mc/mark-next-like-this) 
(global-set-key (kbd "C-S-d") 'mc/mark-next-like-this) 

Je suis incapable de se lier Ctrl + Maj combinaison, les sapins un des Binds "Cd" à la fois avec et sans décalage. Ce que je fais mal?

+0

@jenesaisquoi malheureusement cela ne change rien. – user136379

+0

Vous avez dit dans un autre commentaire que "Chk [Ctrl] + [Shift] + [d]' me dit 'Cd (traduit de CSd) exécute la commande delete-char'" donc Emacs * voit * la séquence prévue (nb cela peut ne pas être le cas dans un terminal, mais il est clair que votre instance Emacs reconnaît la séquence). Je ne peux pas reproduire le problème. Essayez avec 'emacs -Q' – phils

+0

@phils J'ai lu quelque part qu'emacs (dans le terminal au moins) a vraiment du mal à reconnaître la touche Shift, donc j'ai décidé de ne pas utiliser cette combinaison du tout ... – user136379

Répondre

0

Vous avez déjà la bonne syntaxe. Il est probable que C-S-d est lié dans un mappage de touches en mode majeur ou mineur qui prend le pas sur le mappage de touches global.

Essayez C-h k C-S-d (ou M-x describe-key C-S-d) pour savoir ce que la commande est en conflit et ce keymap il se trouve.

Ensuite, vous pouvez annuler la définition que la liaison clé en ajoutant une des options suivantes à ce mode de mode hook.

(local-unset-key (kbd "C-S-d")) 

OU:

J'aime utiliser le paquet bind-key. Avec cela vous feriez quelque chose comme:

(unbind-key "C-S-d" the-offending-mode-map) 
+0

Je pense que emacs doesn ' Je reconnais le 'shift' du tout ... J'ai fait "CMd" et ça marche. J'ai besoin d'utiliser Alt au lieu de Shift, mais ça suffit ... – user136379