Archive for 4月 14th, 2013
thing-at-point関数でカーソル下の文字列を取得/Emacs-Lisp
URL にカーソルがあるとき、それをマークアップしてみる。
今度はちょっとだけ難しいかもしれませんが、カーソル位置にある URL を HTML でマークアップしたかったとしましょう。
実現したいことは、
カーソル位置から URL だけを取得する。
取得した文字を変換する。
という2つが実現できればやれそうです。これは、simple.el と同じ標準ライブラリの thingatpt.el に定義されている関数を使うと実現可能になります。(defun create-hyper-link-at-point-url () "カーソル位置のURLを HTML でマークアップする" (interactive) (let* ((bounds (bounds-of-thing-at-point 'url)) (start (car bounds)) (end (cdr bounds)) (link (format "" (thing-at-point 'url)))) (delete-region start end) (insert link)))
こちらを参考にわかったのですが、(thing-at-point ‘url)のurlをwordにするとURLのアドレスではなくカーソル位置の単語が取得できるみたいです。また、この館数は文字列のポイントの始点と終点を取得しているらしく、format関数を使うことで、文字列を取得しているみたいです。
必要に応じ、応用が利きそうなので抑えておきたい関数です。