Eu brinquei com sua solução. Aqui está uma versão ligeiramente ajustada que funciona melhor para mim em um sistema Mac OSX 10.11 usando homebrew.
Primeiro, em um arquivo rvim_fun.sh, defino
vi () {
local params=();
while [[ ! -z $1 ]]; do
# test if arg begins a sequence S of characters
# - . A-Z a-z 0-9 @ _
# followed by a colon,
# if so, we replace S: by scp://S/ to match vim syntax
if [[ "$1" =~ ^[-.A-Za-z0-9@_]*:.*$ ]]; then
params=("scp://${1/://}" "${params[@]}");
else
params+=("$1");
fi;
shift;
done;
echo vi ${params[@]};
$HOME/bin/vi ${params[@]};
}
Eu achei que isso de alguma forma funciona melhor para mim (também, eu tenho um programa vi instalado em ~ / bin que invoca o MaxVim).
Agora, no meu Mac, eu instalei o bash-completion via homebrew. Tudo o que eu tinha que fazer era colocar o seguinte na minha arquivo .bashrc:
case "$-" in
*i*) source rvim_func.sh
complete -F _scp -o nospace vi
;;
*) ;;
esac
Então, eu não fornecia nada diretamente, exceto pelo que alguém tem para fazer com homebrew:
if [ -f $(brew --prefix)/etc/bash_completion ]; then
. $(brew --prefix)/etc/bash_completion
fi
Isso é do quadro de discussão homebrew ...
De qualquer forma, isso funciona muito bem para mim agora ... obrigado!