Powerline: O tema do shell padrão do Powerline não mostra mais o branch git à direita

Criado em 13 out. 2016  ·  15Comentários  ·  Fonte: powerline/powerline

Olá,

Recentemente instalei o powerline em uma nova instalação do ArchLinux no laptop e, usando o tema shell padrão, por algum motivo, os branches do git não aparecem mais à direita do terminal. Há bastante espaço na tela para que ele apareça, mas ele não aparece. Eu até tentei com "priority": None que deve sempre mostrar, mas também não funcionou.

Versão Powerline : 2.5.1
OS : Archlinux
Instalado por : Pacman, o gerenciador de pacotes da distro

Eu renomei o tema shell padrão para lef.json e fiz algumas alterações para garantir que ele está sendo selecionado e as alterações foram coletadas para que possamos ter certeza de que o powerline reconhece, analisa e usa esses arquivos.

config.json

{
    "common": {
        "term_truecolor": false
    },
    "ext": {
        "ipython": {
            "colorscheme": "default",
            "theme": "in",
            "local_themes": {
                "rewrite": "rewrite",
                "out": "out",
                "in2": "in2"
            }
        },
        "pdb": {
            "colorscheme": "default",
            "theme": "default"
        },
        "shell": {
            "colorscheme": "default",
            "theme": "lef",
            "local_themes": {
                "continuation": "continuation",
                "select": "select"
            }
        },
        "tmux": {
            "colorscheme": "default",
            "theme": "default"
        },
        "vim": {
            "colorscheme": "default",
            "theme": "default",
            "local_themes": {
                "__tabline__": "tabline",

                "cmdwin": "cmdwin",
                "help": "help",
                "quickfix": "quickfix",

                "powerline.matchers.vim.plugin.nerdtree.nerdtree": "plugin_nerdtree",
                "powerline.matchers.vim.plugin.commandt.commandt": "plugin_commandt",
                "powerline.matchers.vim.plugin.gundo.gundo": "plugin_gundo",
                "powerline.matchers.vim.plugin.gundo.gundo_preview": "plugin_gundo-preview"
            }
        },
        "wm": {
            "colorscheme": "default",
            "theme": "default"
        }
    }
}

Tema lef.json (basicamente copiar e colar default.json para shell)

{
    "segments": {
        "left": [
            {
                "function": "powerline.segments.shell.mode"
            },
            {
                "function": "powerline.segments.common.net.hostname",
                "priority": 10
            },
            {
                "function": "powerline.segments.common.env.user",
                "priority": 30
            },
            {
                "function": "powerline.segments.common.env.virtualenv",
                "priority": 50
            },
            {
                "function": "powerline.segments.shell.cwd",
                "priority": 10
            },
            {
                "function": "powerline.segments.shell.jobnum",
                "priority": 20
            }
        ],
        "right": [
            {
                "function": "powerline.segments.shell.last_pipe_status",
                "priority": 10
            },
            {
                "function": "powerline.segments.common.vcs.stash",
                "priority": 50
            },
            {
                "function": "powerline.segments.common.vcs.branch",
                "priority": 40
            }
        ]
    }
}

Qualquer ideia sobre como resolver este problema seria muito apreciada.

VCS support cshell bug

Comentários muito úteis

@LefterisJP ahhh ... acabei de encontrar alguns outros documentos que dizem que o bash não suporta os prompts do lado direito. Isso explica porque o tema shell padrão não funcionou. Vou usar o tema default_leftonly.

Você está usando o bash ou outro shell. Se for o primeiro, provavelmente essa é a razão pela qual não está funcionando para você também.

Todos 15 comentários

O que git status produz? Você pode tentar executar powerline.lib.vcs.guess manualmente em uma sessão Python interativa?

@ s-ol git status e git branch funcionam como esperado. Estou em um repositório git.

Mas powerline.lib.vcs.guess não funciona em uma sessão Python interativa. Ou, pelo menos, suponho que não funcione porque retorna um objeto vazio. Eu não sei muito sobre componentes internos de powerline, então deixe-me apenas colar aqui para você:

Python2:

Python 2.7.12 (default, Jun 28 2016, 08:31:05)
[GCC 6.1.1 20160602] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import powerline.lib.vcs as vcs
>>> vcs.guess(".", False)
<powerline.lib.vcs.git.Repository object at 0x7f495258aeb0>
>>> a = vcs.guess(".", False)
>>> a.__dict__
{}

Python3:

Python 3.5.2 (default, Jun 28 2016, 08:46:01)
[GCC 6.1.1 20160602] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import powerline.lib.vcs as vcs
>>> vcs.guess(".", False)
<powerline.lib.vcs.git.Repository object at 0x7f93f665ce58>
>>> a = vcs.guess(".", False)
>>> a.__dict__
{}

@LefterisJP Por que você acha que está vazio? __dict__ não é o único lugar onde os atributos do objeto podem estar contidos. Na verdade, _deve haver_ nenhum atributo ali, a classe em questão está usando __slots__ .

Esta função não pode retornar um objeto “vazio”, ela retorna um Repositório utilizável ou Nenhum.

Querendo saber se você recarregou o daemon após fazer alterações na configuração (se estiver usando zsh + zpython, reinicie o zsh ou use powerline-reload-config ).

@ ZyX-I Oh, entendo. Não sabia sobre __slots__ do python. Obrigado por isso!

Então:

>>> a.__slots__
('directory', 'create_watcher')

Eu não tenho um daemon em execução. Eu apenas tenho:

source /usr/lib/python2.7/site-packages/powerline/bindings/zsh/powerline.zsh

no meu .zshrc .

Assim funcionou bem por muito tempo no meu outro computador. Acho que nunca usei um daemon.

@LefterisJP Você já resolveu isso? Curiosamente, se você escolher o tema default_leftonly.json para a configuração do shell, os branches do git aparecem no prompt à esquerda. Parece que algo está impedindo que o segmento certo apareça na casca.

@LefterisJP ahhh ... acabei de encontrar alguns outros documentos que dizem que o bash não suporta os prompts do lado direito. Isso explica porque o tema shell padrão não funcionou. Vou usar o tema default_leftonly.

Você está usando o bash ou outro shell. Se for o primeiro, provavelmente essa é a razão pela qual não está funcionando para você também.

Estou usando zsh e não bash. Não tive tempo para examinar esse problema, mas ele ainda está lá. Como você também notou ao usar default_leftonly.json , os ramos aparecem à esquerda, mas com o padrão normal eles não aparecem.

mesmo problema no mac os sierra, +1

Acabei de instalar o powerline no meu Arch e posso confirmar que o tema padrão não mostra ramos do git. Mudar para o tema default_leftonly corrige o problema.

O mesmo problema com zsh.
Resolvido eliminando todos os processos powerline-daemon suspensos.

Mudar para default_leftonly foi necessário para mim e, uma vez que, de outra forma, não tinha necessidade ou interesse em personalização e os documentos são principalmente voltados para isso, acabei criando apenas um arquivo de configuração para alterar o tema: https://github.com/powerline/powerline/issues/186#issuecomment -247810572 e powerline-daemon -q --replace após aplicar a configuração (observe o -q aqui para gerá-lo em segundo plano!).

Mudei meu tema do vim para default_leftonly e ainda nada ...

Eu também me esforcei muito para descobrir a configuração certa. Depois de acertar, escrevi este artigo guiando a pessoa através da configuração do powerline. Espero que ajude.

Esta página foi útil?
0 / 5 - 0 avaliações