;; ;; yc.el をVJE-β 2.5 風のキーアサインに変更する elisp ;; ;; 2004.02.28 by [yoh] (yoh@flcl.org) ;; 2005.09.08 by [yoh] (yoh@flcl.org) ;; ;; [インストール] ;; .emacs の任意の箇所に記入するか、 load-file して下さい。 ;; ;; $ wget -O ~/lisp/yc-keys.el http://www.flcl.org/~yoh/junk/dot_emacs_for_yc-el.el ;; ;; (global-set-key "\C-o" 'toggle-input-method) ;; (define-key vz-mode-map "\C-o" 'toggle-input-method) ;; vz.el の場合 ;; (load "~/lisp/yc-keys.el" nil t nil) ;; ;; [使い方] ;; toggle-input-method で yc-mode を有効にすると、 yc-edit-mode となり、 ;; 以下のようになる: ;; アルファベット、数字: ローマ字入力 ;; C-s : カーソルを左へ ;; ← : カーソルを左へ ;; C-d : カーソルを右へ ;; → : カーソルを右へ ;; C-a : カーソルを左端へ ;; ↑ : カーソルを左端へ ;; C-f : カーソルを右端へ ;; ↓ : カーソルを右端へ ;; C-g : キャンセル ;; ESCAPE : キャンセル ;; C-h : 直前の一文字削除 ;; C-m : 無変換確定 ;; C-j : ひらがな変換 -> 変換モード (yc-henkan-mode へ移行) ;; C-k : カタカナ変換 -> 変換モード (yc-henkan-mode へ移行) ;; C-v : カタカナ変換 -> 変換モード (yc-henkan-mode へ移行) ;; C-l : alfabet変換 -> 変換モード (yc-henkan-mode へ移行) ;; C-p : alfabet変換 -> 変換モード (yc-henkan-mode へ移行) ;; C-o : 半角カナ変換 -> 変換モード (yc-henkan-mode へ移行) ;; C-e : かな漢字変換 -> 変換モード (yc-henkan-mode へ移行) ;; C-x : かな漢字変換 -> 変換モード (yc-henkan-mode へ移行) ;; C-c : かな漢字変換 -> 変換モード (yc-henkan-mode へ移行) ;; ;; ;; ;; ALT+SPACE で、 yc-mode に移行。 C-j で boiled-egg 風のリージョン ;; 変換。(yc.el オリジナルと同じ)それ以降のカーソル移動等は上記キー定義と同等。 ;; ;; yc.el をロードする前に、 C-j を無効化する (defvar yc-rK-trans-key "" "*漢字変換キーを設定する") (load "yc") (setq default-input-method "japanese-yc") (define-key yc-input-mode-map "\C-c" nil) (define-key yc-mode-map "\C-c" nil) (setq yc-rK-trans-key "\C-c") ;(define-key yc-fence-mode-map "\C-c" 'yc-modeless-next) ;(define-key yc-mode-map (cond ((vectorp yc-rK-trans-key) ; (vconcat [?\C-c] yc-rK-trans-key)) ; ((stringp yc-rK-trans-key) ; (concat "\C-c" yc-rK-trans-key))) ; 'yc-wclist-mode) ;(define-key yc-input-mode-map (cond ((vectorp yc-rK-trans-key) ; (vconcat [?\C-c] yc-rK-trans-key)) ; ((stringp yc-rK-trans-key) ; (concat "\C-c" yc-rK-trans-key))) ; 'yc-wclist-mode) ;;;----- yc-edit-mode-map ----- ;; ;; オリジナルのかんなには入力文字を一気に消去する機能がない。 ;; この部分はむしろ VJE-β に近い。 ;; 2005/09/07 by [yoh] ;; (define-key yc-edit-mode-map "\C-g" 'yc-edit-cancel) (define-key yc-edit-mode-map [escape] 'yc-edit-cancel) (define-key yc-edit-mode-map "\C-a" 'yc-edit-beginning-of-fence) ;(define-key yc-edit-mode-map "\C-e" 'yc-edit-end-of-fence) (define-key yc-edit-mode-map "\C-e" 'yc-edit-henkan) (define-key yc-edit-mode-map "\C-x" 'yc-edit-henkan) ;(define-key yc-edit-mode-map "\C-b" 'yc-edit-backward-char) (define-key yc-edit-mode-map "\C-b" nil) (define-key yc-edit-mode-map "\C-s" 'yc-edit-backward-char) ;(define-key yc-edit-mode-map "\C-f" 'yc-edit-forward-char) (define-key yc-edit-mode-map "\C-f" 'yc-edit-end-of-fence) (define-key yc-edit-mode-map "\C-d" 'yc-edit-forward-char) (define-key yc-edit-mode-map "\C-h" 'yc-edit-backward-delete-char) (define-key yc-edit-mode-map "\177" 'yc-edit-backward-delete-char) (define-key yc-edit-mode-map [backspace] 'yc-edit-backward-delete-char) ;(define-key yc-edit-mode-map "\C-h" 'yc-edit-delete-char) (define-key yc-edit-mode-map "\C-h" 'yc-edit-backward-delete-char) ;(define-key yc-edit-mode-map "\C-d" 'yc-edit-delete-char) ;(define-key yc-edit-mode-map "\C-g" 'yc-edit-delete-char) (define-key yc-edit-mode-map " " 'yc-edit-henkan) (define-key yc-edit-mode-map yc-rK-trans-key 'yc-edit-henkan) (define-key yc-edit-mode-map "\C-m" 'yc-edit-kakutei) (define-key yc-edit-mode-map "\C-k" 'yc-edit-kill-line) ;(define-key yc-edit-mode-map "\C-p" 'yc-edit-katakana) ;(define-key yc-edit-mode-map "\C-p" nil) ;(define-key yc-edit-mode-map "\C-n" nil) ;(define-key yc-edit-mode-map "\C-p" 'yc-edit-previous) (define-key yc-edit-mode-map "\C-p" 'yc-edit-alphabet) ;; ;; 個人的好みで、以前から使っていた ~/.canna の動作に合わせた。 ;; http://www.flcl.org/~yoh/vzmode/emacs21/dot_canna_sample ;; 2005/09/07 by [yoh] ;; ;(define-key yc-edit-mode-map "\C-n" 'yc-edit-next) (define-key yc-edit-mode-map "\C-n" 'yc-edit-alphabet) (define-key yc-edit-mode-map [up] 'yc-edit-end-of-fence) (define-key yc-edit-mode-map [down] 'yc-edit-beginning-of-fence) (define-key yc-edit-mode-map [right] 'yc-edit-forward-char) (define-key yc-edit-mode-map [left] 'yc-edit-backward-char) (defun yc-edit-hiragana () "読み編集中にひら仮名-漢字変換した後、ひらがな変換する" (interactive) (yc-edit-jisyu 'yc-hiragana)) (define-key yc-edit-mode-map "\C-j" 'yc-edit-hiragana) ;;(defun yc-edit-katakana () ;; "読み編集中にひら仮名-漢字変換した後、カタカナ変換する" ;; (interactive) ;; (yc-edit-henkan) ;; (yc-katakana) ;;) (define-key yc-edit-mode-map "\C-k" 'yc-edit-katakana) (define-key yc-edit-mode-map "\C-v" 'yc-edit-katakana) (defun yc-edit-alphabet2 () "読み編集中にalphabet変換する" (interactive) (yc-edit-jisyu 'yc-alphabet2)) (define-key yc-edit-mode-map "\C-l" 'yc-edit-alphabet2) (defun yc-edit-hankaku () "読み編集中に半角カナ変換する" (interactive) (yc-edit-jisyu 'yc-hankaku)) (define-key yc-edit-mode-map "\C-o" 'yc-edit-hankaku) ;;;----- yc-henkan-mode-map ----- (define-key yc-henkan-mode-map "\C-m" 'yc-kakutei) ;; ;; オリジナル(?)のVJE-β 2.5 或はその派生形の WXII 等とは異なり、 ;; yc.el には文節毎に未変換状態に戻して編集する機能がない。 ;; したがって、 C-g は VJE-β 等と等しい動作にはできない。 ;; 2005/09/07 by [yoh] ;; (define-key yc-henkan-mode-map "\C-g" 'yc-cancel) (define-key yc-henkan-mode-map "\C-h" 'yc-cancel) (define-key yc-henkan-mode-map [escape] 'yc-cancel) ;;(define-key yc-henkan-mode-map "\C-n" 'yc-next) (define-key yc-henkan-mode-map "\C-n" 'yc-alphabet) ;(define-key yc-henkan-mode-map yc-rK-trans-key 'yc-next) (define-key yc-henkan-mode-map yc-rK-trans-key 'yc-modeless-next) ;(define-key yc-henkan-mode-map " " 'yc-modeless-next) (define-key yc-henkan-mode-map "\C-c" 'yc-modeless-next) ;(define-key yc-henkan-mode-map "\C-p" 'yc-previous) ;(define-key yc-henkan-mode-map "\C-f" 'yc-forward) (define-key yc-henkan-mode-map "\C-d" 'yc-forward) ;(define-key yc-henkan-mode-map "\C-b" 'yc-backward) (define-key yc-henkan-mode-map "\C-b" nil) (define-key yc-henkan-mode-map "\C-s" 'yc-backward) (define-key yc-henkan-mode-map "\C-a" 'yc-beginning-of-fence) ;(define-key yc-henkan-mode-map "\C-e" 'yc-end-of-fence) ;(define-key yc-henkan-mode-map "\C-e" nil) (define-key yc-henkan-mode-map "\C-f" 'yc-end-of-fence) ;(define-key yc-henkan-mode-map "\C-i" 'yc-shrink) (define-key yc-henkan-mode-map "\C-i" nil) (define-key yc-henkan-mode-map "\C-q" 'yc-shrink) (define-key yc-henkan-mode-map "\C-x" 'yc-shrink) ;(define-key yc-henkan-mode-map "\C-o" 'yc-enlarge) ;(define-key yc-henkan-mode-map "\C-o" nil) (define-key yc-henkan-mode-map "\C-o" 'yc-hankaku) (define-key yc-henkan-mode-map "\C-w" 'yc-enlarge) ;; ;; オリジナル VJE-β 或はその派生形の WXII 等とは異なり、 ;; かんなには文節長変更状態における関数割り当て機能がない。 ;; したがって、 C-e は VJE-β 等と等しい動作にはできない。 ;; 但し、かんなとは互換が保たれている。 ;; 2005/09/07 by [yoh] ;; (define-key yc-henkan-mode-map "\C-e" 'yc-enlarge) ;(define-key yc-henkan-mode-map "\C-t" 'yc-kakutei-and-touroku) (define-key yc-henkan-mode-map "\177" 'yc-hiragana) (define-key yc-henkan-mode-map [backspace] 'yc-hiragana) ;(define-key yc-henkan-mode-map "\C-h" 'yc-hiragana) (define-key yc-henkan-mode-map "\C-j" 'yc-hiragana) (define-key yc-henkan-mode-map "\C-v" 'yc-hiragana) ;;(define-key yc-henkan-mode-map "\C-u" 'yc-alphabet) (define-key yc-henkan-mode-map "\C-p" 'yc-alphabet) (define-key yc-henkan-mode-map "\C-l" 'yc-alphabet2) (define-key yc-henkan-mode-map "\C-k" 'yc-katakana) (define-key yc-henkan-mode-map [up] 'yc-previous) (define-key yc-henkan-mode-map [down] 'yc-next) (define-key yc-henkan-mode-map [right] 'yc-forward) (define-key yc-henkan-mode-map [left] 'yc-backward) (define-key yc-henkan-mode-map [(shift right)] 'yc-enlarge) (define-key yc-henkan-mode-map [(shift left)] 'yc-shrink) ;; ;; オリジナル VJE-β 或はその派生形の WXII 等とは異なり、 ;; かんなには文節長変更状態における関数割り当て機能がない。 ;; したがって、 S-up, S-down は VJE-β 等と等しい動作にはできない。 ;; 但し、かんなとは互換が保たれている。 ;; 2005/09/07 by [yoh] ;; (define-key yc-henkan-mode-map [(shift up)] 'yc-modeless-previous) (define-key yc-henkan-mode-map [(shift down)] 'yc-modeless-next) ;;;----- yc-select-mode-map ----- (define-key yc-select-mode-map yc-rK-trans-key 'yc-modeless-next) (define-key yc-select-mode-map " " 'yc-modeless-next) (define-key yc-select-mode-map "\C-d" 'yc-modeless-next) (define-key yc-select-mode-map "\C-s" 'yc-modeless-previous) (defun yc-choice-end-of-fence () "一覧モードを抜けた後、最終文節を選択" (interactive) (yc-choice) (yc-end-of-fence) ) (define-key yc-select-mode-map "\C-f" 'yc-choice-end-of-fence) (defun yc-choice-beginning-of-fence () "一覧モードを抜けた後、先頭文節を選択" (interactive) (yc-choice) (yc-beginning-of-fence) ) (define-key yc-select-mode-map "\C-a" 'yc-choice-beginning-of-fence) (define-key yc-select-mode-map "\C-x" 'yc-select-next) (define-key yc-select-mode-map "\C-e" 'yc-select-previous) (defun yc-choice-shrink () "一覧モードを抜けた後、変換中の文節を縮小する" (interactive) (yc-choice) (yc-shrink) ) (define-key yc-select-mode-map "\C-q" 'yc-choice-shrink) (defun yc-choice-enlarge () "一覧モードを抜けた後、変換中の文節を拡張する" (interactive) (yc-choice) (yc-enlarge) ) (define-key yc-select-mode-map "\C-w" 'yc-choice-enlarge) (defun yc-choice-hiragana () "一覧モードを抜けた後、選択した変換中の文節をひらがな変換する" (interactive) (yc-choice) (yc-hiragana) ) (define-key yc-select-mode-map "\C-j" 'yc-choice-hiragana) (define-key yc-select-mode-map "\C-v" 'yc-choice-hiragana) (defun yc-choice-katakana () "一覧モードを抜けた後、選択した変換中の文節をカタカナ変換する" (interactive) (yc-choice) (yc-katakana) ) (define-key yc-select-mode-map "\C-k" 'yc-choice-katakana) (defun yc-choice-alphabet2 () "一覧モードを抜けた後、選択した変換中の文節を全角アルファベット変換する" (interactive) (yc-choice) (yc-alphabet2) ) (define-key yc-select-mode-map "\C-l" 'yc-choice-alphabet2) (defun yc-choice-alphabet () "一覧モードを抜けた後、選択した変換中の文節を半角アルファベット変換する" (interactive) (yc-choice) (yc-alphabet) ) (define-key yc-select-mode-map "\C-u" 'yc-choice-alphabet) (defun yc-choice-hankaku () "一覧モードを抜けた後、選択した変換中の文節を半角カナ変換する" (interactive) (yc-choice) (yc-hankaku) ) (define-key yc-select-mode-map "\C-o" 'yc-choice-hankaku)