Como faço para corrigir os símbolos da barra de status no plug-in Airline?

64

Instalei o plug-in Airline para ter uma barra de status personalizada, como mostra a figura abaixo:

Digite a descrição da imagem aqui

No entanto, minha barra de status está apresentando os símbolos <, >>e <. Como corrijo esse problema?

Digite a descrição da imagem aqui

Digite a descrição da imagem aqui

Digite a descrição da imagem aqui

Geison Santos
fonte
Use everythingfonts.com/otf-to-ttf para converter as fontes em ttf. Exemplo: Versões mais antigas do XShell não suportam otf.
Bhathiya-perera # 25/15
Para máxima compatibilidade, deixo de airline_powerline_fontslado. Eu não acho que eles sejam realmente úteis.
qwr 18/10

Respostas:

50

Na verdade, não entendo por que sua pergunta foi rejeitada. Honestamente, a princípio, eu também não entendi o que precisa ser feito para obter essa barra de ferramentas bonita. Sim, eu sei sobre o README e outras coisas, mas eu acho que deveria haver um getting startedou minimum settingsseção no arquivo de ajuda.

Enfim, aqui estão as configurações.

Instalando as fontes apropriadas

Você precisa instalar fontes no seu sistema com símbolos como ramificação, grandes triângulos etc. Eles não são símbolos padrão, portanto, você precisa instalar uma fonte corrigida. Você pode encontrar muitas fontes corrigidas aqui: https://github.com/powerline/fonts .

.vimrc configurações

De :help airline-customization, coloque esse código no seu arquivo .vimrc:

" air-line
let g:airline_powerline_fonts = 1

if !exists('g:airline_symbols')
    let g:airline_symbols = {}
endif

" unicode symbols
let g:airline_left_sep = '»'
let g:airline_left_sep = '▶'
let g:airline_right_sep = '«'
let g:airline_right_sep = '◀'
let g:airline_symbols.linenr = '␊'
let g:airline_symbols.linenr = '␤'
let g:airline_symbols.linenr = '¶'
let g:airline_symbols.branch = '⎇'
let g:airline_symbols.paste = 'ρ'
let g:airline_symbols.paste = 'Þ'
let g:airline_symbols.paste = '∥'
let g:airline_symbols.whitespace = 'Ξ'

" airline symbols
let g:airline_left_sep = ''
let g:airline_left_alt_sep = ''
let g:airline_right_sep = ''
let g:airline_right_alt_sep = ''
let g:airline_symbols.branch = ''
let g:airline_symbols.readonly = ''
let g:airline_symbols.linenr = ''

A unicode symbolsseção é desnecessária aqui se você já possui uma fonte corrigida, mas oferece um bom retorno se você tentar usar outra fonte que não possua os símbolos apropriados.

Configurações de fonte

Se você usa o Vim no terminal, deve alternar para a fonte apropriada nas preferências de perfil do seu terminal.

Se você usar a versão gui do Vim (MacVim, GVim) você precisa definir o tipo de letra .vimrc, por exemplo: set guifont=DejaVu\ Sans:s12. Você pode encontrar mais informações aqui :help guifont.

Alexander Myshov
fonte
Olá Alexander. Eu segui as instruções dele, mas ainda não consigo obter o resultado esperado: primeiro instalei as fontes no site da linha de energia. Então eu fiz as configurações no arquivo .vimrc. Meu arquivo .vimrc foi compartilhado em gist.github.com/geisonsn/641f13543b8b41fe2c12 . Estou usando o plug-in do gerenciador Vundle.
Geison Santos
Você instalou essa fonte no seu editor? Se você usar o vim no terminal, você deve instalar essa fonte no terminal, ou se você usar gui-versão do vim (MacVim, GVim) você precisa definir fonte no .vimrc-file, por exemplo: set guifont=DejaVu\ Sans:s12. Mais informações você encontra aqui :help guifont.
Alexander Myshov
2
@AlexanderMyshov, você repetiu as linhas de configuração, onde apenas o segundo em cada dois é necessário.
Vitor
11
Acabei de criar uma conta aqui no vi.stackexchange para agradecer e aprovar esta maravilhosa resposta sua. Obrigado por me aliviar mil buscas.
usar o seguinte código
11
Acho que deveria haver uma seção de configurações mínimas ou de início ... Não sei se ela será excluída ou não, mas adicionei um Guia de Dummies ao wiki da vim-airlines com base na minha resposta .
icc97
12

No README :

Integrando com fontes powerline

Para que os símbolos de linha de alta aparência apareçam, você precisará instalar uma fonte corrigida. As instruções podem ser encontradas na documentação oficial da rede elétrica . As fontes pré-corrigidas podem ser encontradas no repositório powerline-fonts .

Finalmente, você pode adicionar a variável de conveniência let g:airline_powerline_fonts = 1ao seu vimrc, que preencherá automaticamente o g:airline_symbolsdicionário com os símbolos de linha de força.

