Tay dili karakterini girmeye yardımcı olan küçük bir mod oluşturmak istiyorum. İşte yazdığım şey:
(defvar thai-input-mode-map
(let ((map (make-sparse-keymap)))
(define-key map "2" (lambda () (interactive)
(replace-string "o" "ô")
))
map)
"Keymap used by `thai-input-mode'.")
(easy-mmode-define-minor-mode thai-input-mode
"Input mode for Thai"
nil " TH" thai-input-mode-map)
(global-set-key "\C-x\C-t" 'thai-input-mode)
Tabii ki daha fazla ayrıntı uygulamalıyım, ama zaten sorun yaşıyorum. Öncelikle, replace-string
işlev o
bir arabellekte olsa bile çalışmaz . İkincisi, sadece imleçteki bir karakterin nasıl değiştirileceğini çözemedim.
Bu tür bir işlevi uygulamak için nasıl yazabilirim?
Düzenle
Gilles'in tavsiyelerine uyarak şöyle yazdım:
(defvar thai-tone-conversion-list
'(("o" . "ô") ("u" . "û")))
(defun thai-add-tone ()
(interactive "*")
(when (let ((case-fold-search t))
(looking-back "[ou]"))
(replace-match (assoc (match-string 0) (thai-tone-conversion-list)))))
(defvar thai-input-mode-map
(let ((map (make-sparse-keymap)))
(define-key map "2" 'thai-add-tone)
map)
"Keymap used by `thai-input-mode'.")
(easy-mmode-define-minor-mode thai-input-mode
"Input mode for Thai"
nil " TH" thai-input-mode-map)
(global-set-key "\C-x\C-t" 'thai-input-mode)
Ama olsun assoc: Symbol's function definition is void: thai-tone-conversion-list
ben koyduğunuzda, hata 2
içinde thai-input-mode
.