古い暗号化エントリーの Decryption failed を回避する
org ファイルの各エントリーは、gpg を使って暗号化できますが、かれこれ10年ほど前に暗号化したエントリーを復号できないケースに当たりました。数年前にも同じようなケースに遭遇しましたが、今回はその時とは違う方法で解決できたので、記録を残します。
org ファイルの各エントリーは、gpg を使って暗号化できますが、かれこれ10年ほど前に暗号化したエントリーを復号できないケースに当たりました。数年前にも同じようなケースに遭遇しましたが、今回はその時とは違う方法で解決できたので、記録を残します。
init.el
を org-mode
で書いている関係から、一般的な設定ファイルと同じように、特定のorgファイルが簡単に書き換わってほしくない状態にあります。そういうファイルは view-mode
で扱うのがよいですね。
org-mode
のブリッツは非常に便利です。ちょっとしたリストを作成したり、手順を記したり、様々な用途に使えます。また、ブリッツにチェックボックスを加えれば、タスクの実施済みと未実施を簡単に区別できます。
私は普段から自動保存機能(auto-save-buffer.el)を利用しているので、 org table のセルで C-c ?
押下でエコーエリアに表示される情報がすぐ消えてしまいます。
org-table-field-info (C-c ?)
は
line @2, col $1, ref @2$1 or A2 or $LR1
のような情報をエコーエリアに出してくれる機能で、 tblfm
で指定する数式に使用します。(私が施している設定が主な要因で)これが自動保存時に消えるため、保存してからエコーエリアに表示するように変更します。
コンテンツ
elisp
(message "Hello! World")
Centered
Centered text
cpp
#include <iostream>
using namespace std;
int main(){
cout << "Hello, World!" << endl;
return 1;
}
$H(z)$
1 | 3 |
---|---|
2 | 4 |
太字 , 下線 , イタリック
拙作のパッケージのメンテナンスを再開しました。どちらもまだまだ改良が必要なのですが、とりあえずはドキュメントの更新からでしょうか…
eldoc
の機能を用いてカーソル下のリンクをエコーエリアに出す設定です。意外と簡単にできました。
(with-eval-after-load "org"
(add-hook 'org-mode-hook #'my-load-echo-org-link)
(defun my-echo-org-link ()
(when (org-in-regexp org-link-bracket-re 1)
(let ((link "Link:")
(msg (org-link-unescape (match-string-no-properties 1))))
(put-text-property 0 (length link) 'face 'minibuffer-prompt link)
(eldoc-message (format "%s %s" link msg)))))
;; これはダメな例
;; (defun my-load-echo-org-link ()
;; (setq-local eldoc-documentation-function #'my-echo-org-link))
;; こちらが正しい実装
(defun my-load-echo-org-link ()
(add-function :before-until (local 'eldoc-documentation-function)
#'my-echo-org-link)))
なお、 org-eldoc
と併用する場合、 eldoc-documentation-function
が専有されてしまうので、次のように advice
して回避します。
ox-hugo
を使った Hugo
への markdown 出力では、最終更新日( lastmod
)を設定できる。
さらに次のように設定すれば、ファイル保存時に自動的に最終更新日を設定できる。
(setq org-hugo-auto-set-lastmod t)
しばらくはこの設定でうまく運用できていたが、細かい修正等で、わざわざ更新日を更新する必要がないことも多いことがわかった。
せっかく ox-hugo で記事を書いているので、Hugo記事のソースとなる orgfile を明示したい。
毎度手動でそのリンクを生成するのは面倒なので、マクロで実現してみる。
まず、マクロから呼び出す関数を書く。