ドキュメンテーション文字列でシンボルを引用する方法は?


8

Emacs Lispのドキュメントでは、`buffer-file-name'docstringの内部のように、引用符で囲まれたシンボルに出くわすことがよくあります。ここで興味深いのは、シンボル名をバックティックと引用符で囲むことによる引用のスタイルです。私はこのスタイルがどこから来たのか興味がありました。この回答によるとそれは限られた文字セットに関連している可能性があります。

もう1つ注意すべき点は、これらの引用符付きのシンボルにはで構文の強調表示がemacs-lisp-modeあるのに対し、 'buffer-file-name'のように単一引用符だけで引用符付きのシンボルは構文の強調表示されないことです。

したがって、これは、バッククォート引用構文がEmacsでよく知られた規約で​​なければならないことを示しています。しかし、ドキュメントをグーグルで調べた後、どこにも言及されていませんでした。Emacs Lispマニュアルには、「ドキュメンテーション文字列のヒント」というセクションがあります。それは言う

ドキュメンテーション文字列がLispシンボルを参照するときは、それが印刷されるのと同じように(通常は小文字を意味します)、周りを一重引用符で囲みます。

しかし、引用のスタイルについては触れていません。

入力C-h f thing-at-point RETしてソースコードへのリンクをクリックすると、引用スタイルの例がさらに表示されます。

(defun Thing-at-point(thing&optional no-properties) "
ポイントでTHINGを返します。THING は
構文エンティティのタイプを指定するシンボルである必要があります。可能性には、` symbol '、 `list'、` sexp '、
`defun'が含まれます、「filename」、「url」、「email」、「word」、「sentence」、「whitespace」、
「line」、「number」、および「page」。

オプションの引数NO-PROPERTIESが非nilの場合
、戻り値からテキストプロパティを削除します。


シンボルを有効なTHINGとして定義する方法については、 `thingatpt.el 'ファイルを参照してください。"

したがって、これはすべて、記号を引用するためにbacktick-quoteスタイルを使用する必要があることを示していますが、このスタイルはどこかに文書化されていますか?


1
`quoted-symbols 'のドキュメンテーションを見つけることにもっと興味がありますか、それとも何のためにあるのか知りたいですか?後者の場合は、相互参照を目的としています。ヘルプバッファーでこれらの記号をクリックすると、クリックした記号に対応するヘルプバッファーに移動します。
ダン

1
ちなみに、Unicode文字のフォントを使用している場合は、表示テーブルを変更して、引用符に適切な文字を使用できます。あるいは、font-lockを使用して、「シンボル」の特殊なケースを認識することもできます。
Lindydancer 2015年

回答:


11

規約は、すでに参照したセクション(ドキュメント文字列のヒント)に記載されています。引用の目的が述べられており、例が提供されています:

 Help mode automatically creates a hyperlink when a documentation
 string uses a symbol name inside single quotes ... For example, if
 you write

      This function sets the variable `buffer-file-name'.

あなたが興味を持っているのはsingle quotes、このコンテキストで本当に意味する理由です

`this' 

のではなく

'this'

ASCIIのバックティック(グレーブアクセント)とシングルクォート(アポストロフィ)を使用したこの左と右の引用文字の表現は、ある時点では一般的なUNIXの慣習であると思われるため、Emacsマニュアルを読むときに説明する価値はなかったと思います。書かれた。

この投稿によると、古いX Window Systemフォントと用語フォントにより、これらのシンボルはより正確に引用符のように見えました。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.