古い暗号化エントリーの Decryption failed を回避する
org ファイルの各エントリーは、gpg を使って暗号化できますが、かれこれ10年ほど前に暗号化したエントリーを復号できないケースに当たりました。数年前にも同じようなケースに遭遇しましたが、今回はその時とは違う方法で解決できたので、記録を残します。
org ファイルの各エントリーは、gpg を使って暗号化できますが、かれこれ10年ほど前に暗号化したエントリーを復号できないケースに当たりました。数年前にも同じようなケースに遭遇しましたが、今回はその時とは違う方法で解決できたので、記録を残します。
脆弱性対策の為に先日、最新の安定版29.3がリリースされたEmacsですが、次のメジャーアップデートのEmacs 30からは、NativeCompがデフォルトでオンになるようです。
https://github.com/emacs-mirror/emacs/blob/master/etc/NEWS#L29
** Native compilation is now enabled by default.
'configure' will enable the Emacs Lisp native compiler, so long as
libgccjit is present and functional on the system. To disable native
compilation, configure Emacs with the option:
./configure --with-native-compilation=no
macOS用のインラインパッチ付きEmacsはどうしましょう…
3月冒頭に発売された M3チップ搭載のMacBook Airをゲットしました。手元の Intel i7 のMacBook Airと比較して、どのくらいスペックが向上したかな?との疑問が自然と生じますので、早速比較してみました。Emacsの起動時間で。
the_silver_sercher(ag)
を用いた全文検索を Emacs から使う場合に、 counsel-ag
を使っています。検索の範囲は、現在のバッファ(ファイル)があるディレクトリ以下に自動的に設定されますが、ソースコードを読んでいる時には検索の範囲を、ソースコードが属しているプロジェクト全体に設定したくなります。
16dfe04be2c57fc82ccdd56cad97b39d559a5afe で解決しました (将来、再発するかもしれませんが…)
NativeComp が有効になった Emacs 28 ですが、macOS+Homebrew の環境では、うまくビルドできない場合があります。根本的な原因は Homebrew でインストールする libgccjit の状態に依存していて、現時点(2022-08-15)でも問題が再発しています。libgccjit のバージョンが12で、master branch と emacs-28 branch の双方で発生します。当面の解決策は、下記に示すパッチを configure.ac
にあてて autogen.sh
を呼べば、正しくビルドできる configure
が生成されます。
ここ数日、界隈を賑わせている GCC Emacs を試してみました。28系のコードで特定のオプションを付けてビルドすると、 el
を elc
にする従来のバイトコンパイルに加えて、 eln
に変換するネイティブコンパイルを使えるようになります。GCC Emacsと呼ばれています。
Emacsのモードラインやバッファを賑やかにしてくれる all-the-icons.el
ですが、環境によっては希望するアイコンがレンダリングされなかったり、しかも直すのが簡単じゃありません。
init.el
を org-mode
で書いている関係から、一般的な設定ファイルと同じように、特定のorgファイルが簡単に書き換わってほしくない状態にあります。そういうファイルは view-mode
で扱うのがよいですね。
再開発感満載ですが、句読点を置き換えるコマンドを書きました。
M-x my-replace-punctuation-to-scientific
でカンマ・ピリオドに、 M-x my-replace-punctuation-to-normal
で点丸になります。
標準関数の org-table-export
を使うと、カーソル位置のテーブルをファイルに出力できます。プロパティの TABLE_EXPORT_FILE
を設定してればファイル名を指定する必要はなく、また出力形式は、同じくプロパティの TABLE_EXPORT_FORMAT
で指定する形式か、 org-table-export-default-format
で指定した値が使われます。