Rod*_*gel 5 vim bash shell grep
在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
}
Run Code Online (Sandbox Code Playgroud)
Obs.:filelist必须来自shell到vim,然后它必须保留缓冲文件的行引用,就像结果:make当它捕获任何错误(但没有底部窗口[:cwindow]).
编辑:好的...不是那么优雅,但我可以将搜索到的字符串传递给vim为+ /"$ 1",如:
vim `grep -IR "$1" * | awk -F: '$1!=f{print ""$1"";f=$1}' ` +/"$1"
Run Code Online (Sandbox Code Playgroud)
如果脚本不使用临时文件会更好.
Vim 还附带了一个vimgrep你可以使用的命令
function vimgrep() {
local regex="$1"
if [[ -z "$regex" ]]; then
echo "Usage: $0 regex" 1>&2
exit 1
fi
vim -c "vimgrep /$regex/ **"
}
Run Code Online (Sandbox Code Playgroud)
在下面有很多文件的目录中运行它时要小心。
| 归档时间: |
|
| 查看次数: |
448 次 |
| 最近记录: |