vim - vi,查找行并输出/输出到单独的文件

标签 vim

我正在寻找 VI/VIM 中的命令来搜索文件中的特定文本并抓取整行并输出到屏幕或单独的文件中。例如

This is some line with this _word_ and some other text.
This is some line with this some other text and some other text.

所以这只会输出第一行..

最佳答案

:redir > output.txt
:g/_word_/p
:redir END

该行将输出到屏幕和 output.txt。请参阅:h :redir

编辑:我同意其他人的建议,如果可以的话,建议使用普通的旧 *nix grep 。您可能无法使用 grep 的情况:

  • 您正在搜索文件系统上的文件中不存在的缓冲区文本。
  • 您正在使用 Vim 特定的正则表达式扩展,例如光标位置、列号、标记等。
  • 您希望以跨平台方式执行此操作,而您使用的系统上可能不存在 grep

redir 在这些情况下很有用。

关于vim - vi,查找行并输出/输出到单独的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3603763/

相关文章:

html - 我如何编辑我的 VIM 配置,以便 Vim 像对待我的 html 文件一样对待 ".ejs"文件?

vim - 在发送给潜在客户之前,使用 Vim 每隔三行代码就乱码一次?

vim - 选择与冒号 ':' 不同的击键以在 vi 中进入命令行模式

vim - 将命令范围传递给函数

vim - 有没有办法知道 `preview` 窗口在 vim 中打开(存在)?

vim - 如何在Vim中以每段格式在一行中重新格式化 "gq"ed文本

vim - 在 Vim 中通过管道将缓冲区传输到外部命令

Vim # 扩展

git - 如何在交互式编辑期间从 vim 内部中止 git rebase

vim - 如何删除 Vim 中的非重复行?