emacs/sekka.el in sekka-0.9.1 vs emacs/sekka.el in sekka-0.9.2

- old
+ new

@@ -107,10 +107,15 @@ (defcustom sekka-kakutei-with-spacekey t "*Non-nil であれば、リアルタイムガイド表示中のSPACEキーでの確定動作を有効にする" :type 'boolean :group 'sekka) +(defcustom sekka-muhenkan-key "q" + "*Non-nil であれば、リアルタイムガイド表示中はqキーで無変換のままスペースを挿入する。q以外のキーも設定可能。 +但し、アルファベットのようにバッファにinsert可能な文字のみ設定可能。" + :type 'string + :group 'sekka) (defface sekka-guide-face '((((class color) (background light)) (:background "#E0E0E0" :foreground "#F03030"))) "リアルタイムガイドのフェイス(装飾、色などの指定)" @@ -1357,10 +1362,25 @@ (sekka-rK-trans)))) (t (sekka-insert-space arg)))))) +(defun sekka-muhenkan-key-init-function () + (define-key global-map sekka-muhenkan-key + '(lambda (&optional arg)(interactive "P") + (if (< 0 sekka-timer-rest) + ;; qキーで無変換+スペースを入力する + (cond + ((string= " " (char-to-string (preceding-char))) + ;; 2回目のキー入力で本来のsekka-muhenkan-keyで定義された文字を挿入する + (insert sekka-muhenkan-key)) + (t + ;; 無変換で進むために、スペースを開ける。 + (sekka-insert-space 1))) + (insert sekka-muhenkan-key))))) + + (defun sekka-realtime-guide () "リアルタイムで変換中のガイドを出す sekka-modeがONの間中呼び出される可能性がある。" (cond ((or (null sekka-mode) @@ -1482,10 +1502,12 @@ (> (prefix-numeric-value arg) 0)))) (when sekka-sticky-shift (add-hook 'sekka-mode-hook 'sekka-sticky-shift-init-function)) (add-hook 'sekka-mode-hook 'sekka-spacekey-init-function) + (when sekka-muhenkan-key + (add-hook 'sekka-mode-hook 'sekka-muhenkan-key-init-function)) (when sekka-mode (run-hooks 'sekka-mode-hook)) (sekka-debug-print "sekka-mode-internal :2\n") @@ -1528,10 +1550,10 @@ ;; input-method として登録する。 (set-language-info "Japanese" 'input-method "japanese-sekka") (setq default-input-method "japanese-sekka") (defconst sekka-version - "0.9.1" ;;SEKKA-VERSION + "0.9.2" ;;SEKKA-VERSION ) (defun sekka-version (&optional arg) "入力モード変更" (interactive "P") (message sekka-version))