如何打开过滤后的VIM文件而不覆盖当前文本

问题描述 投票:0回答:1

我在 VIM 中有一个文件,其中一堆名称位于不同的行中。

我想打开这个带有过滤结果的文件(更容易查看)。 但是,我想保留其他行/名称。

示例:

#open names file only show names that begin with a
vim names.txt | grep “a.*” 

我知道上面的方法行不通但是假设说如果它以所需的功能打开(仅显示以a开头的名称),然后我对这些名称进行了更改,最后保存了文件。

我想在不使用 grep 的情况下正常打开文件,并查看其余名称不受影响。

我尝试过...

 cat names.txt | grep “a.*” > names.txt

不幸的是,这不起作用,因为一旦我在 vim 中运行 :wq ,它将覆盖当前的名称.txt 文件。

感谢任何和所有帮助/建议

vim grep neovim
1个回答
0
投票

方案一:在命令行中运行

grep '^a' <file_path> | vim -
,将过滤后的名称加载到临时缓冲区中,原文件不受影响。

选项 2:如果行顺序对您来说并不重要,请尝试在 vim 中使用

:g/^a/ m0
将目标名称移至文件顶部。这样可能更容易查看。

© www.soinside.com 2019 - 2024. All rights reserved.