2016-06-11 3 views
1

Я использую GRC/grcat раскрасить мой выход терминала с помощью этой функции:Использование Баш функции + GRC как псевдоним нарушает ЗШ завершение

function docker() { 
    case $* in 
    ps*) shift 1; command docker ps "[email protected]" | grcat $HOME/.grc/conf.dockerps ;; 
    images*) shift 1; command docker images "[email protected]" | grcat $HOME/.grc/conf.dockerimages ;; 
    info*) shift 1; command docker info "[email protected]" | grcat $HOME/.grc/conf.dockerinfo ;; 
    *) command docker "[email protected]" ;; 
    esac 
} 

но это ломает мои ЗШ доработок и плагинов, что я могу настроить используя о-мой-ЗШ в моем .zshrc с этим:

plugins=(git colored-man-pages colorize vagrant brew ruby docker) 
plugins+=(gradle rvm rails bundler gem osx pod) 
plugins+=(bower cp go node npm) 
plugins+=(zsh-syntax-highlighting encode64) 
plugins+=(zsh-completions mvn) 

fpath=(~/.zsh/completion $fpath) 

autoload -Uz compinit && compinit -i 

Когда я пытаюсь использовать docker stop, например, завершение приходит с управляющими последовательностями ANSI: $'\033'\[0m$'\033'\[1m$'\033'\[33mhigh_wright$'\033'\[0m

есть ли способ избежать этого и фильтровать эти escape-последовательности только для завершений?

EDIT

Я нашел этот файл в моем .oh-мой-ЗШ реж для Docker плагина: https://github.com/robbyrussell/oh-my-zsh/blob/master/plugins/docker/_docker

Я понимаю, что мне нужно изменить эту функцию, но я не знаю, как ,

__docker_containers() { 
    declare -a cont_cmd 
    cont_cmd=($(docker ps | awk 'NR>1{print $NF":[CON("$1")"$2"("$3")]"}')) 
    if [[ 'X$cont_cmd' != 'X' ]] 
     _describe 'containers' cont_cmd 
} 

ответ

0

я был в состоянии исправить это, изменив Docker плагин от о-мой-Zsh, который установлен в .oh-my-zsh/plugins/docker/_docker. Чтобы исправить это, мне предшествовали все вспомогательные функции с command следующим образом:

__docker_containers() { 
    declare -a cont_cmd 
    cont_cmd=($(command docker ps | awk 'NR>1{print $NF":[CON("$1")"$2"("$3")]"}')) 
    if [[ 'X$cont_cmd' != 'X' ]] 
     _describe 'containers' cont_cmd 
} 
Смежные вопросы