As others have suggested, you'd be wise to avoid overwriting some of the most common keychord prefixes with your own keybindings.
Here's a stylized example of what's going to happen. Let's say we have a keychord prefix of C-c a
that allows you to send messages to yourself based on what key comes next:
(global-set-key (kbd "C-c aa") (lambda () (interactive) (message "You pressed a")))
(global-set-key (kbd "C-c ab") (lambda () (interactive) (message "You pressed b")))
Now, when you press C-c aa
, Emacs politely tells you that "You pressed a", and when you press C-c ab
, it informs you that "You pressed b". Such functionality!
However, let's now say you clobber your prefix by assigning it directly to a command:
(global-set-key (kbd "C-c a") (lambda () (interactive) (message "I've clobbered your other bindings!")))
Now, you can no longer get to C-c aa
to have Emacs tell you that "You pressed a", because the new binding short-circuits the whole affair at C-c a
and tells you that "I've clobbered your other bindings!"
Now, to make matters worse, C-c
and C-x
are two of the most common prefixes in Emacs, so if you hijack them, you'll have to rebind a very large chunk of the Emacs defaults.
Out of the box, C-x
has its own keymaps (in the plural!): ctl-x-map
, ctl-x-4-map
, and ctl-x-5-map
. Further, a great many modes bind C-c ...
to their core commands. C-c C-c
, for example, is the conventional way for modes to say "do that main thing I do."
In other words: if you really want common user interface keybindings, just use cua-mode
. The "finer control" you can get by hand-binding the keys will turn out to mean a massive rebinding undertaking on your part: yes, it will be finer control, but it's probably not worth your time.
C-c *
. Try to fully load emacs and thenM-: <return> (global-set-key (kbd "C-c") 'kill-ring-save) <return>
. And then try again.