Vim 非贪心搜索

标签 vim

我正在尝试删除 csv 文件中每行的第一个逗号之前的所有内容。 这些行是这样的:

-29.45829963684082~149.14680480957031,-000029.45829963684082, 000149.14680480957031,WGS84
-29.46190071105957~149.09509277343750,-000029.46190071105957, 000149.09509277343750,WGS84

当我执行 %s/.*,\\{-}// 时,它会删除所有内容!

如果我使用 %s/.*,// 它将删除除 WGS84 之外的所有内容,这是我所期望的。

谁能告诉我我做错了什么?我认为 \{-} 在 Vim 中强加了非贪婪匹配。

谢谢,

约翰

最佳答案

\{-} 是 Vim 中的非贪婪匹配,所以你应该使用 \{-} 而不是 *

试试:

%s/.\{-},//

关于Vim 非贪心搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12310668/

相关文章:

Vim复制行中的第一个单词并在该单词后打印它,以4个空格分隔

vim - 如何让vim解析quickfix窗口的多行错误信息?

perl - vimscript 复制粘贴变量

vim - 有没有办法在 VIM 中映射键范围?

vim - Red Hat EL7 默认设置的 vim colorcheme 是什么?如何将其移植到其他系统?

vim - 如何让vim仅在事件缓冲区上突出显示当前行?

regex - vim 可视 block 搜索/替换仅替换一行中的第一次出现

vim - CORBA IDL 的 ctags 生成器?

vim - 在 vim 中,输入被映射到一个 ctrl 键自定义键映射

vim - 使用 vim 将 markdown 标题转换为 org 标题