仅在vim </pattern>中编辑匹配<pattern>的文件的一部分

时间:2014-08-29 14:47:12

标签: vim grep

我希望能够通过匹配模式来处理长文件,并且如果可能的话转到下一个模式,而不是让整个文件在屏幕上可见。

例如,假设我有一个以&#34;名称开头的条目列表:&#34;而且我想逐个浏览它们,我一次只能查看一个,我想&#34;姓名:&#34;当我转到下一个条目时,点击屏幕顶部,以下条目以&#34开头;名称:&#34;要被切断

3 个答案:

答案 0 :(得分:1)

Ain没有像旧学校那样的学校:

$ ex filename
:vim foo %
(do your editing on this line)
:cn
(more editing)
:wq

使用:cp移动到上一个匹配行:p以查看当前行(例如,在命令之后)。

或者,您可以使用Vim打开文件,并使用gQ激活稍微有用的Ex模式:

$ vim filename
gQ
:vim foo %
(and so on)

答案 1 :(得分:0)

你可以这样做:

:g/^Name: /norm 999o

然后输入n转到下一个结果。

这是一个hacky解决方案,但我无法想到另一种方式。它在每场比赛下创造了999个新线。完成后,您需要运行:g/^Name: /norm j999dd来修复新行。

答案 2 :(得分:0)

您可以修改搜索前进/后退的行为,以便始终将匹配项置于屏幕顶部。

:nnoremap n nzt
:nnoremap N Nzt

现在只需搜索您的模式(使用/*等),然后分别使用nN向前/向后搜索结果。