Comment corriger les symboles de la barre d'état dans le plugin Airline?

64

J'ai installé le plugin Airline afin d'avoir une barre d'état personnalisée, comme le montre la figure ci-dessous:

Entrez la description de l'image ici

Cependant, ma barre d'état présente les symboles <, >>et <. Comment puis-je résoudre ce problème?

Entrez la description de l'image ici

Entrez la description de l'image ici

Entrez la description de l'image ici

Geison Santos
la source
Utilisez everythingfonts.com/otf-to-ttf pour convertir les polices en ttf. Exemple: les anciennes versions de XShell ne prennent pas en charge otf.
Bhathiya-perera
Pour une compatibilité maximale, je laisse airline_powerline_fontstomber. Je ne pense pas qu'ils sont vraiment utiles.
Qwr

Réponses:

50

En fait, je ne comprends pas pourquoi votre question est rejetée. Honnêtement au début, moi aussi, je ne comprenais pas ce qui devait être fait pour obtenir cette jolie barre d’outils. Oui, je connais le fichier README et d'autres éléments, mais je pense qu'il devrait y avoir une section getting startedou minimum settingsdans le fichier d'aide.

Quoi qu'il en soit, voici les paramètres.

Installer les polices appropriées

Vous devez installer des polices dans votre système avec des symboles tels que branchement, gros triangles, etc. Ces symboles ne sont pas des symboles standard. Vous devez donc installer une police corrigée. Vous pouvez trouver beaucoup de polices corrigées ici: https://github.com/powerline/fonts .

.vimrc paramètres

Depuis :help airline-customization, placez ce code dans votre fichier .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 = ''

La unicode symbolssection est inutile ici si vous avez déjà une police patchée, mais elle vous offre une solution de rechange intéressante si vous essayez d’utiliser une autre police qui ne contient pas les symboles appropriés.

Paramètres de police

Si vous utilisez Vim in terminal, vous devez passer à la police appropriée dans les préférences de profil de votre terminal.

Si vous utilisez la version de IUG vim (MacVim, GVim) , vous devez définir la police dans .vimrc, par exemple: set guifont=DejaVu\ Sans:s12. Vous pouvez trouver plus d'informations ici :help guifont.

Alexander Myshov
la source
Bonjour Alexandre. J'ai suivi ses instructions, mais je ne peux toujours pas obtenir le résultat escompté: d'abord installé les polices à partir du site de la ligne d'alimentation. Ensuite, j'ai effectué les réglages dans le fichier .vimrc. Mon fichier .vimrc a été partagé dans gist.github.com/geisonsn/641f13543b8b41fe2c12 . J'utilise le plugin Vundle Manager.
Geison Santos
Avez-vous installé cette police dans votre éditeur? Si vous utilisez vim dans le terminal , vous devez installer cette police dans le terminal, ou si vous utilisez la version de vim IUG (MacVim, GVim) vous devez choisir la police dans le .vimrc-file, par exemple: set guifont=DejaVu\ Sans:s12. Plus d'informations vous pouvez trouver ici :help guifont.
Alexander Myshov
2
@AlexanderMyshov vous avez répété des lignes de configuration, où seulement la seconde sur deux est requise.
Vitor
1
Vient de créer un compte ici sur vi.stackexchange pour vous remercier et faire remonter votre merveilleuse réponse. Merci de me soulager des milliers de recherches.
0decimal0
1
Je pense qu'il devrait y avoir une section de démarrage ou de configuration minimale ... Je ne sais pas s'il sera supprimé ou non, mais j'ai ajouté un guide factice au wiki de vim-airline basé sur ma réponse .
icc97
12

Du README :

Intégration avec les polices powerline

Pour que les symboles Powerline attrayants apparaissent, vous devez installer une police patchée. Les instructions peuvent être trouvées dans la documentation officielle de powerline . Les polices pré-affranchies se trouvent dans le référentiel powerline-fonts .

Enfin, vous pouvez ajouter la variable de confort let g:airline_powerline_fonts = 1à votre vimrc qui remplira automatiquement le g:airline_symbolsdictionnaire avec les symboles powerline.

lcd047
la source
1
J'ai trouvé que ça let g:airline_powerline_fonts = 1ne suffisait pas. Pour une raison quelconque, cela n'a toujours pas été automatiquement renseigné g:airline_symbols, aussi j'ai dû remplir manuellement le dictionnaire conformément à la réponse d'Alexander Myshov .
icc97
5

Cela a pris des heures à comprendre. Voici donc un guide factice pour Fedora / Ubuntu, avec une section spéciale pour Windows.

La première consiste à déterminer ce que sont ces étranges mais sympathiques crochets apparaissant dans la barre d'état de vim-airline. L’arrière-plan est que cette compagnie aérienne est une version purement vim de powerline (qui était en python) et que powerline utilise des caractères UTF-8 pour insérer ces chevrons. Vim-airline utilise donc les mêmes caractères UTF-8.

