2017-06-22 7 views
2

ちょっとした理由から、私はEmacsの略語を読むための補完読み込み関数を書いてみたいと思います。elispで利用できるすべての略語はどうやって見つかりますか?

(defun ivy-abbrev (abbrev-name) 
    (interactive 
    (list 
    (ivy-completing-read "Insert abbrev: " (...get abbrev names here...)))) 
    (progn 
    (abbrev-insert (abbrev-symbol abbrev-name ..appropriate abbrev-table...)))) 

残念ながら何もやる可能なを見て... ...略称名を取得作るドキュメントにありません:

abbrev--before-pointのソースで探し

https://www.gnu.org/software/emacs/manual/html_node/elisp/Abbrevs.html#Abbrevs

ありますかのように見えます各呼び出しで再帰的検索abbrev--active-tablesを実行します。

これを簡単にするために、この略語APIにヘルパーメソッドがありますか?あなたは次のようなものを使用することができ

+0

'M-x write-abbrev-file'は、現在定義されているすべての略語をあなたが指定したファイルに書き出します。 'quietly-read-abbrev-file'または' read-abbrev-file'を使って読み込みます。名前が変数 'abbrev-file-name'の値であるファイルは、デフォルトで使用されます。 – Drew

答えて

1

(cl-loop for table in (abbrev--active-tables) 
    unless (abbrev-table-empty-p table) 
    append (append (delete 0 table)())) 

注意ベクトルにnilを追加すると、リストを作成するためのトリックであること。

関連する問題