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

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

但这绝对是错误的

最佳答案

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

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

或者,您可以在 :global 中构建自己的确认信息。 ;这是一个简单的,你必须用 Enter 或 Esc 回答:
:g/GLY/if confirm('Delete: ' . getline('.')) | delete _ | endif

关于vim - 如何删除与模式匹配的所有行,在 vi 中请求权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29395174/

相关文章:

VIM搜索,忽略单个字符的大小写

vim - 在 Vim 中替换字符串周围的引号?

command-line - Vim : from command line, 转到文件末尾并开始编辑?

vim - 在 Vim 中映射 Esc 键

python - 如何在 Ipython 5.0.0 中设置特定的 vim 绑定(bind)

html - emmet-vim : nested numbering and rebasing

javascript - Vim 使用空格而不是制表符缩进 JavaScript 文件

vim - 为什么vim不会识别vimrc中的插件命令,但运行时会识别它?

c++ - 如何在 Vi 和 Emacs 中使用相同缩进样式的 C++ 代码?

正则表达式:如何替换模式的一部分并引用其中的变量?