]> src.twobees.de Git - dotfiles.git/blob - stow/oh-my-zsh/.oh-my-zsh/plugins/man/man.plugin.zsh
...
[dotfiles.git] / stow / oh-my-zsh / .oh-my-zsh / plugins / man / man.plugin.zsh
1 # ------------------------------------------------------------------------------
2 # Author
3 # ------
4 #
5 # * Jerry Ling<jerryling315@gmail.com>
6 #
7 # ------------------------------------------------------------------------------
8 # Usage
9 # -----
10 #
11 # man will be inserted before the command
12 #
13 # ------------------------------------------------------------------------------
14
15 man-command-line() {
16     # if there is no command typed, use the last command
17     [[ -z "$BUFFER" ]] && zle up-history
18
19     # if typed command begins with man, do nothing
20     [[ "$BUFFER" = man\ * ]] && return
21
22     # get command and possible subcommand
23     # http://zsh.sourceforge.net/Doc/Release/Expansion.html#Parameter-Expansion-Flags
24     local -a args
25     args=(${${(Az)BUFFER}[1]} ${${(Az)BUFFER}[2]})
26
27     # check if man page exists for command and first argument
28     if man "${args[1]}-${args[2]}" >/dev/null 2>&1; then
29         BUFFER="man $args"
30     else
31         BUFFER="man ${args[1]}"
32     fi
33 }
34
35 zle -N man-command-line
36 # Defined shortcut keys: [Esc]man
37 bindkey "\e"man man-command-line