一个简单又原始的脚本来用 Vim 打开你选择的文件。
像大多数开发者一样,我整天都在搜索和阅读源码。就我个人而言,我从来没有习惯过集成开发环境 (IDE),多年来,我主要使用 grep
(找到文件),并复制/粘贴文件名来打开 Vi(m)。
最终,我写了这个脚本,并根据需要缓慢地对其进行了完善。
它依赖 Vim 和 rlwrap ,并使用 Apache 2.0 许可证开源。要使用该脚本,请将它放到 PATH 中 ,然后在文本目录下运行:
1 grepgitvi <grep options > <grep /vim search pattern>
它将返回搜索结果的编号列表,并提示你输入结果编号并打开 Vim。退出 Vim 后,它将再次显示列表,直到你输入除结果编号以外的任何内容。你也可以使用向上和向下箭头键选择一个文件。(这对我来说)更容易找到我已经看过的结果。
与现代 IDE 甚至与 Vim 的更复杂的用法相比,它简单而原始,但它对我有用。
脚本 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 #!/bin/bash TMPD=$(mktemp -d /tmp/grepgitvi.XXXXXX) UNCOLORED=${TMPD} /uncolored COLORED=${TMPD} /colored RLHIST=${TMPD} /readline-history [ -z "${DIRS} " ] && DIRS=.cleanup () { rm -rf "${TMPD} " }trap cleanup 0 find ${DIRS} -iname .git -prune -o \! -iname "*.min.css*" -type f -print0 > ${TMPD} /allfilescat ${TMPD} /allfiles | xargs -0 grep --color=always -n -H "$@ " > $COLORED cat ${TMPD} /allfiles | xargs -0 grep -n -H "$@ " > $UNCOLORED max=`cat $UNCOLORED | wc -l` pat="${@: -1} " inp='' while true ; do echo "============================ grep results ===============================" cat $COLORED | nl echo "============================ grep results ===============================" prompt="Enter a number between 1 and $max or anything else to quit: " inp=$(rlwrap -H $RLHIST bash -c "read -p \"$prompt \" inp; echo \$inp" ) if ! echo "$inp " | grep -q '^[0-9][0-9]*$' || [ "$inp " -gt "$max " ]; then break fi filename=$(cat $UNCOLORED | awk -F: "NR==$inp " ' {print $1}' ) linenum=$(cat $UNCOLORED | awk -F: "NR==$inp " ' {print $2-1}' ) vim +:"$linenum " +"norm zz" +/"${pat} " "$filename " done
via: https://opensource.com/article/20/2/no-ide-script
作者:Yedidyah Bar David 选题:lujun9972 译者:geekpi 校对:wxy
本文由 LCTT 原创编译,Linux中国 荣誉推出