Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to set a key with C-x 8 prefix?

Tags:

emacs

Say I'd like to re-bind C-x 8 x to ξ. So I do:

(global-set-key (kbd "C-x 8 x") (lambda () (interactive) (insert "ξ")))

but it doesn't work: it still inserts the default x sign. Then I tried both:

(global-unset-key (kbd "C-x 8 x"))
(global-set-key (kbd "C-x 8 x") nil)

none gives any effect.

Edit:

Here's what I'm using now for Greeks:

(define-key 'iso-transl-ctl-x-8-map "a" [?α])
(define-key 'iso-transl-ctl-x-8-map "b" [?β])
(define-key 'iso-transl-ctl-x-8-map "g" [?γ])
(define-key 'iso-transl-ctl-x-8-map "d" [?δ])
(define-key 'iso-transl-ctl-x-8-map "e" [?ε])
(define-key 'iso-transl-ctl-x-8-map "z" [?ζ])
(define-key 'iso-transl-ctl-x-8-map "h" [?η])
(define-key 'iso-transl-ctl-x-8-map "o" [?θ])
(define-key 'iso-transl-ctl-x-8-map "i" [?ι])
(define-key 'iso-transl-ctl-x-8-map "k" [?κ])
(define-key 'iso-transl-ctl-x-8-map "l" [?λ])
(define-key 'iso-transl-ctl-x-8-map "m" [?μ])
(define-key 'iso-transl-ctl-x-8-map "n" [?ν])
(define-key 'iso-transl-ctl-x-8-map "x" [?ξ])
(define-key 'iso-transl-ctl-x-8-map "p" [?π])
(define-key 'iso-transl-ctl-x-8-map "r" [?ρ])
(define-key 'iso-transl-ctl-x-8-map "s" [?σ])
(define-key 'iso-transl-ctl-x-8-map (kbd "M-s") [?ς])
(define-key 'iso-transl-ctl-x-8-map "x" [?ξ])
(define-key 'iso-transl-ctl-x-8-map "t" [?τ])
(define-key 'iso-transl-ctl-x-8-map "y" [?υ])
(define-key 'iso-transl-ctl-x-8-map "f" [?φ])
(define-key 'iso-transl-ctl-x-8-map "v" [?χ])
(define-key 'iso-transl-ctl-x-8-map "j" [?ψ])
(define-key 'iso-transl-ctl-x-8-map "w" [?ω])
(define-key 'iso-transl-ctl-x-8-map "A" [?Α])
(define-key 'iso-transl-ctl-x-8-map "B" [?Β])
(define-key 'iso-transl-ctl-x-8-map "G" [?Γ])
(define-key 'iso-transl-ctl-x-8-map "D" [?Δ])
(define-key 'iso-transl-ctl-x-8-map "E" [?Ε])
(define-key 'iso-transl-ctl-x-8-map "Z" [?Ζ])
(define-key 'iso-transl-ctl-x-8-map "H" [?Η])
(define-key 'iso-transl-ctl-x-8-map "O" [?Θ])
(define-key 'iso-transl-ctl-x-8-map "I" [?Ι])
(define-key 'iso-transl-ctl-x-8-map "K" [?Κ])
(define-key 'iso-transl-ctl-x-8-map "L" [?Λ])
(define-key 'iso-transl-ctl-x-8-map "M" [?Μ])
(define-key 'iso-transl-ctl-x-8-map "N" [?Ν])
(define-key 'iso-transl-ctl-x-8-map "X" [?Ξ])
(define-key 'iso-transl-ctl-x-8-map "P" [?Π])
(define-key 'iso-transl-ctl-x-8-map "R" [?Ρ])
(define-key 'iso-transl-ctl-x-8-map "S" [?Σ])
(define-key 'iso-transl-ctl-x-8-map "T" [?Τ])
(define-key 'iso-transl-ctl-x-8-map "Y" [?Υ])
(define-key 'iso-transl-ctl-x-8-map "F" [?Φ])
(define-key 'iso-transl-ctl-x-8-map "V" [?Χ])
(define-key 'iso-transl-ctl-x-8-map "J" [?Ψ])
(define-key 'iso-transl-ctl-x-8-map "W" [?Ω])
like image 600
Adobe Avatar asked Sep 08 '12 14:09

Adobe


1 Answers

You have to set the key in iso-transl-ctl-x-8-map. Such as:

(eval-after-load 'iso-transl
  '(define-key iso-transl-ctl-x-8-map "x" "ξ"))

That's because C-x 8 is actually defined in key-translation-map, which overrides the global map.

like image 68
Sigma Avatar answered Oct 10 '22 00:10

Sigma