(vim)如何删除具有指定字符的单词?

(vim)如何删除具有指定字符的单词?

所以我尝试使用 vim 删除所有包含字母“a”的单词

我想改变这个字符串

hotel echo lima lima oscar whiskey oscar romeo lima delta

hotel echo whiskey romeo

我希望我可以在 vim 上做到这一点,但如果我必须在 paste、sed 等上做到这一点也没问题。只要我可以在 linux 上做到这一点。

谢谢

答案1

使用以下内容:

s/\<\w*a\w*\> *//g

解释:

s/      # substitute, delimiter
    \<      # word boundary
    \w*     # 0 or more word character
        a       # letter a
    \w*     # 0 or more word character
    \>      # word boundary
     *      # 0 or more spaces
/       # delimiter
/g      # delimiter, global

答案2

一种方法是将光标放在行首,搜索/a,然后 daw(“删除一个单词”)。然后,您可以使用 跳转到下一个匹配项n,然后按.重复删除(并继续发送n+ .)。如果行很长,您可以使用 录制宏(将光标放在行首)qqndaw,然后使用 重复该宏 100 次(或某个足够大的数字)100@q

相关内容