質問: * コメントを追加する時に、特定のユーザーに返信するにはどうすればいいですか? * 返信相手には通知されますか? ←FAQ目次に戻る
回答: コメント内に @name と書くことで、特定の誰かに返信できます。そうすると返信相手の受信箱に通知が表示されます。 !受信箱 もしメールで受信する設定をしていたら (プロフィールページの「基本設定」から設定できます)、メールでも通知が届きます。 要約版 === * Markdownのヘルプページの、コメントを使った返信 のセクションにまとめがあります。 詳しいルール ====== 特定の相手にのみ返信できます: * コメント先の質問や回答を投稿したユーザーは常に、全てのコメントの通知を受け取ります。 * @name で通知できる人数は、上記の投稿者以外で **1人** のみです + 通知できるのは、同じ投稿にコメントしたことがあるユーザーか、編集履歴に名前があるユーザーです - コメントの条件: 削除されていないこと - 編集履歴の条件: 一般ユーザーとして (モデレーターや金のタグバッジ保持者としてではなく) 投票によって投稿をクローズしたり、リオープンしたりしたユーザーは対象外 + 自動補完候補になるのはコメントしたユーザーのみ @name の書き方: * ユーザー名に空白がある場合、空白を詰めて @taroyamada と書きます * @name の後にピリオド、カンマ、コロンが 1 つだけある場合は無視されます: *@name, はいそうです* * @name の後にピリオドが複数ある場合も無視されます: *@name... はい* * @all といった特殊な記法はサポートされていません ちょっとかしこい機能: * 投稿者が自分の投稿に @name なしのコメントを追加した場合、これまでに他に1人しかコメントしていなければ、そのユーザーが通知されます * タブ補完機能が装備されています + @name を付けなくても通知がいくケースでは補完はしません + 編集履歴にしか名前がないユーザー名は補完しません 詳細仕様 ==== 1. 質問と回答はそれぞれ別のスレッドとして考えます。 * 例えば、アリスが自分の質問や回答を編集したりコメントを追加したりしていた場合、ボブの回答にコメントすることでアリスに通知を飛ばすことはできません。(ボブの回答にアリスもコメントしていた場合はもちろんOK。) * 逆にアリスの質問や回答へのコメントでボブに通知を飛ばすこともまたできません 2. 通知を飛ばすには @name とコメントに書きます。 @name は返信相手の現在のユーザー名とそれなりにマッチしている必要があります。ユーザー名をプロフィールで設定していないユーザーには返信できません。 3. マッチするとみなす基準: * 表示名の最初の単語 (ファーストネームと仮に呼ぶ) の長さが 3 文字以上の場合 + @name は、ファーストネームの先頭から 3 文字以上、大文字小文字は区別せずにマッチする必要があります + 例: @a も @ab だと誰にも返信できない (@ab については 2 文字のファーストネームのユーザーの場合を除く) + 例: @jo で Jo Miller に返信できるが、 John は返信できない + 例: @B. で B. Gates に返信できるが、 B.Gates は返信できない * @name の名前の長さが 3 文字以上の場合 + 全ての文字がマッチする必要があります + 例: @alix も @aliceinwonderland も、 Alice に通知できない 4. マッチングは最新のユーザーから順におこなわれます。 * John という名前のユーザーが 5 人参加していたら、 @john で通知されるのは一番最近の John です * もっと前の John に返信したい場合は、この次のルールが使えます 5. 空白の扱いについて * マッチングにあたって、**ユーザー名に含まれる空白は除去**されます + Peter Smith に返信するのに、 @pet @peter @peters @petersmith のどれも使えます + Peter Jones もスレッドに参加していた場合、最後の 2 つの書き方を使えば Jones さんをスキップして Smith さんに通知を飛ばすことができます。 Jones さんに絞りたい場合は @peterj です * @name に空白を解釈させることはできません + P Smith に返信するには @psm や @psmith と書く必要があります + P Smith に返信しようとして @P Smith と書いた場合、 @P が @name だと解釈され、これは短すぎるので通知は飛ばないことになります * ユーザー名にシングルクォート、ピリオド、ハイフン、アンダースコアが含まれていた場合、省略することはできません 6. 特殊な文字は、可能な場合、よりシンプルな文字に置き換えられます。 * 例: Piëre に返信するのに @piëre も @piere も使えます * 例: Jörg に返信するのに @jorg は使えますが @joerg は使えません 7. 2 つ以上 @name を含むコメントは投稿できません。 * 回避策: ``` をコメントに含めれば投稿できます。ただし、最初の @name の相手のみ通知されます。 * 例: @alice @bob Hi!` というコメントだと、 Alice に通知がいきます (その他の通知条件を満たしている場合) が、 Bob は通知されません 8. 上記のルールの例外として、最初の @name に誰もマッチしなかった場合やコメント先の投稿の投稿者にマッチした場合 (元々通知されるので @name は必要ないことになる)、その次の @name が考慮されます。 9. コメントの編集可能時間内に @name を追加変更した場合、そのタイミングによっては新しい返信相手に通知が届いたり届かなかったりします。 10. 質問や回答の投稿者は、新しいコメントが追加されたら常に通知を受け取ります。 @name を使う必要はありません。 * コメントでやりとりしているのがあなたと投稿者の 2 人だけだった場合、コメントの先頭にある @name は (不要なので) 自動的に削除されます 11. @name の前には空白を置くか、コメントを @name で始める必要があります * 例: `*@name*` のような書き方は無視されます 12. 約物の扱いについて * @name の後に続くピリオド、カンマ、コロンは 1 つだけ無視されます + ハイフンはユーザー名に使える文字なので、無視されません + つまり @name- で name ユーザーに通知することはできません * ユーザー名の最後にあるピリオドは削除されます + 例: @St は 2 文字しかありませんが、これで St. に返信できます 13. マッチングはコメントを投稿した時点でのユーザー名に対しておこなわれます。ユーザー名を変更したことがあるユーザーについて、過去のユーザー名は考慮されません。 アルゴリズムを逆解析した結果: 精確なマッチングルールは公開されていませんが、2011年8月30日に実地検証した結果では、以下のようなアルゴリズムが使われているようです: * `@` に続く最初の単語をまず取る。単語の境界は、スペース、ユーザー名には使えない文字 (`: , / ! ?`など)、またはコメントの末端とする。 * 取得した文字列の末端にピリオドがあれば 1 つ削除する (2 文字以上ある場合) * 残った文字列に `'` か `'s` があれば、削除する * 残った文字列と、スペースを削除したユーザー名をマッチングする 例: `@O'Conner's.)` で終わるコメントを例に取ると: 1. `@` に続く最初の単語は `O'Conner's.` * `'` も `.` もユーザー名に使える文字であることに注意 2. 末端のピリオドを削除 3. 末端の `'s` を削除 4. `O'Conner` が最終的に残る 有効な通知の書き方の例: * `@name some text` * `@name: some text` * `@name. Some text` * `@name, some text` * `some text, @name` * `some text, @name, more text` * `Some text, @name.` * `This is mentioned in @name's comment.` * `@P.` → P. Smith と P. Jones (のうち最近コメントした方) (P.Smith も P.Jones も対象外) + `@P. Smith` は `@P.` と解釈される → P. Smith や P. Jones * `@psm` または `@psmith` → P Smith * `@peters` → Peter Smith、`@peterj` → Peter Jones * `@name...` 通知が飛ば**ない**ケース: * `abc@name` * `*@name*` * `*@name:*` * `@name` * `@name` * `@P Smith` Stack Exchange コミュニティFAQより