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))