Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 替换“之间的所有换行符”;有特定图案的两行“;在vim中用逗号_Regex_Vim_Newline - Fatal编程技术网

Regex 替换“之间的所有换行符”;有特定图案的两行“;在vim中用逗号

Regex 替换“之间的所有换行符”;有特定图案的两行“;在vim中用逗号,regex,vim,newline,Regex,Vim,Newline,如果我必须用逗号替换模式1和模式2之间的所有行的换行符,我该怎么做 发件人: 致: 对于维姆来说,这将是 :%s/\n/, /g 搜索换行符:\n并将其替换为逗号和空格:,全局执行g,这些选项按/字符分割 有关在vim中替换的更多信息,您可以在vim中找到 :%s/\n/, /g 搜索换行符:\n并将其替换为逗号和空格:,全局执行g,这些选项按/字符分割 有关在vim中替换的更多信息,您可以找到如何 :%s/Pattern 1\\.{-}Pattern 2/\=join(拆分(子匹配(0),

如果我必须用逗号替换模式1和模式2之间的所有行的换行符,我该怎么做

发件人:

致:

对于维姆来说,这将是

:%s/\n/, /g
搜索换行符:
\n
并将其替换为逗号和空格:
全局执行
g
,这些选项按
/
字符分割

有关在vim中替换的更多信息,您可以在vim中找到

:%s/\n/, /g
搜索换行符:
\n
并将其替换为逗号和空格:
全局执行
g
,这些选项按
/
字符分割

有关在vim中替换的更多信息,您可以找到

如何

:%s/Pattern 1\\.{-}Pattern 2/\=join(拆分(子匹配(0),“\n”),“,”)/g
搜寻

模式1#显而易见
\_.           # 任何字符,包括换行符
\{-}#不贪婪地重复(维姆的写作方式*?)
模式2#显而易见
更换零件应清晰无误。

如何

:%s/Pattern 1\\.{-}Pattern 2/\=join(拆分(子匹配(0),“\n”),“,”)/g
搜寻

模式1#显而易见
\_.           # 任何字符,包括换行符
\{-}#不贪婪地重复(维姆的写作方式*?)
模式2#显而易见

更换零件应清晰,无需解释。

您可以在更换时输入行号

:{pattern1LineNo},{pattern2LineNo}s/\n/, /g

您可以在替换时输入行号

:{pattern1LineNo},{pattern2LineNo}s/\n/, /g

使用
模式1
模式2
作为地址,请参阅
:help cmdline ranges

:/^Pattern 1/,/^Pattern 2/-1 s/\n/, /

使用
模式1
模式2
作为地址,请参阅
:help cmdline ranges

:/^Pattern 1/,/^Pattern 2/-1 s/\n/, /
  • :g/
    在与模式1匹配的行上,运行
    正常
    模式按键:

    • v
      i可视选择,直到<代码>/搜索模式2
    • gJ
      连接选定行,但不添加空格
    注意。用
    Ctrl-V
    Ctrl-Q
    键入
    ^M

  • :g/
    在与模式1匹配的行上,运行
    正常
    模式按键:

    • v
      i可视选择,直到<代码>/搜索模式2
    • gJ
      连接选定行,但不添加空格
    注意。用
    Ctrl-V
    Ctrl-Q
    键入
    ^M


但是,我不想用逗号替换所有的换行符。仅模式1和模式2之间的某些行。和模式1。。。Pattern2在文件中出现了很多次。对不起,我误解了这个问题。但是,我不想用逗号替换所有的换行符。仅模式1和模式2之间的某些行。和模式1。。。Pattern2在文件中出现了很多次。哦,对不起,误解了这个问题。只有知道行号并且问题区域在文件中只出现一次时才有用。@Tomalak:是的,OP没有提到多次出现。我想确保他知道我们可以在替换时放入范围。他知道,在注释中,如果你知道行号,并且所讨论的区域在文件中只出现一次,那么这很有用。@Tomalak:是的,OP没有提到多次出现。我想确保他意识到我们可以在替换时将其置于范围内