Kbd olmadan Control + Shift tuşlarını tanımlama


11

Başkasının paketine biraz işlevsellik katmaya çalışıyorum ve bu yüzden kalıplarına saygı duymak istiyorum. Ne yazık ki, bu kalıplardan biri kullanmamaktır kbd.

Bir işlevi bağlamak zorundayım C-S-b, ama nasıl olduğunu anlayamıyorum. Bunu tek bir değiştirici (örneğin "\S-b") ile nasıl yapacağımı biliyorum , ancak birden çok değiştirici ile çalışmak için alamıyorum. Sadece (kbd "C-S-b")çıktısını ( [33554434]) değerlendirip kullanabileceğimi biliyorum , ama okunması daha kolay bir şey istiyorum.

İşte denediğim birkaç şey:

(define-key emacs-lisp-mode-map
  "\C-\S-b" 'test-command)
;;; Invalid modifier

(define-key emacs-lisp-mode-map
  [C-S-b] 'test-command)
;;; Does nothing

(define-key emacs-lisp-mode-map
  "\C-B" 'test-command)
;;; Binds C-b

Yanıtlar:


15

?Vektör temsilinde bir ve iki ters eğik çizgi eksik :

(global-set-key [?\C-\S-b] 'test-command)

Elisp kılavuzundaki Tuş Dizileri bölümü şunları söylüyor:

Fonksiyon tuşları, fare düğmesi olayları, sistem olaylarını ya gibi ASCII olmayan karakterler içeren Anahtar dizileri C-=veya H-adize olarak temsil edilemez; vektör olarak temsil edilmeleri gerekir.

Vektör gösteriminde, vektörün her bir elemanı Lisp formunda bir girdi olayını temsil eder . Örneğin, vektör [?\C-x ?l]anahtar dizisini temsil eder C-x l.

Ve Diğer Karakter Değiştirici Bitler altında şöyle diyor:

Shift biti için Lisp sözdizimi \S-; böylece, ?\C-\S-oya ?\C-\S-Oda kaydırılan-kontrol-o karakterini temsil eder.


1
Soru işaretlerinin ne anlama geldiğini anlamaya çalışıyordum. Cevabınız için şunları buldum: Ctl-Char Sözdizimi? \ C- ve Meta-Char Sözdizimi? \ M-
Kaushal Modi

Ve evet, Malabarba'nın sorusu bu sayfada Diğer Değiştirici Bitler'de yanıtlanıyor .
Kaushal Modi

@kaushalmodi Bağlantılar için teşekkürler! Neler olup bittiğini daha iyi anlamak için çok faydalıdırlar.
itsjeyd
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.