如何删除与vi中请求权限的模式匹配的所有行

时间:2015-04-01 15:43:59

标签: vim 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

但它确实是错误的

2 个答案:

答案 0 :(得分:4)

只有:substitute命令具有c onfirm标志。但是,如果使用与整行(包括尾部换行符)匹配的正则表达式,则可以使用该表达式删除整行,并进行确认:

:%s/.*GLY.*\n//c

或者,您可以在:global中建立自己的确认;这是一个简单的,你必须用 Enter Esc 来回答:

:g/GLY/if confirm('Delete: ' . getline('.')) | delete _ | endif

答案 1 :(得分:0)

[使用替换的力量:%s] 要确认删除包含vim的所有行, :g / vim / s /.*// gc [这确认 - 用空格替换所有匹配的行] :g / ^ $ / d [删除所有空白行]

奖励:要确认删除所有与vim'开头'的行, :克/ ^ VIM / s的/.*// GC :克/ ^ $ / d