以下は、テキストを逆に入力する Emacs の入力メソッドです。
(defun reverse-input-method (key)
(if buffer-read-only
(list key)
(if (setq new key)
(list new ?\2) ;; ?\2 == backwards char
(list key ?\2))))
(defun reverse-input-activate (&optional arg)
"Activate reverse-im input method.
With arg, activate reverse-im input method if and only if arg is
positive.
While this input method is active, the variable
`input-method-function' is bound to the function
`reverse-input-method'."
(if (and arg
(< (prefix-numeric-value arg) 0))
(unwind-protect
(progn
(quail-hide-guidance)
(quail-delete-overlays)
(setq describe-current-input-method-function nil))
(kill-local-variable 'input-method-function))
(setq inactivate-current-input-method-function 'reverse-input-inactivate)
(setq describe-current-input-method-function 'reversr-input-help)
(quail-delete-overlays)
(if (eq (selected-window) (minibuffer-window))
(add-hook 'minibuffer-exit-hook 'quail-exit-from-minibuffer))
(set (make-local-variable 'input-method-function)
'reverse-input-method)))
(defun reverse-input-inactivate ()
"Inactivate reverse-im input method."
(interactive)
(reverse-input-activate -1))
(defun reverse-input-help ()
(interactive)
(with-output-to-temp-buffer "*Help*"
(princ "Inserts text in reverse order.")))
(provide 'reverse-im)
(register-input-method "reverse-im" "UTF-8" 'reverse-input-activate "<<"
"Input method for \"typing characters in reverse\".")
たとえば、 ~/.emacs.d/reverse-im/reverse-im.el に保存してから、これらの行を .emacs に追加できます。
(add-to-list 'load-path (expand-file-name "~/.emacs.d/reverse-im/"))
(require 'reverse-im)
次に、KeySnail Firefox プラグインを使用して、テキストを編集する必要があるときに emacs を呼び出します (テキスト エディターを .bashrc に設定するか、シェル変数を格納してKeySnail のK2Emacsemacsclient
プラグインを使用するために使用するものに設定するか、.keysnail を変更する必要があります。 js を使用して、必要なときに Emacs を呼び出します。
Vimperator という Vim 用の同様のプラグインがありますが、私は使用しませんでした。