2026-07-03 21:39:27 +09:00
2026-07-03 09:07:12 +09:00
2026-07-03 21:39:27 +09:00
2026-07-03 09:04:08 +09:00
2026-07-03 21:39:27 +09:00
2026-07-03 09:04:08 +09:00
2026-07-03 09:04:08 +09:00
2026-07-03 09:04:08 +09:00
2026-07-03 09:07:12 +09:00

my-lisp の読み込み手順

\

概要

このディレクトリには、自作 Emacs Lisp を置きます。

想定ディレクトリは以下です。

~/.emacs.d/site-lisp/my-lisp/

現在の例では、以下のファイルを読み込みます。

my-labai.el
my-org-pukiwiki.el
my-org-unfill-aware.el
my-qrcode.el
my-replace-zen-to-ascii.el
my-yatex-review-highlight.el

init.el で load-path に追加する

まず、=init.el= の先頭付近に以下を追加します。

;; ------------------------------------------------------------
;; local lisp
;; ------------------------------------------------------------

(add-to-list 'load-path (expand-file-name "~/.emacs.d/site-lisp/my-lisp"))

既に以下のようにして、=~/.emacs.d/site-lisp/= 以下のサブディレクトリを 自動的に load-path へ追加している場合は、この設定だけでも動作します。

(cd "~/.emacs.d/site-lisp/")
(if (fboundp 'normal-top-level-add-subdirs-to-load-path)
    (normal-top-level-add-subdirs-to-load-path))
(cd "~")

ただし、自作 Lisp の場所を明示した方が分かりやすいので、以下を追加しておく ことを推奨します。

(add-to-list 'load-path (expand-file-name "~/.emacs.d/site-lisp/my-lisp"))

init.el で require する

init.el に以下を追加します。

;; ------------------------------------------------------------
;; my-lisp
;; ------------------------------------------------------------

(require 'my-labai)
(require 'my-org-pukiwiki)
(require 'my-org-unfill-aware)
(require 'my-qrcode)
(require 'my-replace-zen-to-ascii)
(require 'my-yatex-review-highlight)

ただし、各 .el ファイルの末尾に以下のような provide が必要です。

(provide 'my-org-unfill-aware)

例えば、=my-replace-zen-to-ascii.el= の末尾には以下が必要です。

(provide 'my-replace-zen-to-ascii)

provide がない場合の読み込み方法

もし provide がない古い Lisp ファイルがある場合は、=require= ではなく load を使います。

(load "my-labai")
(load "my-org-pukiwiki")
(load "my-org-unfill-aware")
(load "my-qrcode")
(load "my-replace-zen-to-ascii")
(load "my-yatex-review-highlight")

ただし、今後は各ファイル末尾に provide を追加して、=require= で読み込む 形式に統一する方が良いです。

安全な読み込み方法

ファイルが存在する場合だけ読み込むには、以下のようにします。

;; ------------------------------------------------------------
;; my-lisp
;; ------------------------------------------------------------

(add-to-list 'load-path (expand-file-name "~/.emacs.d/site-lisp/my-lisp"))

(dolist (lib '(my-labai
               my-org-pukiwiki
               my-org-unfill-aware
               my-qrcode
               my-replace-zen-to-ascii
               my-yatex-review-highlight))
  (when (locate-library (symbol-name lib))
    (require lib)))

この方法では、ファイルが見つからない場合は無視されます。

ただし、設定ミスに気づきにくくなるため、普段使いでは単純に require する方が おすすめです。

推奨する init.el 追記例

以下を init.el の local lisp 設定の後ろあたりに追加します。

;; ------------------------------------------------------------
;; my-lisp
;; ------------------------------------------------------------

(add-to-list 'load-path (expand-file-name "~/.emacs.d/site-lisp/my-lisp"))

(require 'my-labai)
(require 'my-org-pukiwiki)
(require 'my-org-unfill-aware)
(require 'my-qrcode)
(require 'my-replace-zen-to-ascii)
(require 'my-yatex-review-highlight)

キー設定例

Org の改行削除

my-org-unfill-aware.el 用のキー設定例です。

(bind-key "C-c u a" 'my-org-unfill-aware-ascii)
(bind-key "C-c u j" 'my-org-unfill-aware-japanese)
(bind-key "C-c u u" 'my-org-unfill-aware-auto)

(bind-key "C-c u A" 'my-org-unfill-aware-ascii-copy)
(bind-key "C-c u J" 'my-org-unfill-aware-japanese-copy)
(bind-key "C-c u C" 'my-org-unfill-aware-auto-copy)

全角英数字・上付き下付き数字の ASCII 化

my-replace-zen-to-ascii.el 用のキー設定例です。

(bind-key "C-c h" 'replace-zen-to-ascii-region)
(bind-key "C-c H" 'replace-zen-to-ascii-region-copy)

Org から PukiWiki 変換

my-org-pukiwiki.el に定義されている関数名に合わせて設定します。

例:

;; 関数名は my-org-pukiwiki.el の定義に合わせて調整する
;; (bind-key "C-c p" 'my-org-pukiwiki-export-to-buffer)
;; (bind-key "C-c P" 'my-org-pukiwiki-copy-to-clipboard)

QR code 表示

my-qrcode.el に定義されている関数名に合わせて設定します。

例:

;; 関数名は my-qrcode.el の定義に合わせて調整する
;; (bind-key "C-c q" 'my-qrcode-region)

読み込み確認

Emacs 起動後、以下を評価します。

(locate-library "my-org-unfill-aware")

以下のようなパスが返れば、=load-path= の設定は成功です。

"/Users/takahiro/.emacs.d/site-lisp/my-lisp/my-org-unfill-aware.el"

また、関数が定義されているか確認するには、以下を評価します。

(fboundp 'my-org-unfill-aware-auto)
(fboundp 'replace-zen-to-ascii-region)

t が返れば読み込み成功です。

コマンドラインで起動確認する

GUI を起動せずに init.el の読み込み確認をするには以下を実行します。

emacs --batch -l ~/.emacs.d/init.el

エラーがなければ読み込みは概ね成功です。

よくあるエラー

Cannot open load file

例:

Cannot open load file: No such file or directory, my-org-unfill-aware

原因は、=load-path= にディレクトリが入っていないことです。

対処:

(add-to-list 'load-path (expand-file-name "~/.emacs.d/site-lisp/my-lisp"))

Required feature was not provided

例:

Required feature my-org-unfill-aware was not provided

原因は、ファイル末尾に provide がないことです。

対処:

(provide 'my-org-unfill-aware)

をファイル末尾に追加します。

Symbol's function definition is void

例:

Symbol's function definition is void: my-org-unfill-aware-auto

原因は、関数が定義されていない、またはファイルが読み込まれていないことです。

対処:

(require 'my-org-unfill-aware)

を確認します。

推奨配置

最終的には以下のような構成にします。

~/.emacs.d/
├── init.el
└── site-lisp/
    └── my-lisp/
        ├── my-labai.el
        ├── my-org-pukiwiki.el
        ├── my-org-unfill-aware.el
        ├── my-qrcode.el
        ├── my-replace-zen-to-ascii.el
        └── my-yatex-review-highlight.el

メモ

normal-top-level-add-subdirs-to-load-path を使っている場合、 ~/.emacs.d/site-lisp/my-lisp/ は自動的に load-path に入るはずです。

しかし、自作 Lisp の管理を明確にするため、次の1行は入れておく方が安全です。

(add-to-list 'load-path (expand-file-name "~/.emacs.d/site-lisp/my-lisp"))
S
Description
No description provided
Readme 128 KiB
Languages
Emacs Lisp 100%