加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – egrep结果以vim作为行参考文件列表

发布时间:2020-12-15 21:41:57 所属栏目:安全 来源:网络整理
导读:在 shell中,我使用以下函数创建文件列表并将其传递给vim. 感觉还好,但是我丢失了行参考,我按正确的顺序打开文件,但是当光标从第一行开始时我必须再次搜索文本. ?/ .bashrc上的实际功能 function vimgrep(){ vim `grep -IR "$1" * | awk -F: '$1!=f{print ""$
在 shell中,我使用以下函数创建文件列表并将其传递给vim.

感觉还好,但是我丢失了行参考,我按正确的顺序打开文件,但是当光标从第一行开始时我必须再次搜索文本.

?/ .bashrc上的实际功能

function vimgrep(){
   vim `grep -IR "$1" * | awk -F: '$1!=f{print ""$1"";f=$1}' | grep -v 'Test|test'` +ls
}

function vimgrep2(){
   vim `grep -IR "$1" * | awk -F: '$1!=f{print ""$1"";f=$1}' ` +ls
}

Obs.:filelist必须来自shell到vim,然后它必须保留缓冲文件的行引用,就像结果:make当它捕获任何错误(但没有底部窗口[:cwindow]).

编辑:
好的…不是那么优雅,但我可以将搜索到的字符串传递给vim作为/“$1”,如:

vim `grep -IR "$1" * | awk -F: '$1!=f{print ""$1"";f=$1}' ` +/"$1"

如果脚本不使用临时文件会更好.

解决方法

Vim还附带了一个你可以使用的vimgrep命令

function vimgrep() {
    local regex="$1"

    if [[ -z "$regex" ]]; then
        echo "Usage: $0 regex" 1>&2
        exit 1
    fi

    vim -c "vimgrep /$regex/ **"
}

小心在它下面有很多文件的目录中运行它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读