問題

Emacsのorg-modeで 自作snippetのkeyで指定したものをタイプし、TABを押せば変換されるはずなのだが何も起きない。

TABの代わりに M-x yas-expand すると変換される。

また、拡張子無しのファイルでTABしたら変換された。

どうやらorg-modeのTABに割り当てられているマクロと競合しているようだ。

解決策

調べたらorg公式に解決策が載っていた。 以下を設定ファイルに追記後、Emacsを再起動したら無事にorg-modeでTABで変換することができた。

(defun yas/org-very-safe-expand ()
  (let ((yas/fallback-behavior 'return-nil)) (yas/expand)))
(add-hook 'org-mode-hook
          (lambda ()
            (make-variable-buffer-local 'yas/trigger-key)
            (setq yas/trigger-key [tab])
            (add-to-list 'org-tab-first-hook 'yas/org-very-safe-expand)
            (define-key yas/keymap [tab] 'yas/next-field)))

参考サイト

https://orgmode.org/manual/Conflicts.html#Conflicts

日本語で検索しても出てこなかったので、この記事が検索に引っかかれば誰かの役に立てるかもしれない。