peco 에서 man 의 상세 검색

3956 단어 남자ZshPeco
그걸 봤는데 같은 일을 하고 있는 사람이 보이지 않았기 때문에 스스로 써 보았습니다.
man의 명령 행 인수는 보완 할 수 있지만 항목이 비어있는 경우 검색하는 것은 조금 불편합니다. 그래서 peco 에서 man 을 복수 키워드로 인터랙티브하게 좁히도록 해 보았습니다.


~/.zshrc 에 아래와 같이 설정해 둡니다.
function peco-man-list-all() {
    local parent dir file
    local paths=("${(s/:/)$(man -aw)}")
    for parent in $paths; do
        for dir in $(/bin/ls -1 $parent); do
            local p="${parent}/${dir}"
            if [ -d "$p" ]; then
                IFS=$'\n' local lines=($(/bin/ls -1 "$p"))
                for file in $lines; do
                    echo "${p}/${file}"
                done
            fi
        done
    done
}

function peco-man() {
    local selected=$(peco-man-list-all | peco --prompt 'man >')
    if [[ "$selected" != "" ]]; then
        man "$selected"
    fi
}
zle -N peco-man
bindkey -M viins '^ m' peco-man

Ctrl+Space → M 에 할당하고 있습니다만, peco-man 커멘드로 그대로 사용할 수도 있습니다. 또한 peco-man-list-all는 모든 man 파일을 열거하므로 다른 필터 명령에서도 이것을 사용할 수 있습니다.

좋은 웹페이지 즐겨찾기