用于搜索文件内容、打开文件并转到相关行的实用程序

用于搜索文件内容、打开文件并转到相关行的实用程序

我正在寻找一种工具,给定一个搜索字符串和一些设置文件,就会在每个文件里搜索所述字符串,如果找到,就打开该文件并转到该行。

也许下面的代码片段可以更好地解释这一点

search() {
  for file in $(find . -type f); do
    contains=$(cat "${file}" | grep -n "$1")
    [[ -n "${contains}" ]] && echo "${file}"
  done
}

这是一个简化版本——它只会打印匹配文件的文件名并搜索当前目录中的每个文件,但它可以工作。我们可以扩展它并转到相关行,方法是在条件语句中添加一些内容,例如

line=$(echo "${contains}" | sed -E 's/^(\d*):.*/\1/')
vim -c "${line}" "${file}"

但这有很大的缺陷,特别是在搜索代码时。

是否有工具可以完成这项任务?

答案1

我建议使用 Vim 插件确认-确认vim

ack.vim 插件在 Ansible 源代码中搜索“package”

(截屏视频是用拜赞用一个包装器来自 Ask Ubuntu,并经过优化吉夫西勒

相关内容