Mac의 Emacs에서 emacs-mozc를 가나 키로 ON-OFF시키는 뒷 기술

Mac의 일본어 입력에는 google 일본어 입력을 사용하고 Emacs에서만 mozc를 사용합니다.
Mac의 google 일본어 입력은 가나 키로 ON/OFF하므로 mozc의 ON/OFF에는 다른 키를 할당해야합니다.
가능하다면 Mac에서도 Emacs에서도, 카나 키로 IM의 ON/OFF 할 수 있으면(자) 시행착오한 결과, 앙가이 간단하게 실현할 수 있었으므로 소개합니다.

mozc_emacs_helper 설치


  • google 일본어 입력과 사전 제휴해 mozc_emacs_helper 를 도입할 수 있으므로 사전 관리등도 일원화할 수 있어 편리합니다.
  • 자세한 소개 Tips는, 별도 페이지에 써 있습니다.

  • mozc_emacs_helper on macOS Sierra

  • google 일본어 입력과 emacs-mozc를 구분


  • Emacs에서 mozc를 사용하는 경우 google 일본어 입력을 OFF로 설정하고 싶습니다.
  • 아래 사이트의 기사를 참고로 init.el 에 이하와 같은 설정을 가하고 있습니다.

  • mozc-emacs-helper와 OSX의 IM을 연동시킨다 (toggle-input-method, 영수/가나 키)
  • ;; 英数キーをエミュレートする
    ;; https://www.inabamasaki.com/archives/1898
    (when (eq system-type 'darwin) 
      (defun my-eisuu-key ()
      "Emulating alphanumeric keys"
      (interactive)
      (call-process "osascript" nil t nil "-e" "tell application \"System Events\" to key code 102"))
      ;; Mozc が起動されたら英数にする
      (add-hook 'mozc-mode-hook 'my-eisuu-key)
      ;; フレームがアクティブになった時英数にする
      (add-hook 'focus-in-hook 'my-eisuu-key))
    

    무엇을 하고 있는가 하면 , 다음 조건의 때에 강제적으로 Mac 을 영수 입력으로 하고 있는 것입니다.
  • Emacs mozc가 시작되면 Mac의 입력 소스를 영숫자로 만듭니다
  • 다른 프레임에서 Emacs 프레임으로 이동하면 Mac 입력 소스를 영숫자로 만듭니다

  • ※하지만 조금 문제가


  • 상기 대응을 하고 있어도 나중에 확실히, 가나 키를 누르면 google 일본어 입력이 기동해 버립니다.
  • Emacs가 활성화되면 Mac의 일본어 입력 모드를 OFF로 설정하고 싶습니다.

  • ⌘ UK Kana.app에서 가나 키의 동작을 사용자 정의합니다.



    ⌘영 가나.app에서 Emacs일 때만 가나 키를 강제로 다른 키 바인딩으로 변경합니다.


  • 가나 → super + j (super + j에 toggle-input-method 할당)
  • Command_L → control + g (Emacs에서 control + g를 자주 사용하기 때문에 편리)
  • Command_R → super + m (mozc-temp의 mozc-temp-convert 설정)

  • 가나 키를 super + j로 변경하면 Emacs에서 mozc를 ON/OFF 할 수 있으며 google 일본어 입력을 ON/OFF 할 수 없습니다.

    ※여기부터가 뒷 기술입니다



  • ⌘영 카나.app 은 제외 앱을 설정할 수 있습니다.
  • google 일본어 입력을 사용하려는 모든 앱을 제외 앱에 등록합니다.
  • 즉, 가나 키를 커스터마이즈 해 사용하는 것은, Emacs 만이라고 하는 설정이 되는 것입니다.
  • 유감스럽게도,이 뒤 기술을 사용할 수있는 것은, 가나 키가있는 JIS 키보드 만
  • US 키보드의 경우는, 다른 알고리즘을 생각할 필요가 있습니다.
  • 꽤 강인한 기법입니다만, 쾌적함에는 바꿀 수 없습니다.

  • 【참고】



    내 Emacs의 mozc 설정을 붙여 둡니다.
    ;; Bild mozc_emacs_helper on macos sierra
    ;; https://gist.github.com/ynkjm/7d6f22bb4338f84b1b287bf9abe79001
    ;; ===============================================================
    (setq default-input-method "japanese-mozc")
    (custom-set-variables '(mozc-leim-title " あ"))
    (use-package mozc-cursor-color)
    
    ;; keyremap "s-j" to "kana" by eisuu.app for mac
    (when (eq system-type 'darwin)
      (bind-key "s-j" 'toggle-input-method))
    ;; For linux
    (when (eq system-type 'gnu/linux) 
      (bind-key* "<hiragana-katakana>" 'toggle-input-method))
    
    ;; Turn to key code 102 when forcus in to emacs
    (when (eq system-type 'darwin) 
      (defun my-eisuu-key ()
      (interactive)
      (call-process "osascript" nil t nil "-e" "tell application \"System Events\" to key code 102"))
      (add-hook 'focus-in-hook 'my-eisuu-key))
    
    ;; Important settings
    (defadvice toggle-input-method (around toggle-input-method-around activate)
      "Input method function of key-chord.el to not be set to nil."
      (let ((input-method-function-save input-method-function))
        ad-do-it
        (setq input-method-function input-method-function-save)))
    
    ;; mozc-temp
    ;; =================================================
    ;; Keyremap "s-m" to "command_r" by eisuu.app for mac
    (when (eq system-type 'darwin)
    (bind-key "s-m" 'mozc-temp-convert))
    ;; For linux
    (when (eq system-type 'gnu/linux)
      (bind-key* "<henkan>" 'mozc-temp-convert))
    

    좋은 웹페이지 즐겨찾기