已更新
我扫描一页,我有许多带点和数字的线条,如下所示。由于扫描,数字非常不规则。数字之间可以有空格或点。
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。
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。
答案 0 :(得分:2)
您可以使用简单的替换删除尾随的东西,锚定到行的末尾($
),替换可选的空格,点,可选的空格和没有任何内容的数字:
:%s/\s*\.\+\s*\d\+$//
因为数字似乎非常不规则(根据你的例子),我们最后需要更宽松。为此,我使用了一个带有命名组的集合; [:space:]
相当于\s
(但可以在[...]
集合中使用)。
:%s/\s*\.\+[-.[:digit:][:space:]]\+$/
答案 1 :(得分:1)
我会这样做:
:%norm / \ze\.\.^MD<CR> ^M is Ctrl+V followed by Enter
或替换:
:%s/\zs \.\..*<CR>