Hatena::Groupsubtech

subpop

2007-09-17

EmacsでPerlのuse文を挿入

02:08 | EmacsでPerlのuse文を挿入 - subpop を含むブックマーク はてなブックマーク - EmacsでPerlのuse文を挿入 - subpop EmacsでPerlのuse文を挿入 - subpop のブックマークコメント

elisp練習第2弾。「subtech - Pink Blossom Diary - vim で perl の use 文を挿入」を、Emacsでやってみた。機能はid:secondlifeのと同じなので、動作イメージは↓を参照のこと(自分でも撮ってみたけど、ttyshare上で再生するとなんか変になった><)。

モジュール名の最後の文字の次のポイントでC-c C-mを入力すると、useなんちゃらがある場合はその最後に、ない場合はバッファの一番最初のなにもない行にuse文を挿入する。

;; キーバインドは、とりあえずC-c C-mで。
(add-hook 'cperl-mode-hook
          (lambda ()
            (local-set-key (kbd "\C-c \C-m") 'perl-insert-use-statement)))

(defun perl-insert-use-statement (current-point)
  "use statement auto-insertion."
  (interactive "d")
  (insert-use-statement
   (detect-module-name current-point)
   (detect-insert-point)))

(defun insert-use-statement (module-name insert-point)
  (save-excursion
    (goto-char insert-point)
    (insert (concat "\nuse " module-name ";\n"))))

(defun detect-insert-point ()
  (save-excursion
    (if (re-search-backward "use .+;" 1 t)
        (match-end 0)
      (progn
        (string-match "^$" (buffer-string))
        (match-end 0)))))

(defun detect-module-name (current-point)
  (let ((str (save-excursion
               (buffer-substring
                current-point
                (progn (beginning-of-line) (point))))))
    (if (string-match "\\([[:alnum:]-_:]+\\)$" str)
        (match-string 1 str)
      (error "Module name not found"))))

AmiraAmira2012/03/24 10:22It's really great that people are sharing this informatoin.

kuekhyhkwpkuekhyhkwp2012/03/26 00:18ccJR2z , [url=http://tvhzombnmdef.com/]tvhzombnmdef[/url], [link=http://duzaqywqlzpt.com/]duzaqywqlzpt[/link], http://uatfbhkeektl.com/