読者です 読者をやめる 読者になる 読者になる

opamp_sando's blog

クソザコが割りと適当なことを書くためにある備忘録です。あとたまに普通の日記も書きます

emacsでhexl-modeにトグルで切り替えれるようにしてみた

emacs

最近Emacsでよく遊んでいます。
今日はなんとなくショートカットを押したら現在バッファをhexl-modeでの表示に切り替えて、もう一度ショートカットを押したら前のモードに戻るといういわゆるトグルのような切り替えを行う関数を書いてみた。

;;; toggle-hexl-modechange.el

;;; Code
(defvar toggle-hexl-modechange-tmp-mode-name 'text-mode)
(defun toggle-hexl-modechange ()
  (interactive)
  (if (equal major-mode 'hexl-mode)
      (funcall toggle-hexl-modechange-tmp-mode-name)
    (set (make-local-variable 'toggle-hexl-modechange-tmp-mode-name) major-mode)
    (hexl-mode)))
(provide 'toggle-hexl-modechange)

これをtoggle-hexl-modechange.elとして適当なディレクトリに保存してinit.elなどで

(require 'toggle-hexl-modechange)
;; 適当なショートカットに割り当て
(global-unset-key (kbd "C-u"))
(global-set-key (kbd "C-u h") 'toggle-hex-modechange)

みたいに書いたらとりあえず動くと思う。
C-u hでhexl-modeに切り替えたり戻したりできるようになる。
なんか最後が -mode だとモードと間違いそうなので、無理やりchangeを入れた結果変な名前になった。

まあ、練習ということでelispを少しでもかじったことがある人ならだれでも書けるようなものだけど...

まだEmacs Lisp本読み終わってないので早く読まないと(返却日が迫っている)

Firefox ブラウザ無料ダウンロード