lcd047
fonte
11
Eu achei que let g:airline_powerline_fonts = 1não era suficiente. Por alguma razão, isso ainda não preenchia automaticamente o g:airline_symbols, então eu tive que preencher manualmente o dicionário de acordo com a resposta de Alexander Myshov .
Icc97
5

Demorou horas para descobrir, então aqui está mais um guia de manequins para o Fedora / Ubuntu, com uma seção especial para Windows.

A primeira é descobrir o que diabos são aqueles suportes de ângulo estranhos, mas agradáveis, que aparecem na barra de status da companhia aérea vim. O pano de fundo é que a companhia aérea é uma versão vim pura do powerline (que era python), e o powerline usa caracteres UTF-8 para inserir esses colchetes angulares. Portanto, o vim-airlines usa apenas os mesmos caracteres UTF-8.

Então, mesmo que você consiga instalar um, eles ficam mais feios do que você esperaria, porque as fontes não funcionam totalmente.

Configurando o Vim

Isso é contrário às instruções oficiais, mas no final eu estava errado, o que me fez questionar todas as instalações de fontes. Então, sugiro que você configure isso primeiro e, em seguida, se as fontes funcionarem, elas deverão aparecer magicamente.

O truque final foi forçar a vim-airlines a usar as fontes necessárias. Na documentação oficial , deve apenas adicionar o let g:airline_powerline_fonts = 1seu .vimrc. No entanto, eu fiz isso e sem sorte. Há mais informações :help airline-customizatione isso fornece algumas configurações simples que você precisa, apenas por precaução. Este foi o molho mágico final que eu precisava. Não sei por que isso não foi criado automaticamente. Copie e cole as configurações mencionadas na resposta aceita de Alexander Myshov aqui .

Cozinha afundando no Fedora e Ubuntu

Provavelmente, essa é uma solução de exagero, mas primeiro é necessário fazê-la funcionar consistentemente antes de simplificá-la.

  1. Instale a fonte geral da linha de força sudo dnf install powerline-fonts(ou sudo apt install fonts-powerline) - isso significa que você pode usar qualquer fonte que já tenha instalada. Se você não tem uma maneira fácil de instalar como o dnf / apt, há instruções para fazê-lo manualmente, por exemplo, https://www.tecmint.com/powerline-adds-powerful-statuslines-and-prompts-to-vim-and -bash / , também a documentação oficial possui instruções ( https://powerline.readthedocs.io/en/latest/installation/linux.html#fonts-installation ).

    Agora feche novamente o seu terminal e verifique se a fonte dos símbolos Powerline está disponível se você editar as preferências do terminal e definir uma fonte personalizada. Você não deseja usar a fonte diretamente, basta verificar se ela está disponível . Agora tente abrir o Vim e veja se você tem bons símbolos.

  2. Se a fonte geral do powerline não funcionou ou se você está tentando melhorar algumas coisas, pode tentar instalar fontes individuais 'corrigidas', demorou um pouco para descobrir, mas você pode literalmente ir para a pasta desejada em https: //github.com/powerline/fonts/ e faça o download, a fonte que mais gostei nos meus testes é a fonte corrigida do Source Code Pro . Em seguida, basta abrir o arquivo da fonte baixada e clicar em 'Instalar'.

    Se preferir a linha de comando, você pode instalar todas as fontes corrigidas :

     $ git clone https://github.com/powerline/fonts.git --depth=1
     $ fonts/install.sh
     $ rm -rf fonts
    

    Isso instalará todas as fontes mono corrigidas, mas, assim, você terá a chance de explorar as fontes possíveis. A lista de fontes que ele instala é uma lista impressionante das fontes de código-fonte disponíveis. Isso também significa que você não precisa se preocupar em instalar cada uma das fontes individuais incluídas.

  3. Verifique se a fonte pode ser especificada nas preferências do terminal, abra novamente a sessão do terminal se houver fontes ausentes. Portanto, observe que pode haver duas opções aqui:
    1. A fonte geral do powerline está funcionando. Nesse caso, você pode simplesmente usar a fonte base, por exemplo, DejaVu Sans Mono
    2. Se você não conseguir isso, a fonte corrigida que você baixou acima deve estar correta, por exemplo, o equivalente ao DejaVu é 'DejaVu Sans Mono for Powerline'.

Ajustando o Linux

Uma vez que eu comecei a trabalhar pela primeira vez, foi realmente decepcionante, pois os ícones não foram totalmente compatíveis. Mas, de acordo com as Perguntas frequentes , precisamos fazer alguns ajustes. Comecei com o Inconsolata, pois isso me dá uma fonte consistente no Windows e Linux. Você pode instalar a fonte geral facilmente no Ubuntu com apt install fonts-inconsolatao seguinte:

insira a descrição da imagem aqui

As setas são muito grandes e são deslocadas para cima de uma maneira feia.

Então eu tentei todas as outras fontes padrão do Ubuntu.

Ubuntu mono:

insira a descrição da imagem aqui

DejaVu Sans Mono:

insira a descrição da imagem aqui

A posição vertical está correta, mas as setas do lado direito têm um espaço após elas.

Por que você usa as fontes corrigidas

