首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用Vim删除所有点和点后面的数字

如何用Vim删除所有点和点后面的数字
EN

Stack Overflow用户
提问于 2014-10-06 07:40:28
回答 2查看 501关注 0票数 0

已更新

我扫描一页,我有很多行点和数字,如以下所示。由于扫描,数字非常不规则。数字之间可以有空格或点。

代码语言:javascript
复制
g. Problem-Solving Strategy: Use Logical Reasoning .........................1. 3
h. Problem-Solving Strategy: Use a Venn Diagram ..............................1 4
i. Review: Problem-Solving Strategies .................................... 1 5
(and more lines)
a. Scientific Notation ............................................... 2. 1 -22
b. Variable Expressions .................................................. .24 -26
c. Functions ....................................................................3.  8-39

现在,我想编辑这个没有点和数字,像这样的点与vim。

代码语言:javascript
复制
g. Problem-Solving Strategy: Use Logical Reasoning
h. Problem-Solving Strategy: Use a Venn Diagram 
i. Review: Problem-Solving Strategies 
(and more lines)
a. Scientific Notation 
b. Variable Expressions 
c. Functions

目前我正在逐行地做这件事,这需要很长时间。

我想知道是否有一个更好的和更短的方式来做它的VIM。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-06 07:48:13

您可以使用一个简单的替换(锚定在行尾($) )来删除尾随的内容,它替换了可选的空格、点、可选的空格和一个没有任何内容的数字:

代码语言:javascript
复制
:%s/\s*\.\+\s*\d\+$//

因为数字的内容似乎非常不规则(根据您的例子),所以我们需要在最后更加宽松。为此,我在命名组中使用了一个集合;[:space:]等同于\s (但可以在[...]集合中使用)。

代码语言:javascript
复制
:%s/\s*\.\+[-.[:digit:][:space:]]\+$/
票数 2
EN

Stack Overflow用户

发布于 2014-10-06 08:10:43

我会这样做:

代码语言:javascript
复制
:%norm / \ze\.\.^MD<CR>      ^M is Ctrl+V followed by Enter

或替代:

代码语言:javascript
复制
:%s/\zs \.\..*<CR>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26211779

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档