open-jungle.l

Last modified: "2019/03/24 00:01:33"
■概要

  "~/junk/年/月/"フォルダに、"日-時分秒." + "指定した拡張子"なファイルを作
  成して開きます。*scratch* バッファの代わりに、書き散らかしながら試行錯誤
  するために使用したりします。*scratch* バッファと比べ、次の利点があります。

    ・保存ができる。
    ・適切なモードで編集できる。

  open-jungle.l は、rubikitch さんの open-junk-file.el をテキトーに移植&
  改造したものです。

      URL: https://github.com/rubikitch/open-junk-file

  オリジナルに忠実にと思って作りかけたものの、そうはならなかったため、
  名前は変えてしまいました。(--

    [変更点]
     ・簡易的なテンプレート挿入機能を追加
     ・簡易的なGrep機能を追加
     ・フック変数を追加
     ・保存場所と書式の変数を分割
     ・シングルファイラで保存場所を開く機能を追加
     ・xyzzyで動作する(はず)。

    [劣化点]
     ・open-junk-file の引数を省略(FORMAT, FIND-FILE-FN)&変更
     ・バグレポート機能は未実装
     ・Emacsで動作しない。


■インストール

  1. open-jungle.l を site-lisp にコピーする。

  2. 必要に応じ,バイトコンパイルする。

       M-x byte-compile-file

  3. .xyzzy か siteinit.l に以下の記述を追加する。

      (require "open-jungle")

  4. xyzzy を再起動し,設定を反映させる。
     siteinit.l に記述した場合は再ダンプもする。


■起動方法

    M-x open-jungle        : 新しい JUNK file を開く

      実行すると、下記のようにミニバッファに作成する JUNK file の拡張子
      入力を求められます。

        Junk Code (Enter extension): P:/dat/junk/2019-0303-152054.

      JUNK file を開いたら、あとはご自由に試行錯誤してください。

    M-x open-jungle-grep   : JUNK file の保存場所を Grep
    M-x open-jungle-sfiler : シングルファイラで保存場所を開く


■設定例

    ;;; キーバインドを追加
    (define-key ctl-x-map #\j 'open-jungle)
    (define-key ctl-x-map #\g 'open-jungle-grep)

    ;;; 保存場所を変更
    (setq *open-jungle-base-dir* "P:/home/junk/")

    ;;; "年/月/"フォルダを作成しない
    (setq *open-jungle-format* "%Y-%m%d-%H%M%S.")

    ;;; 別窓で開かない
    (setq *open-jungle-find-file-function* #'find-file)

    ;;; テンプレートを追加
    (setq *open-jungle-template-alist*
          '(("\\.txt$" . "-*- Mode: Text; last modified: \"\"; -*-\n")
            ("\\.eml$" . "Subject: ")))


■おまけ

    ・M-x open-jungle-sfiler し、ファイルを指定して W すると、さまざまな屑
      が発見できる。(xyzzy 標準機能)

    ・いらないファイルはすぐに削除するので、こんな関数を定義している。

        ;;; バッファ&Visitしてるファイルを削除
        (defun delete-file-and-kill-buffer ()
          "Kill the current buffer and deletes the file it is visiting."
          (interactive)
          (let ((filename (get-buffer-file-name)))
            (when (and filename
                       (file-exist-p filename)
                       (y-or-n-p (concat filename " を削除しはるの?")))
              (save-buffer)
              (delete-file filename)
              (message "Deleted file ~A" filename)))
          (delete-buffer (selected-buffer)))
        (define-key ctl-x-map #\Delete 'delete-file-and-kill-buffer)

    ・M-x open-jungle-grep して、未入力のまま Enter すると、シングルファイラ
      が開く。キーバインドを減らしたかったので。


■更新履歴

  [Version 1.01] 2019-03-12 (火)
  ・JUNK file を開く関数の設定を変更した。(*open-jungle-find-file-function*)
  ・*after-open-jungle-hook* に引数としてファイル名を渡すようにした。

  [Version 1.00] 2019-03-06 (水)
  ・初版作成。


■ライセンス

  open-jungle.l の配布は GNU General Public License およびVersion 2
  の条件で、複製・改変したものを配布することができます。

open-jungle.l --- Open a junk (memo) file to trial-and-error

Copyright (C) 2019 HIE Masahiro

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

Download ...