From e0d8582c0b3ba1f551ff7c60d4363a2fe2f6b428 Mon Sep 17 00:00:00 2001 From: Andy Shen Date: Sat, 4 Dec 2010 11:03:33 +1100 Subject: [PATCH] ssh completion using .ssh/config --- completion/ssh.completion.bash | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 completion/ssh.completion.bash diff --git a/completion/ssh.completion.bash b/completion/ssh.completion.bash new file mode 100644 index 0000000..7691333 --- /dev/null +++ b/completion/ssh.completion.bash @@ -0,0 +1,13 @@ +#!/bin/bash +# Bash completion support for ssh. + +export COMP_WORDBREAKS=${COMP_WORDBREAKS/\:/} + +_sshcomplete() { + if [ -f $HOME/.ssh/config ]; then + COMPREPLY=($(compgen -W "`ruby -e"puts open('${HOME}/.ssh/config', 'r') { |f| f.readlines }.find_all { |l| l =~ /^Host/ }.inject([]) { |hosts, line| hosts << line[5..-1].split }.flatten.sort.uniq"`" -- ${COMP_WORDS[COMP_CWORD]})) + return 0 + fi +} + +complete -o default -o nospace -F _sshcomplete ssh -- 2.17.1