89928


vimの公式ドキュメントにおけるパターンと検索コマンドで改行(\n)の部分に以下の記述があります。  
<http://vimdoc.sourceforge.net/htmldoc/pattern.html#pattern-atoms>

[code]

    \n  matches an end-of-line              */\n*
        When matching in a string instead of buffer text a literal newline
        character is matched.
    
[/code]

この `When matching in a string instead of buffer text a literal newline
character is matched.` の部分の意味がわかりません。どのような場合に検知できるのでしょうか?

以下の実験をしました。  
ファイルに以下の記述をし、vimのコマンドラインに`/\n`と入力しましたが、全ての場合でリテラルの改行文字とマッチすることはありませんでした。

[code]

    "\n"
    '\n'
    \n
    
[/code]


CC BY-SA 4.0
2022-07-12T07:39:00.847
89927
2022-07-12T07:58:16.967
34936
question
vim
vimの公式ドキュメントにおけるパターンと検索コマンドで改行(\n)の部分に理解できない記述があります。


Vim において、正規表現は `/` による検索の他に Vim script 内での正規表現マッチに利用されます。  
`matching in a string instead of buffer text` は、`/` によるバッファテキストの検索ではなくこの Vim
script 内での使用のことを指します。

[code]

    let string = "foo\nbar"  " 改行を含む文字列
    echo string =~# '\n'     " 文字列が改行を含んでいるかどうかを =~# 演算子を使って正規表現マッチ
    
[/code]


CC BY-SA 4.0
2022-07-12T07:58:16.967
89928
2022-07-12T07:58:16.967
2541
89927
answer