Linux 在特定单词之间使用VIM删除.txt的内容
我想删除两行之间的.txt内容,而不是内容关键字。vim是否可以这样做?您可以使用以下命令:Linux 在特定单词之间使用VIM删除.txt的内容,linux,vim,text-files,Linux,Vim,Text Files,我想删除两行之间的.txt内容,而不是内容关键字。vim是否可以这样做?您可以使用以下命令: :g/BEGIN/,/END/d 如果不需要删除关键字: :g/BEGIN/+1,/END/-1d 您可以使用以下命令: :g/BEGIN/,/END/d 如果不需要删除关键字: :g/BEGIN/+1,/END/-1d 给定 我要删除的最后一行在文件的末尾,但我要删除的第一行不是文件的第一行 我会使用: %s/\_.*\zs\n\=.*BEGIN\_.*END.*// ->:h/\\\.,:
:g/BEGIN/,/END/d
如果不需要删除关键字:
:g/BEGIN/+1,/END/-1d
您可以使用以下命令:
:g/BEGIN/,/END/d
如果不需要删除关键字:
:g/BEGIN/+1,/END/-1d
给定
我要删除的最后一行在文件的末尾,但我要删除的第一行不是文件的第一行
我会使用:
%s/\_.*\zs\n\=.*BEGIN\_.*END.*//
->:h/\\\.
,:h/\zs
=>直到\zs
,可以匹配的所有内容(新行/CR)都已匹配(包括您似乎要忽略的第一次出现的BEGIN)。然后匹配要删除的行的所有行(及其以前的\n
),直到结束(及其完整行)。给定
我要删除的最后一行在文件的末尾,但我要删除的第一行不是文件的第一行
我会使用:
%s/\_.*\zs\n\=.*BEGIN\_.*END.*//
->
:h/\\\.
,:h/\zs
=>直到\zs
,可以匹配的所有内容(新行/CR)都已匹配(包括您似乎要忽略的第一次出现的BEGIN)。然后匹配要删除的行的所有行(及其以前的\n
),直到最后一行(及其完整的行)。谢谢,但是…我要删除的最后一行在文件的末尾,但我要删除的第一行不是文件的第一行…开始
/结束
只是关键字,将它们更改为满足您需要的任何内容。谢谢,但是…我要删除的最后一行在文件末尾,但我要删除的第一行不是文件的第一行…BEGIN
/End
只是关键字,将它们更改为满足您需要的任何内容。您能解释一下如何仅删除内部关键字吗?将\zs
0长度模式移动到您希望匹配真正开始的位置(之前的内容变成上下文)。并添加区域结束模式(\ze
)以及->%s/\\\\\\\.*\n\=.*BEGIN\zs\\\\.*\zeEND.*/
您能解释一下如何只删除内部关键字吗?将\zs
0长度模式移动到您希望匹配真正开始的位置(之前的内容变成上下文)。并添加区域结束模式(\ze
)以及->%s/\\\\\\.*\n\=.*BEGIN\zs\\.*\zeEND.*/