Next: , Previous: Lazy Properties, Up: Text Properties   [Contents][Index]


31.19.9 ¥¯¥ê¥Ã¥¯²Äǽ¤Ê¥Æ¥­¥¹¥È¤òÄêµÁ¤¹¤ë

¥Ð¥Ã¥Õ¥¡Æâ¤Ë¥¯¥ê¥Ã¥¯²Äǽ¤Ê¥Æ¥­¥¹¥È¡Êclickable text¡Ë¤òÀßÄꤹ¤ë¤Ë¤Ï 2¤Ä¤ÎÊýË¡¤¬¤¢¤ê¤Þ¤¹¡£ ¤³¤ì¤Ïŵ·¿Åª¤Ë¤Ï2¤Ä¤ÎÉôʬ¤«¤éÀ®¤ê¤Þ¤¹¡£ ¤Ä¤Þ¤ê¡¢¥Þ¥¦¥¹¤¬½Å¤Ê¤ë¤È¥Æ¥­¥¹¥È¤ò¶¯Ä´É½¼¨¤·¡¢ ¥Æ¥­¥¹¥È¤Î¤½¤ÎÉôʬ¤ò¥¯¥ê¥Ã¥¯¤¹¤ë¤È ¥Þ¥¦¥¹¥Ü¥¿¥ó¤¬¤Ê¤ó¤é¤«¤Î½èÍý¤ò¹Ô¤¦¤è¤¦¤Ë¤·¤Þ¤¹¡£

¶¯Ä´É½¼¨¤Ï¥Æ¥­¥¹¥È°À­mouse-face¤Ç¹Ô¤¤¤Þ¤¹¡£ dired¤Ç¤ÎÊýË¡¤òÎã¤È¤·¤Æ¼¨¤·¤Þ¤¹¡£

(condition-case nil
    (if (dired-move-to-filename)
        (put-text-property (point)
                           (save-excursion
                             (dired-move-to-end-of-filename)
                             (point))
                           'mouse-face 'highlight))
  (error nil))

put-text-property¤ÎºÇ½é¤Î2¤Ä¤Î°ú¿ô¤Ï¡¢ ¥Æ¥­¥¹¥È¤ÎÀèÆ¬¤ÈËöÈø¤ò»ØÄꤷ¤Þ¤¹¡£

¤³¤Î¥Æ¥­¥¹¥È¤ò¥¯¥ê¥Ã¥¯¤·¤¿¤È¤­¤Ë¥Þ¥¦¥¹¤Ë¤Ê¤Ë¤«¤ò¤µ¤»¤ë¤è¤¦¤Ë¤¹¤ë ÉáÄ̤ÎÊýË¡¤Ï¡¢¥á¥¸¥ã¡¼¥â¡¼¥É¤Î¥­¡¼¥Þ¥Ã¥×¤Çmouse-2¤òÄêµÁ¤¹¤ë¤³¤È¤Ç¤¹¡£ ¥¯¥ê¥Ã¥¯²Äǽ¤Ê¥Æ¥­¥¹¥È¤ò¥¯¥ê¥Ã¥¯¤·¤¿¤«¤É¤¦¤«¤Î¸¡ºº¤Ï¡¢ ¥³¥Þ¥ó¥ÉÄêµÁ¤Ç¹Ô¤ï¤ì¤Þ¤¹¡£ dired¤Ç¤Ï¤Ä¤®¤Î¤è¤¦¤Ë¤·¤Æ¤¤¤Þ¤¹¡£

(defun dired-mouse-find-file-other-window (event)
  "In dired, visit the file or directory name you click on."
  (interactive "e")
  (let (file)
    (save-excursion
      (set-buffer (window-buffer (posn-window (event-end event))))
      (save-excursion
        (goto-char (posn-point (event-end event)))
        (setq file (dired-get-filename))))
    (select-window (posn-window (event-end event)))
    (find-file-other-window (file-name-sans-versions file t))))

³°Â¦¤Îsave-excursion¤Ï¡¢¥«¥ì¥ó¥È¥Ð¥Ã¥Õ¥¡¤¬ÊѤï¤ë¤³¤È¤òËɤ®¤Þ¤¹¡£ Æâ¦¤Î¤Ï¡¢¥¯¥ê¥Ã¥¯¤·¤¿¥Ð¥Ã¥Õ¥¡¤Î¥Ý¥¤¥ó¥È¤ò¹±µ×Ū¤ËÊѹ¹¤¹¤ë¤³¤È¤òËɤ®¤Þ¤¹¡£ ¤³¤ÎÎã¤Ç¤Ï¡¢dired¤Ï´Ø¿ôdired-get-filename¤òÍѤ¤¤Æ¡¢ ¥¤¥Ù¥ó¥È¤Î°ÌÃ֤˴ð¤Å¤¤¤ÆË¬Ì䤹¤Ù¤­¥Õ¥¡¥¤¥ë¤ò·èÄꤷ¤Þ¤¹¡£

¥á¥¸¥ã¡¼¥â¡¼¥É¤Î¥Þ¥¦¥¹¥³¥Þ¥ó¥É¤òÄêµÁ¤¹¤ë¤«¤ï¤ê¤Ë¡¢ ¥Æ¥­¥¹¥È°À­local-map¤ò»È¤Ã¤Æ¡¢ ¥¯¥ê¥Ã¥¯²Äǽ¤Ê¥Æ¥­¥¹¥È¤½¤Î¤â¤Î¤Ë¥­¡¼¥Ð¥¤¥ó¥Ç¥£¥ó¥°¤òÄêµÁ¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£

(let ((map (make-sparse-keymap)))
  (define-key-binding map [mouse-2] 'operate-this-button)
  (put-text-property (point)
                     (save-excursion
                       (dired-move-to-end-of-filename)
                       (point))
                     'local-map map))

¤³¤ÎÊýË¡¤Ç¤Ï¡¢¥Æ¥­¥¹¥È¤Î¤µ¤Þ¤¶¤Þ¤Ê¥¯¥ê¥Ã¥¯²Äǽ¤ÊÉôʬ¤Ë °Û¤Ê¤ë¥³¥Þ¥ó¥É¤òÄêµÁ¤Ç¤­¤Þ¤¹¡£ ¤µ¤é¤Ë¡¢¥Ð¥Ã¥Õ¥¡¤Î»Ä¤ê¤ÎÉôʬ¤ËÂФ·¤Æ¤Ï¡¢ ¥á¥¸¥ã¡¼¥â¡¼¥É¤ÎÄêµÁ¡Ê¤ä¥°¥í¡¼¥Ð¥ë¤ÊÄêµÁ¡Ë¤¬¤½¤Î¤Þ¤ÞÍ­¸ú¤Ç¤¹¡£