几个月前,我在我的mac上安装了一个实用程序,这样就不用输入这样的东西了:
vim /type/path/to/the/file
我可以输入:
v file
10次中有9次会根据过去的历史记录猜出正确的文件,类似于autojump
的工作方式。而不是输入vim
我只需输入字母v
即可。
我无法记住我是如何设置它的。它仍然可以在我的Mac上运行,但我在.bash_profile中看不到任何显示我是如何做到的。
我试图在我的linux机箱上运行它。
答案 0 :(得分:1)
答案 1 :(得分:0)
啊!我找到了which
的命令。这是神奇的剧本。我无法确定我在哪里获得它。
#!/usr/bin/env bash
[ "$vim" ] || vim=vim
[ $viminfo ] || viminfo=~/.viminfo
usage="$(basename $0) [-a] [-l] [-[0-9]] [--debug] [--help] [regexes]"
[ $1 ] || list=1
fnd=()
for x; do case $x in
-a) deleted=1;;
-l) list=1;;
-[1-9]) edit=${x:1}; shift;;
--help) echo $usage; exit;;
--debug) vim=echo;;
--) shift; fnd+=("$@"); break;;
*) fnd+=("$x");;
esac; shift; done
set -- "${fnd[@]}"
[ -f "$1" ] && {
$vim "$1"
exit
}
while IFS=" " read line; do
[ "${line:0:1}" = ">" ] || continue
fl=${line:2}
[ -f "${fl/\~/$HOME/}" -o "$deleted" ] || continue
match=1
for x; do
[[ "$fl" =~ $x ]] || match=
done
[ "$match" ] || continue
i=$((i+1))
files[$i]="$fl"
done < "$viminfo"
if [ "$edit" ]; then
resp=${files[$edit]}
elif [ "$i" = 1 -o "$list" = "" ]; then
resp=${files[1]}
elif [ "$i" ]; then
while [ $i -gt 0 ]; do
echo -e "$i\t${files[$i]}"
i=$((i-1))
done
read -p '> ' CHOICE
resp=${files[$CHOICE]}
fi
[ "$resp" ] || exit
$vim "${resp/\~/$HOME}"