O uso das fontes padrão depende da fonte Powerline para corrigir automaticamente as fontes existentes. No entanto, você pode melhorar a aparência dos símbolos da companhia aérea usando as fontes corrigidas. Estes são os equivalentes usando as fontes corrigidas.

Eu exibo tudo isso no tamanho de fonte 16, pois gosto de usar uma fonte maior, além de mostrar pequenos problemas.

Inconsolata para Powerline:

insira a descrição da imagem aqui

Isso ainda tem problemas, mas eles são quase todos resolvidos pela variação dz.

Inconsolata-dz para Powerline dz:

insira a descrição da imagem aqui

Isso tem uma fratura de linha fina nas setas do lado direito, mas é perfeito.

Derivado do Ubuntu Mono Powerline Regular:

insira a descrição da imagem aqui

Isso ainda tem problemas irritantes.

DejaVu Sans Mono para Powerline Book:

insira a descrição da imagem aqui

Isso tem uma fratura de linha fina nas setas do lado direito, mas é perfeito. Na verdade, eu prefiro o Inconsolata-dz, pois o ícone do LN é mais legível.

Além desses regulares, tentei quase todas as fontes disponíveis e meu outro favorito era o Source Code Pro.

Source Code Pro para Powerline Medium

insira a descrição da imagem aqui

Isso tem problemas no tamanho 16, onde as setas são muito grandes, mas no tamanho 14 é quase imperceptível. Os ícones branch e LN transbordam para a parte inferior, mas de alguma forma isso não me incomoda.

Código-fonte Pro para Powerline Light

insira a descrição da imagem aqui

Isso resolve quase completamente os problemas dos tamanhos de seta da fonte média e a torna perfeita, embora ainda exista o excesso de ícone.

Source Code Pro

Quando eu estava investigando as opções de fontes, há algumas coisas que você nota, alguns patches de fonte têm o mínimo absoluto de detalhes; se você comparar isso com a lista do Source Code Pro, é bastante significativo. O Source Code Pro é uma fonte muito detalhada e completa que foi considerada para funcionar em uma grande variedade de cenários. Esse tipo de integridade é importante para casos extremos.

Utilizado como uma fonte corrigida, exibe quase perfeitamente a barra da companhia aérea vim. O benefício de tantas alternativas é o uso da fonte light, que apresenta uma exibição ainda melhor da barra vim-airlines.

O Source Code Pro também está em desenvolvimento aberto contínuo no repositório Github da Adobe .

Manipulando a delicada flor do Windows (assumindo o GVim)

A fonte Powerline não funciona com o Windows, portanto, sua única opção é usar uma fonte corrigida. Além disso, o script bash para instalar todas as fontes não funciona, então você deve fazer o mesmo, git clonemas depois entrar em cada um dos diretórios individuais e instalar as fontes desejadas.

Eu baixei todas as fontes corrigidas do Source Code Pro e as instalei. Mesmo que você os instale como fontes individuais, eles são adicionados ao Windows como uma única fonte 'Source Code Pro for Powerline' com um atributo separado para especificar o peso.

Então (assumindo o GVim ) adicione isso ao seu .vimrc:

set guifont=Source\ Code\ Pro\ for\ Powerline:h15:cANSI

Se você quiser usar a fonte 'Light', use isso.

set guifont=Source_Code_Pro_Light:h15:cANSI

Não faz muito sentido, pois não precisa incluir o 'for Powerline', mas é assim que funciona (eu descobri definindo a fonte no GVim e depois usando set guifont?para verificar o que o GVim usou). Também percebi que quando você usa o GVim para mudar a fonte, a renderização da fonte não é muito boa. Inicialmente, desconsiderei a fonte Light, porque quando mudei usando o menu GVim, ela renderizou muito mal, mas se você colocar o .vimrcitem abaixo no seu e reiniciar o GVim, ela deve ficar linda.

Também é bom que você possa definir o prompt do DOS / Powershell para a mesma fonte. Depois, com a fonte corrigida, também é possível fazer com que o Powerline funcione no Vim regular no DOS.

Se você não acredita em mim, aqui está trabalhando no Vim em Powershell:

insira a descrição da imagem aqui

insira a descrição da imagem aqui

icc97
fonte
3

Eu tive o mesmo problema depois de reinstalar o Vim: minhas fontes corrigidas antigas não eram compatíveis com os novos símbolos da companhia aérea.

Os símbolos antigos também são mencionados na ajuda ( :help airline-customization):

" old vim-powerline symbols
let g:airline_left_sep = '⮀'
let g:airline_left_alt_sep = '⮁'
let g:airline_right_sep = '⮂'
let g:airline_right_alt_sep = '⮃'
let g:airline_symbols.branch = '⭠'
let g:airline_symbols.readonly = '⭤'
let g:airline_symbols.linenr = '⭡'

Depois de colocar essas linhas no meu vimrc, tudo correu bem.

Mattia72
fonte
votado! atualmente o melhor para mim, apenas as estes símbolos são pouco maior
ryenus
11
Você precisa definir o dicionário primeiro: deixe g: airlines_symbols = {}
PerseP