ARCHIVE  ENTRY  COMMENT  TRACKBACK  CATEGORY  RECOMMEND  LINK  PROFILE  OTHERS
<< June 2017 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 >>
<< [Emacs] 「、。」をよしなに「,.」に変換してくれるマイナーモード | main | あそぶ!ゲーム展 STAGE 1. デジタルゲームの夜明け >>
2016.02.25 Thursday

スポンサーサイト

一定期間更新がないため広告を表示しています

2016.01.27 Wednesday

[Emacs] 外で作業するときに重要な情報を隠すマイナーモード

指定したキーワード (正規表現) をパスワードみたいに *** で表示する。

(defvar my-secret-words nil)

(make-face 'my-secret-words-face)
(set-face-attribute 'my-secret-words-face nil :background "red" :foreground "red")

(defun my-secret-words--jit-hider (b e)
  (save-excursion
    (remove-overlays b e 'category 'my-secret-words)
    (dolist (word my-secret-words)
      (goto-char b)
      (while (search-forward-regexp word e t)
        (let* ((b (match-beginning 0))
               (e (match-end 0))
               (ov (make-overlay b e)))
          (overlay-put ov 'category 'my-secret-words)
          (overlay-put ov 'display (make-string (- e b) ?*)))))))

(defun my-secret-words--post-command ()
  (let ((ovs (overlays-at (point)))
        (message-log-max nil))
    (dolist (ov ovs)
      (when (eq (overlay-get ov 'category) 'my-secret-words)
        (message (buffer-substring (overlay-start ov) (overlay-end ov)))))))

(define-minor-mode my-secret-words-mode
  "Minor mode to hide secret words in the buffer."
  :init-value nil
  :global nil
  :lighter "Secr"
  (cond (my-secret-words-mode
         (jit-lock-mode 1)
         (jit-lock-register 'my-secret-words--jit-hider)
         (add-hook 'post-command-hook 'my-secret-words--post-command nil t))
        (t
         (remove-hook 'post-command-hook 'my-secret-words--post-command t)
         (jit-lock-unregister 'my-secret-words--jit-hider)
         (remove-overlays (point-min) (point-max) 'category 'my-secret-words))))

(define-globalized-minor-mode my-global-secret-words-mode
  my-secret-words-mode
  (lambda () (my-secret-words-mode 1)))


隠すキーワードの設定

(setq my-secret-words '("氏" "名" "メアド"))


モードを有効に

M-x my-secret-words-mode
M-x global-my-secret-words-mode

2016.02.25 Thursday

スポンサーサイト

コメント
コメントする








 
Powered by
30days Album
PR