如何删除与 vi 中请求权限的模式匹配的所有行
how to delete all lines that match a pattern asking permission in vi
你好,我是 vi 的新手,我在让 vi 询问我是否允许删除带有模式的所有行时遇到了问题。我的文件如下所示:
SEQRES 1 A 46 GLY SER GLU ALA ARG GLU CYS VAL ASN CYS GLY ALA THR
SEQRES 2 A 46 ALA THR PRO LEU TRP ARG ARG ASP ARG THR GLY HIS TYR
SEQRES 3 A 46 LEU CYS ASN ALA CYS GLY LEU TYR HIS LYS MET ASN GLY
SEQRES 4 A 46 GLN ASN ARG PRO LEU ILE ARG
我想删除所有包含字符串 'GLY'
的行
这就是我想出的:
:g/GLY/cd
但是肯定是错的
只有:substitute
命令有c
onfirm标志。但是,如果您使用匹配整行(包括尾随换行符)的正则表达式,则可以使用它来删除整行,并确认:
:%s/.*GLY.*\n//c
或者,您可以在 :global
中构建您自己的确认;这是一个简单的问题,您必须使用 Enter 或 Esc:
来回答
:g/GLY/if confirm('Delete: ' . getline('.')) | delete _ | endif
[使用替换的力量:%s]
要确认删除所有包含 vim 的行,
:g/vim/s/.*//gc [这个确认——用空格替换所有匹配的行]
:g/^$/d [这将删除所有空行]
奖励:确认删除所有 'begin' 和 vim 的行,
:g/^vim/s/.*//gc
:g/^$/d
你好,我是 vi 的新手,我在让 vi 询问我是否允许删除带有模式的所有行时遇到了问题。我的文件如下所示:
SEQRES 1 A 46 GLY SER GLU ALA ARG GLU CYS VAL ASN CYS GLY ALA THR
SEQRES 2 A 46 ALA THR PRO LEU TRP ARG ARG ASP ARG THR GLY HIS TYR
SEQRES 3 A 46 LEU CYS ASN ALA CYS GLY LEU TYR HIS LYS MET ASN GLY
SEQRES 4 A 46 GLN ASN ARG PRO LEU ILE ARG
我想删除所有包含字符串 'GLY'
的行这就是我想出的:
:g/GLY/cd
但是肯定是错的
只有:substitute
命令有c
onfirm标志。但是,如果您使用匹配整行(包括尾随换行符)的正则表达式,则可以使用它来删除整行,并确认:
:%s/.*GLY.*\n//c
或者,您可以在 :global
中构建您自己的确认;这是一个简单的问题,您必须使用 Enter 或 Esc:
:g/GLY/if confirm('Delete: ' . getline('.')) | delete _ | endif
[使用替换的力量:%s] 要确认删除所有包含 vim 的行, :g/vim/s/.*//gc [这个确认——用空格替换所有匹配的行] :g/^$/d [这将删除所有空行]
奖励:确认删除所有 'begin' 和 vim 的行, :g/^vim/s/.*//gc :g/^$/d