0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Emacs Lisp 超初心者がコマンドを作ってみる 〜初めての関数〜

Last updated at Posted at 2024-12-17

準備

  1. サンプルの rev-list-options.po を C-x C-f で開きます(po-modeになります。po-modeにならないときは po-mode をパッケージインストールしてください)
  2. po-ediff-previous-msgid.el を C-x C-f で開きます。

最初の関数

po-ediff-previous-msgid.el
(defun po-ediff-previous-msgid ()
  "Ediff previous msgid (marked #| ) and msgid."
  (po-find-span-of-entry)
  (po-get-msgid))

まずは関数の定義です

(defun hogehoge (引数1 引数2 ... ) "説明" body1 body2 ... )

ですけど、読みにくいので、通常は上記のように改行して書きます。

"説明" はこれっきり1つで済ませます。 説明のうしろは全部本体です。 body は幾つ並べ得てもいいです。同じレベルのを順番に実行(評価)します。

なお、最後の評価結果が関数の戻り値となるのが C言語 の return なんかと違うところです。 このため、処理結果を格納した値をわざと最後に単独で (resultvalue) とか置いたりします。

関数の登録

この関数を登録するには、これを評価します。再度評価すると新しい定義に更新されます。 我々が普段「関数の実行」と言っているのは、厳密にいうと「関数の呼び出し」です。わりナチュラルに混同しますので、文脈で使い分け、分からない時は素直に尋ねた方がよいでしょう。

さてこの関数を登録(更新)する操作は C-M-x (CTRL+ALT+x) です。

関数の実行(評価)

登録したら早速試してみましょう。
サンプルのバッファに行って、適当なエントリに行って、 M-: (ALT+:)で eval: とプロンプトが出るので

(po-ediff-previous-msgid)

とすると、ミニバッファーに結果が表示されます。 msgid の文字列(とその後ろにごちゃごちゃ)が表示されます。後ろのごちゃごちゃは文字のプロパティです。ここではとりあえず気にしなくていいです。

今回はここまで。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?