Emacs

counsel-projectile-ag を使う

the_silver_sercher(ag) を用いた全文検索を Emacs から使う場合に、 counsel-ag を使っています。検索の範囲は、現在のバッファ(ファイル)があるディレクトリ以下に自動的に設定されますが、ソースコードを読んでいる時には検索の範囲を、ソースコードが属しているプロジェクト全体に設定したくなります。

macOS の Homebrew で GCC Emacs のビルドがうまく行かない

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 を試す

ここ数日、界隈を賑わせている GCC Emacs を試してみました。28系のコードで特定のオプションを付けてビルドすると、 elelc にする従来のバイトコンパイルに加えて、 eln に変換するネイティブコンパイルを使えるようになります。GCC Emacsと呼ばれています。

all-the-icons から解脱したい

Emacsのモードラインやバッファを賑やかにしてくれる all-the-icons.el ですが、環境によっては希望するアイコンがレンダリングされなかったり、しかも直すのが簡単じゃありません。

view-modeをorgバッファで違和感なく使う設定

init.elorg-mode で書いている関係から、一般的な設定ファイルと同じように、特定のorgファイルが簡単に書き換わってほしくない状態にあります。そういうファイルは view-mode で扱うのがよいですね。

バッファ内の句読点を変換する

再開発感満載ですが、句読点を置き換えるコマンドを書きました。

M-x my-replace-punctuation-to-scientific でカンマ・ピリオドに、 M-x my-replace-punctuation-to-normal で点丸になります。

orgのテーブルをexcelコピペ用に変換する

標準関数の org-table-export を使うと、カーソル位置のテーブルをファイルに出力できます。プロパティの TABLE_EXPORT_FILE を設定してればファイル名を指定する必要はなく、また出力形式は、同じくプロパティの TABLE_EXPORT_FORMAT で指定する形式か、 org-table-export-default-format で指定した値が使われます。

インラインパッチ付きmacOS用Emacs頒布

以前から個人的にメンテナンスしている macOS向けEmacs NSビルド用のインラインパッチですが、 Emacs 27.2 のリリースに合わせて Apple Silicon でビルドしたパッケージの頒布も開始しました。Big Surでのみ動作します。Intelチップ用ビルドもありますが、そちらは Mojave/Catalina/Big Surで動作します。

moom.el のバージョン 1.6をリリース

かねてより自分のために書いてきた moom.el の version 1.6 をリリースしました。

前回のバージョンでは Windows 10 (w32) での動作を改善しましたが、今回は新機能の追加というところで、 undo 機能を盛り込みました。デフォルトのキーバインドは C-c C-/ です。例のごとく、キーバインド自体はデフォルトで無効になっていますので、適宜有効化してください。

org-table.el のエコー表示を安定化

私は普段から自動保存機能(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 で指定する数式に使用します。(私が施している設定が主な要因で)これが自動保存時に消えるため、保存してからエコーエリアに表示するように変更します。