5

つい最近、emacs に yasnippet を使い始めたばかりで、その動作がとても気に入っています。

私が特に気に入っているスニペットの 1 つは、「for」スニペットです。

# -*- mode: snippet -*-
# name: for
# key: for
# --
for (${1:i = 0}; ${2:i < N}; ${3:i++}) {
    $0
}

しかし、私は最近、コーディング スタイルが異なるプロジェクトに取り組み始めました。上記のスニペットを簡単に配置すると、中括弧の開始位置が次のように変更されます。

# -*- mode: snippet -*-
# name: for
# key: for
# --
for (${1:i = 0}; ${2:i < N}; ${3:i++})
{
    $0
}

ただし、スニペットを手動で変更したり、多くの複製を作成したりすることなく、さまざまなプロジェクト間で簡単に切り替え、その結果としてさまざまなコーディング スタイルを簡単に切り替えたいと考えています。そこで、スニペットにいくつかの elisp コードを記述して、現在アクティブなコーディング スタイルに自動的に適応できるようにすべきだと考えました。

Emacs/elisp のドキュメントをいくつか見て回ったところ、いわゆる c-hanging-brace-alist ( GNU doc ) が見つかりました。しかし、私は elisp で実際にプログラミングをしたことがなく、これを達成する方法がよくわかりません。ヘルプやアドバイスをいただければ幸いです。

4

2 に答える 2