Etsushi Kato
ekato****@ees*****
2004年 10月 15日 (金) 00:30:39 JST
On Thu, Oct 14, 2004 at 08:12:31PM +0900, OHASHI Hideya <ohash****@kinke*****> wrote: > 以下のページにあった「gvim+skkで<esc>を押すと英数モードになるようにする設 > 定」が Debian uim 0.4.4.1-2 でうまく動作しなかったので、修正しました。 どうもありがとうございす。そういえば、uim-0.4.4 からは .scm での context の扱いが変更されているので、~/.uim をいじっている場合注意が必 要ですね。 > # できたら本流に取り込みたいと思っています。 > # vim 使いには必需品だと思うので。 そうですね。こんな感じでどうでしょう? ~/.uim に (define skk-use-with-vi? #t) と記述すれば使えるようになります。あと、 wide-latin でも同様の挙動にしてみました。 Index: skk.scm =================================================================== --- skk.scm (revision 1478) +++ skk.scm (working copy) @@ -60,6 +60,7 @@ (define skk-egg-like-newline? #f) (define skk-commit-newline-explicitly? #f) ;; turn into #t provided safe behavior (define skk-style 'skk-style-ddskk-like) +(define skk-use-with-vi? #f) ;; key defs (define-key skk-latin-key? '("l" generic-off-key?)) @@ -86,6 +87,7 @@ (define-key skk-special-midashi-key? '(">" "<" "?")) (define-key skk-conv-wide-latin-key? '("<Control>q" "<Control>Q")) (define-key skk-plain-space-key? " ") ;; should not be changed +(define-key skk-vi-escape-key? '("escape" "<Control>[")) ;; style elements (define skk-preedit-attr-mode-mark #f) @@ -617,6 +619,13 @@ ;; experimental coding style. discussions are welcome -- YamaKen (define skk-proc-state-direct-no-preedit (lambda (key key-state sc rkc) + (if skk-use-with-vi? + (if (skk-vi-escape-key? key key-state) + (begin + (skk-context-set-state! sc 'skk-state-latin) + (rk-flush rkc) + (skk-update-mode sc) + (skk-update-prop-label sc)))) (cond ((or (skk-cancel-key? key key-state) (skk-backspace-key? key key-state) @@ -1267,6 +1276,12 @@ (w (or (ja-direct char) (ja-wide char))) (sc (skk-find-descendant-context c))) + (if skk-use-with-vi? + (if (skk-vi-escape-key? key key-state) + (begin + (skk-context-set-state! sc 'skk-state-latin) + (skk-update-mode sc) + (skk-update-prop-label sc)))) (cond ((skk-on-key? key key-state) (skk-flush sc) ; implicitly reset to 'skk-state-direct -- Etsushi Kato ekato****@ees*****