Ensuite, même si vous parvenez à en installer une, leur apparence est plus laide que vous ne le souhaiteriez car les polices ne fonctionnent pas complètement.

Configurer Vim

C'est l'inverse des instructions officielles, mais je me suis trompé à la fin, ce qui m'a amené à remettre en question toutes les installations de polices. Donc, je vous suggère de configurer ceci en premier, puis si vous faites fonctionner les polices, il devrait apparaître comme par magie.

La dernière astuce consistait à forcer vim-airline à utiliser les polices dont elle a besoin. Dans la documentation officielle, il devrait simplement être ajouté let g:airline_powerline_fonts = 1dans votre .vimrc. Cependant je l'ai fait et pas de chance. Vous y trouverez plus d'informations :help airline-customizationet quelques paramètres de configuration simples dont vous avez besoin, au cas où. C'était la sauce magique finale dont j'avais besoin. Je ne sais pas pourquoi cela n'a pas été créé automatiquement. Copiez et collez les paramètres mentionnés dans la réponse acceptée par Alexander Myshov ici .

Cuisine coulant sur Fedora et Ubuntu

C'est probablement une solution excessive, mais vous devez d'abord la faire fonctionner de manière cohérente avant de pouvoir la simplifier.

  1. Installez la police générale powerline sudo dnf install powerline-fonts(ou sudo apt install fonts-powerline). Cela signifie que vous pouvez utiliser n’importe quelle police déjà installée. Si vous ne disposez pas d’un moyen simple d’installation tel que dnf / apt, des instructions vous permettant de le faire manuellement, par exemple https://www.tecmint.com/powerline-adds-powerful-statuslines-and-prompts-to-vim-and -bash / , la documentation officielle contient également des instructions ( https://powerline.readthedocs.io/en/latest/installation/linux.html#fonts-installation ).

    Fermez à présent votre terminal, rouvrez-le et vérifiez que la police des symboles Powerline est disponible si vous modifiez les préférences du terminal et définissez une police personnalisée. Vous ne voulez pas utiliser la police directement, vérifiez simplement qu'elle est disponible . Essayez maintenant d'ouvrir Vim et voyez si vous avez de beaux symboles.

  2. Si la police CPL générale ne fonctionnait pas ou si vous tentiez d'améliorer certaines choses, vous pouvez essayer d'installer des polices "corrigées" individuelles. Cela prend un certain temps à comprendre, mais vous pouvez littéralement accéder au dossier de votre choix dans https: //github.com/powerline/fonts/ et téléchargez-le, la police que j'ai le plus aimé de mes tests est la police patchée Code Source Pro . Ensuite, ouvrez simplement le fichier de police téléchargé et cliquez sur 'Installer'.

    Si vous préférez la ligne de commande, vous pouvez installer toutes les polices corrigées :

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

    Cela installera toutes les polices mono corrigées, mais vous aurez alors la possibilité d’explorer les polices possibles. La liste de polices qu’elle installe est une liste assez impressionnante des polices de code source disponibles. Cela signifie également que vous n'avez pas à vous préoccuper de l'installation de chacune des polices incluses.

  3. Vérifiez que la police peut être spécifiée dans les préférences du terminal, rouvrez votre session de terminal s'il vous manque des polices, alors notez qu'il peut y avoir deux options ici:
    1. La police générale powerline fonctionne, auquel cas vous pouvez simplement utiliser la police de base, par exemple DejaVu Sans Mono
    2. Si cela ne fonctionne pas, la police corrigée que vous avez téléchargée ci-dessus devrait être correcte, par exemple l'équivalent pour DejaVu est 'DejaVu Sans Mono for Powerline'.

Mise au point de Linux

Une fois que je l'ai fait fonctionner pour la première fois, c'était vraiment décevant car les icônes ne correspondaient pas parfaitement. Mais selon la FAQ, nous devons faire quelques ajustements. J'ai commencé avec Inconsolata car cela me donne une police cohérente sous Windows et Linux. Vous pouvez installer la police générale facilement sur Ubuntu avec apt install fonts-inconsolataC'est ce que j'ai obtenu:

entrez la description de l'image ici

Les flèches sont trop grandes et sont déplacées d'une manière laide.

Ensuite, j'ai essayé toutes les autres polices Ubuntu par défaut.

Ubuntu mono:

entrez la description de l'image ici

DejaVu Sans Mono:

entrez la description de l'image ici

La position verticale est correcte, mais les flèches de droite ont un espace après elles.

Pourquoi utilisez-vous les polices corrigées?

