summaryrefslogtreecommitdiffstats
path: root/fzf-completion.bash
diff options
context:
space:
mode:
authorJunegunn Choi <junegunn.c@gmail.com>2013-11-29 18:08:22 +0900
committerJunegunn Choi <junegunn.c@gmail.com>2013-11-29 18:08:22 +0900
commitfaff17b2a94697fe5c4568cdee5458cf780b87fa (patch)
tree09b81e4c58e2ff68ba896fa7bdaab1278c2df974 /fzf-completion.bash
parent9a3cddc92e6ff711b81fe71e8cd99e1166669423 (diff)
Hostname completion for ssh and telnet commands
Diffstat (limited to 'fzf-completion.bash')
-rw-r--r--fzf-completion.bash21
1 files changed, 21 insertions, 0 deletions
diff --git a/fzf-completion.bash b/fzf-completion.bash
index 383122df..2ffe7338 100644
--- a/fzf-completion.bash
+++ b/fzf-completion.bash
@@ -95,6 +95,22 @@ _fzf_kill_completion() {
fi
}
+_fzf_host_completion() {
+ if [ "${COMP_WORDS[COMP_CWORD-1]}" = '-l' ]; then
+ return 1
+ fi
+
+ local selected
+ tput sc
+ selected=$(grep -v '^\s*\(#\|$\)' /etc/hosts | awk '{print $2}' | sort -u | fzf $FZF_COMPLETION_OPTS)
+ tput rc
+
+ if [ -n "$selected" ]; then
+ COMPREPLY=( "$selected" )
+ return 0
+ fi
+}
+
complete -F _fzf_opts_completion fzf
# Directory
@@ -123,3 +139,8 @@ done
# Kill completion
complete -F _fzf_kill_completion -o nospace -o default -o bashdefault kill
+# Host completion
+for cmd in "ssh telnet"; do
+ complete -F _fzf_host_completion -o default -o bashdefault $cmd
+done
+