howm-create2dir.は、引数に取ったディレクトリにhowm形式のファイルを作成する拡張Lisp。PPxと組み合わせての使用を想定している。
Emacsの設定
以下をsite-lispフォルダに保存する。
howm-create2dir.el
(defun make-howm-create2dir-file (&optional howm-dir) (interactive) (let* ((filename (format-time-string "%Y-%m-%d-%H%M%S.howm")) (filepath (if howm-dir (concat (file-name-as-directory howm-dir) (format-time-string "%Y-%m-%d-%H%M%S.howm")) (format-time-string "%Y-%m-%d-%H%M%S.howm")))) (find-file filepath) (if (eq (point-max) (point-min)) (progn (insert (format-time-string "= \n\n[%Y-%m-%d %H:%M]\n")) (goto-char (+ (point-min) 2)))) )) (defun howm-create2dir (arg) (if (file-directory-p arg) (progn (make-howm-create2dir-file arg) (howm-create2dir-mode)))) (define-derived-mode howm-create2dir-mode nil "howm2dir" "homu mode" (define-key howm-create2dir-mode-map "\C-c,c" 'make-howm-create2dir-file)) (provide 'howm-create2dir) (provide 'howm-create2dir-mode)
以下を.emacsにコピペ。
;; howm-create2dir読み込み (require 'howm-create2dir) ;; howmファイルをhowm2dirモードで開く (setq auto-mode-alist (cons (cons "\\.howm$" 'howm-create2dir-mode) auto-mode-alist))
PPxから呼び出す
ここからはPPx側の設定。
%Ob E:\emacs\bin\runemacs.exe -execute ("howm-create2dir \"%*regexp("%1","s/\\/\\\\/g")\"")
みたいなのを適当なキーかメニューに登録して実行すれば、カレントディレクトリにhowmファイルを作成する。
%*regexpの箇所でやってるのは、%1で取得したパスの修正。たとえばD:\howm\hogeならD:\\howm\\hogeとなるようにしている。 僕は、このコマンドをファイル作成メニューの一つとして登録している。
-|M_makefile = M_makefile = { ** comment ** &howm = %Ob E:\emacs\bin\runemacs.exe -execute ("howm-create2dir \"%*regexp("%1","s/\\/\\\\/g")\"") &TXT = *set name=%1\%"テキストファイル"%{%|.txt%} %: *makefile "%'name'" %: editor "%'name'" %: *jumppath "%'name'" /entry &CFG = *set name=%1\%"CFGFile"%{%|.cfg%} %: *makefile "%'name'" %: editor "%'name'" %: *jumppath "%'name'" /entry &PlainFile = *set name=%1\%"PlainFile"%E %: *makefile "%'name'" %: editor "%'name'" %: *jumppath "%'name'" /entry &VBS = *set name=%1\%"VBScript"%{%|.vbs%} %: *makefile "%'name'" %: editor "%'name'" %: *jumppath "%'name'" /entry &JS = *set name=%1\%"JScript"%{%|.js%} %: *makefile "%'name'" %: editor "%'name'" %: *jumppath "%'name'" /entry } KC_main = { ; PPcメイン窓 \K ,%M_makefile,H }
0 件のコメント:
コメントを投稿