L'utilisation des polices par défaut repose sur la police Powerline pour corriger automatiquement les polices existantes. Cependant, vous pouvez améliorer l'apparence des symboles de la compagnie aérienne en utilisant les polices patchées. Ce sont les équivalents utilisant les polices corrigées.

Je les affiche tous à la taille de police 16, car j'aime utiliser une police plus grande. De plus, des problèmes mineurs apparaissent.

Inconsolata pour Powerline:

entrez la description de l'image ici

Cela a toujours des problèmes, mais ils sont presque tous résolus par la variante dz.

Inconsolata-dz pour Powerline dz:

entrez la description de l'image ici

Cela a une fracture des cheveux sur les flèches du côté droit, mais est par ailleurs parfait.

Ubuntu Mono dérivé Powerline Regular:

entrez la description de l'image ici

Cela a toujours des problèmes ennuyeux.

DejaVu Sans Mono pour Powerline Book:

entrez la description de l'image ici

Cela a une fracture des cheveux sur les flèches du côté droit, mais est par ailleurs parfait. En fait, je le préfère à l'Inconsolata-dz car l'icône LN est plus lisible.

En plus de ces habitués, j'ai essayé presque toutes les polices disponibles et mon autre favori était Source Code Pro.

Code source Pro pour Powerline Medium

entrez la description de l'image ici

Cela pose des problèmes à la taille 16, où les flèches sont trop grosses, mais à la taille 14, cela est presque imperceptible. Les icônes de branche et LN débordent vers le bas, mais cela ne me gêne pas.

Source Code Pro pour Powerline Light

entrez la description de l'image ici

Cela résout presque complètement les problèmes de taille de flèche de la police de taille moyenne et le rend parfait, bien qu'il y ait toujours un débordement d'icônes.

Code source Pro

Lorsque j'examinais les options pour les polices, vous remarquerez quelques points, certains correctifs de polices ont le minimum absolu de détails, si vous comparez ceci à la liste Code Source Pro, c'est assez important. Source Code Pro est une police très détaillée et complète qui a été considérée pour fonctionner dans une large gamme de scénarios. Ce type de complétude est important pour les cas extrêmes.

Utilisée comme police patchée, elle affiche presque parfaitement la barre vim-airline. L'avantage de tant d'alternatives réside dans l'utilisation de la police de caractères light, qui offre un affichage encore meilleur de la barre vim-airline.

Source Code Pro est également en cours de développement ouvert sur le référentiel Github d’Adobe .

Manipulation de la délicate fleur de Windows (en supposant que GVim)

La police CPL ne fonctionnant pas avec Windows, votre seul choix est d’utiliser une police corrigée. De plus, le script bash pour installer toutes les polices ne fonctionne pas. Vous devez donc en faire de même, git clonepuis allez dans chacun des répertoires individuels et installez les polices de votre choix.

J'ai téléchargé toutes les polices patchées de Source Code Pro et les ai installées. Même si vous les installez en tant que polices individuelles, elles sont ajoutées à Windows sous la forme d'une police unique «Source Code Pro for Powerline» avec un attribut distinct pour spécifier le poids.

Puis (en supposant que GVim ) ajoute ceci à votre .vimrc:

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

Si vous voulez utiliser la police 'Light', utilisez ceci.

set guifont=Source_Code_Pro_Light:h15:cANSI

Cela n'a pas beaucoup de sens car il n'a pas besoin d'inclure le 'for Powerline', mais c'est comme ça que ça fonctionne (je l'ai compris en définissant la police dans GVim et en utilisant ensuite set guifont?pour vérifier ce que GVim a utilisé). De plus, j'ai remarqué que lorsque vous utilisez GVim pour changer de police, le rendu de la police n'est pas très bon. Au départ, j'ai escompté la police Light parce que, lorsque j'ai changé de menu à l'aide du menu GVim, le rendu est mauvais, mais si vous mettez le .vimrctexte ci-dessous dans votre et relancez GVim, il devrait être ravissant.

Un autre avantage est que vous pouvez définir votre invite DOS / Powershell sur la même police. Ensuite, avec la police corrigée, il est également possible de faire fonctionner Powerline dans Vim sous DOS.

Si vous ne me croyez pas, ça marche ici dans Vim à Powershell:

entrez la description de l'image ici

entrez la description de l'image ici

icc97
la source
3

J'ai eu le même problème après la réinstallation de Vim: mes anciennes polices patchées n'étaient pas compatibles avec les nouveaux symboles de la compagnie aérienne.

Les anciens symboles sont également mentionnés dans l'aide ( :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 = '⭡'

Après avoir mis ces lignes dans mon vimrc, tout s'est bien passé.

Mattia72
la source
upvoted! actuellement le meilleur pour moi, juste ces symboles sont un peu plus haut
Ryenus
1
Vous devez d’abord définir le dictionnaire: soit g: airline_symbols = {}
PerseP