これを行う1つの方法があります。この方法は、ユーザーにリンクに変換する必要のあるテキストを選択させてから、それを置き換えることで機能します。
;;; http://developer.apple.com/safaridemos|Safari Demos
;;; becomes <a href="http://developer.apple.com/safaridemos">Safari Demos</a>
;;; http://developer.apple.com/safaridemos|Safari Demos
;;; <a href="http://developer.apple.com/safaridemos">Safari Demos</a>
(defun url-to-html-link(input)
"Convert INPUT url into a html link. The link text will be the text after the last slash or you can end the url with a | and add text after that"
(let ((split-on-| (split-string input "|"))
(split-on-/ (split-string input "/"))
(fmt-string "<a href=\"%s\">%s</a>"))
(if (> (length split-on-|) 1)
(format fmt-string (first split-on-|) (second split-on-|))
(format fmt-string input (first (last split-on-/))))))
(defun url-region-to-html-link(b e)
(interactive "r")
(let ((link
(url-to-html-link (buffer-substring-no-properties b e))))
(delete-region b e)
(insert link)))
(global-set-key (kbd "C-c j") 'url-region-to-html-link)
編集:最初の関数をと組み合わせて使用query-replace-regexp
して、インタラクティブなコマンドを作成することもできます。
(defun query-replace-urls ()
(interactive)
(query-replace-regexp "http://.*"
(quote (replace-eval-replacement replace-quote (url-to-html-link (match-string 0))))
nil
(if (and transient-mark-mode mark-active) (region-beginning))
(if (and transient-mark-mode mark-active) (region-end))))