Skip to content
Tags

Evilでjaword

2015/03/24

jaword をEvilで使いたかったので、 taraoさんの記事

を参考にして、というかほとんどそのままですがEvilで使えるようにしてみました。

(require 'cl-lib)
(require 'jaword)
(require 'evil)

(defun my-evil-jaword-forward-word (&optional count)
  (let ((dir (if (natnump count) +1 -1))
        (count (abs count)))
    (while (and (plusp count) (jaword-forward dir))
      (cl-decf count))
    count))

(evil-define-motion my-evil-jaword-forward-word-begin (count)
  :type exclusive
  (evil-move-beginning count #'my-evil-jaword-forward-word))

(evil-define-motion my-evil-jaword-backward-word-begin (count)
  :type exclusive
  (evil-move-beginning (- (or count 1)) #'my-evil-jaword-forward-word))

(evil-define-motion my-evil-jaword-forward-word-end (count)
  :type inclusive
  (evil-move-end count #'my-evil-jaword-forward-word nil t))

(evil-define-motion my-evil-jaword-backward-word-end (count)
  :type inclusive
  (evil-move-end (- (or count 1)) #'my-evil-jaword-forward-word nil t))


(define-key jaword-mode-map
  [remap evil-forward-word-begin]  #'my-evil-jaword-forward-word-begin)
(define-key jaword-mode-map
  [remap evil-forward-word-end]    #'my-evil-jaword-forward-word-end)
(define-key jaword-mode-map
  [remap evil-backward-word-begin] #'my-evil-jaword-backward-word-begin)
(define-key jaword-mode-map
  [remap evil-backward-word-end]   #'my-evil-jaword-backward-word-end)

ce で単語を書きなおしたりできるので個人的には満足していますが、 細かい部分は問題がありそうですね(行をまたぐかどうかとか)。

decompjpac-mozc を連携させて再変換を行う オペレータを定義して、例えばそれを gc にバインドして誤変換してしまった単語の 先頭に移動してから gce とすれば再変換ができる、 とか面白そうだなぁと思ったものの、出番が少なそうだったので アイデアでとどめておくことにしました。

広告

From → Emacs

コメントする

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。