diff options
| author | Junegunn Choi <junegunn.c@gmail.com> | 2013-11-29 18:08:22 +0900 |
|---|---|---|
| committer | Junegunn Choi <junegunn.c@gmail.com> | 2013-11-29 18:08:22 +0900 |
| commit | faff17b2a94697fe5c4568cdee5458cf780b87fa (patch) | |
| tree | 09b81e4c58e2ff68ba896fa7bdaab1278c2df974 | |
| parent | 9a3cddc92e6ff711b81fe71e8cd99e1166669423 (diff) | |
| download | fzf-faff17b2a94697fe5c4568cdee5458cf780b87fa.tar.gz | |
Hostname completion for ssh and telnet commands
| -rw-r--r-- | README.md | 16 | ||||
| -rw-r--r-- | fzf-completion.bash | 21 |
2 files changed, 36 insertions, 1 deletions
@@ -270,6 +270,8 @@ over time* ### bash +#### Files and directories + Fuzzy completion for files and directories can be triggered if the word before the cursor ends with the trigger sequence which is by default `**`. @@ -297,7 +299,9 @@ cd **<TAB> cd ~/github/fzf**<TAB> ``` -Fuzzy completion for PIDs are provided for kill command. In this case +#### Process IDs + +Fuzzy completion for PIDs is provided for kill command. In this case there is no trigger sequence, just press tab key after kill command. ```sh @@ -305,6 +309,16 @@ there is no trigger sequence, just press tab key after kill command. kill -9 <TAB> ``` +#### Host names + +For ssh and telnet command, fuzzy completion for host names is provided. The +names are extracted from /etc/hosts file. + +```sh +ssh <TAB> +telnet <TAB> +``` + #### Settings ```sh 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 + |
