Wie behebe ich die Statusleistensymbole im Airline-Plugin?

64

Ich habe das Airline- Plugin installiert , um eine benutzerdefinierte Statusleiste zu erhalten, wie in der folgenden Abbildung dargestellt:

Geben Sie hier eine Bildbeschreibung ein

Allerdings stellt meine Statusleiste die Symbole <, >>und <. Wie behebe ich dieses Problem?

Geben Sie hier eine Bildbeschreibung ein

Geben Sie hier eine Bildbeschreibung ein

Geben Sie hier eine Bildbeschreibung ein

Geison Santos
quelle
Verwenden Sie everythingfonts.com/otf-to-ttf , um die Schriftarten in ttf zu konvertieren. Beispiel: Ältere XShell-Versionen unterstützen otf nicht.
Bhathiya-Perera
Für maximale Kompatibilität höre ich airline_powerline_fontsauf. Ich denke nicht, dass sie wirklich so nützlich sind.
Qwr

Antworten:

50

Eigentlich verstehe ich nicht, warum Ihre Frage abgelehnt wird. Ehrlich gesagt verstand auch ich zunächst nicht, was zu tun ist, um diese gut aussehende Symbolleiste zu erhalten. Ja, ich kenne die README- Datei und andere Dinge, aber ich denke, in der Hilfedatei sollte sich ein getting startedoder ein minimum settingsAbschnitt befinden.

Sowieso hier sind die Einstellungen.

Installieren Sie die entsprechenden Schriftarten

Sie müssen Zeichensätze mit Symbolen wie Verzweigungen, großen Dreiecken usw. in Ihr System installieren. Sie sind keine Standardsymbole, daher müssen Sie einen gepatchten Zeichensatz installieren. Viele gepatchte Schriftarten finden Sie hier: https://github.com/powerline/fonts .

.vimrc die Einstellungen

Von :help airline-customization, diesen Code in Ihre .vimrc Datei:

" 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 = ''

Der unicode symbolsAbschnitt ist hier nicht erforderlich, wenn Sie bereits über eine gepatchte Schriftart verfügen. Wenn Sie jedoch versuchen, eine andere Schriftart zu verwenden, die nicht die entsprechenden Symbole enthält, können Sie auf diesen Abschnitt zurückgreifen.

Schrifteinstellungen

Wenn Sie Vim im Terminal verwenden, sollten Sie in den Profileinstellungen Ihres Terminals zur entsprechenden Schriftart wechseln.

Wenn Sie GUI - Version von Vim (MacVim, GVim) verwenden müssen Sie die Schriftart in setzen .vimrc, zum Beispiel: set guifont=DejaVu\ Sans:s12. Weitere Informationen finden Sie hier :help guifont.

Alexander Myshov
quelle
Hallo alexander Ich habe seine Anweisungen befolgt, kann aber immer noch nicht das erwartete Ergebnis erzielen: Zuerst habe ich die Schriftarten von der Seite der Stromleitung installiert. Dann habe ich die Einstellungen in der .vimrc-Datei vorgenommen. Meine .vimrc-Datei wurde in gist.github.com/geisonsn/641f13543b8b41fe2c12 freigegeben . Ich benutze das Vundle Manager Plugin.
Geison Santos
Haben Sie diese Schriftart in Ihrem Editor installiert? Wenn Sie vim in Terminal verwenden , sollten Sie die Schriftart im Terminal installieren, oder wenn Sie gui-Version von vim verwenden (MacVim, GVim) benötigen Sie Schriftart im einzustellen .vimrc-Dateien, zum Beispiel: set guifont=DejaVu\ Sans:s12. Weitere Informationen finden Sie hier :help guifont.
Alexander Myshov
2
@AlexanderMyshov Sie haben Konfigurationszeilen wiederholt, wobei nur die zweite von zwei erforderlich ist.
Vitor
1
Wir haben gerade ein Konto bei vi.stackexchange erstellt, um Ihnen zu danken und Ihre wunderbare Antwort zu unterstützen. Vielen Dank, dass Sie mich bei tausend Suchanfragen entlastet haben.
0decimal0
1
Ich denke, es sollte einen Einstiegs- oder Mindesteinstellungsbereich geben ... Ich weiß nicht, ob er gelöscht wird oder nicht, aber ich habe dem Wiki von vim-airline basierend auf meiner Antwort einen Dummies-Leitfaden hinzugefügt .
ICC97
12

Aus der README :

Integration in Powerline-Schriftarten

Damit die gut aussehenden Powerline-Symbole angezeigt werden, müssen Sie eine gepatchte Schriftart installieren. Anweisungen finden Sie in der offiziellen Powerline- Dokumentation . Vorinstallierte Schriften finden Sie im Powerline-Fonts- Repository.

Schließlich können Sie let g:airline_powerline_fonts = 1Ihrem vimrc die Convenience-Variable hinzufügen, die das g:airline_symbolsWörterbuch automatisch mit den Powerline-Symbolen auffüllt .

lcd047
quelle
1
Ich fand das let g:airline_powerline_fonts = 1nicht genug. Aus irgendeinem Grund füllte dies immer noch nicht automatisch g:airline_symbolsdas Wörterbuch aus, so dass ich das Wörterbuch gemäß der Antwort von Alexander Myshov manuell ausfüllen musste .
ICC97
5

Es hat Stunden gedauert, um dies herauszufinden. Hier finden Sie eine Dummies-Anleitung für Fedora / Ubuntu mit einem speziellen Abschnitt für Windows.

Das erste ist herauszufinden, was zum Teufel diese seltsamen, aber hübschen spitzen Klammern sind, die in der Statusleiste von vim-airline angezeigt werden. Der Hintergrund ist, dass die Fluggesellschaft eine reine VIM-Version von Powerline (das war Python) ist und Powerline UTF-8-Zeichen verwendet, um diese spitzen Klammern einzufügen. Vim-airline verwendet also nur die gleichen UTF-8-Zeichen.

Selbst wenn Sie es schaffen, eine zu installieren, sehen sie hässlicher aus, als Sie es sich erhoffen, da die Schriftarten nicht vollständig funktionieren.

Vim konfigurieren

Dies steht im Gegensatz zu den offiziellen Anweisungen, aber ich hatte am Ende dieses Fehlers, wodurch ich alle Schriftinstallationen in Frage stellte. Ich schlage vor, dass Sie dies zuerst konfigurieren und dann, wenn Sie die Schriftarten zum Laufen bringen, magisch erscheinen.

Der letzte Trick bestand darin, vim-airline zu zwingen, die benötigten Schriftarten zu verwenden. In der offiziellen Dokumentation sollte es nur let g:airline_powerline_fonts = 1in Ihrem hinzufügen .vimrc. Allerdings habe ich das getan und kein Glück. Es gibt mehr Informationen in :help airline-customizationund das gibt Ihnen einige einfache Konfigurationseinstellungen, die Sie brauchen, nur für den Fall. Dies war die letzte magische Sauce, die ich brauchte. Ich weiß nicht, warum dies nicht automatisch erstellt wurde. Kopieren Sie die Einstellungen, die in der von Alexander Myshov akzeptierten Antwort erwähnt wurden, und fügen Sie sie hier ein .

Küche versenkt es auf Fedora und Ubuntu

Dies ist wahrscheinlich eine Overkill-Lösung, aber zuerst müssen Sie dafür sorgen, dass sie konsistent funktioniert, bevor Sie sie vereinfachen können.

  1. Installieren Sie die allgemeine Powerline-Schriftart sudo dnf install powerline-fonts(oder sudo apt install fonts-powerline). Dies bedeutet, dass Sie jede bereits installierte Schriftart verwenden können. Wenn Sie keine einfache Möglichkeit haben, dnf / apt zu installieren, gibt es Anweisungen, wie Sie dies manuell tun können, z. B. https://www.tecmint.com/powerline-adds-powerful-statuslines-and-prompts-to-vim-and -bash / , auch die offizielle Dokumentation enthält Anweisungen ( https://powerline.readthedocs.io/en/latest/installation/linux.html#fonts-installation ).

    Schließen Sie nun Ihr Terminal und öffnen Sie es erneut. Überprüfen Sie, ob die Powerline-Symbolschrift verfügbar ist, wenn Sie die Terminaleinstellungen bearbeiten und eine benutzerdefinierte Schrift festlegen. Sie möchten die Schriftart nicht direkt verwenden, überprüfen Sie einfach, ob sie verfügbar ist . Versuchen Sie nun, Vim zu öffnen und prüfen Sie, ob Sie schöne Symbole haben.

  2. Wenn die allgemeine Powerline-Schriftart nicht funktioniert hat oder wenn Sie versuchen, Dinge zu verbessern, können Sie versuchen, einzelne 'gepatchte' Schriftarten zu installieren. Dies hat eine Weile gedauert, aber Sie können buchstäblich zu dem gewünschten Ordner in https gehen: //github.com/powerline/fonts/ und laden Sie es herunter. Die Schriftart, die mir bei meinen Tests am besten gefallen hat, ist die mit Source Code Pro gepatchte Schriftart . Öffnen Sie dann einfach die heruntergeladene Schriftartdatei und klicken Sie auf "Installieren".

    Wenn Sie die Befehlszeile bevorzugen, können Sie alle gepatchten Schriftarten installieren :

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

    Dadurch werden alle gepatchten Mono-Schriftarten installiert , aber dann haben Sie die Möglichkeit, die möglichen Schriftarten zu untersuchen. Die Schriftenliste, die es installiert, ist eine ziemlich beeindruckende Liste der verfügbaren Quellcode-Schriften. Dies bedeutet auch, dass Sie sich nicht mit der Installation der einzelnen enthaltenen Schriftarten herumärgern müssen.

  3. Vergewissern Sie sich, dass die Schriftart in den Terminaleinstellungen festgelegt werden kann. Öffnen Sie die Terminalsitzung erneut, wenn Schriftarten fehlen. Beachten Sie daher, dass es hier zwei Optionen geben kann:
    1. Die allgemeine Powerline-Schriftart funktioniert. In diesem Fall können Sie einfach die Basis-Schriftart verwenden, z. B. DejaVu Sans Mono
    2. Wenn Sie das nicht zum Laufen bringen können, sollte die oben heruntergeladene gepatchte Schriftart korrekt sein, z. B. ist die Entsprechung für DejaVu 'DejaVu Sans Mono for Powerline'.

Linux optimieren

Als ich es zum ersten Mal zum Laufen brachte, war es wirklich enttäuschend, da die Symbole nicht vollständig übereinstimmten. Aber gemäß den FAQ müssen wir einige Anpassungen vornehmen. Ich habe mit Inconsolata angefangen, da dies mir eine einheitliche Schriftart für Windows und Linux gibt. Du kannst die allgemeine Schriftart einfach unter Ubuntu installieren mit apt install fonts-inconsolataDies ist was ich habe:

Bildbeschreibung hier eingeben

Die Pfeile sind zu groß und hässlich nach oben verschoben.

Dann habe ich alle anderen Ubuntu-Standardschriften ausprobiert.

Ubuntu Mono:

Bildbeschreibung hier eingeben

DejaVu Sans Mono:

Bildbeschreibung hier eingeben

Damit ist die vertikale Position korrekt, aber die Pfeile auf der rechten Seite haben ein Leerzeichen nach sich.

Warum verwenden Sie die gepatchten Schriftarten?

Die Verwendung der Standardschriftarten basiert auf der Powerline-Schriftart, um vorhandene Schriftarten automatisch zu patchen. Sie können jedoch das Aussehen der Airline-Symbole verbessern, indem Sie die gepatchten Schriftarten verwenden. Dies sind die Entsprechungen, die die gepatchten Schriftarten verwenden.

Ich zeige diese alle in Schriftgröße 16 an, da ich gerne eine größere Schrift verwende. Außerdem werden kleinere Probleme angezeigt.

Inconsolata für Powerline:

Bildbeschreibung hier eingeben

Dies hat immer noch Probleme, aber sie werden fast alle durch die dz-Variante gelöst.

Inconsolata-dz für Powerline dz:

Bildbeschreibung hier eingeben

Dies hat einen Haarriss auf der rechten Seite der Pfeile, ist aber ansonsten perfekt.

Ubuntu Mono Derivat Powerline Regular:

Bildbeschreibung hier eingeben

Dies hat immer noch ärgerliche Probleme.

DejaVu Sans Mono für Powerline Book:

Bildbeschreibung hier eingeben

Dies hat einen Haarriss auf der rechten Seite der Pfeile, ist aber ansonsten perfekt. Ich bevorzuge es eigentlich der Inconsolata-dz, da das LN-Symbol besser lesbar ist.

Zusätzlich zu diesen Stammgästen habe ich fast alle verfügbaren Schriftarten ausprobiert und mein anderer Favorit war Source Code Pro.

Source Code Pro für Powerline Medium

Bildbeschreibung hier eingeben

Dies hat Probleme bei Größe 16, wo die Pfeile zu groß sind, aber bei Größe 14 ist es fast unbemerkt. Die Zweig- und LN-Symbole laufen nach unten über, aber irgendwie stört mich das nicht.

Source Code Pro für Powerline Light

Bildbeschreibung hier eingeben

Dadurch werden die Probleme mit den Pfeilgrößen der mittleren Schrift fast vollständig gelöst, und es ist nahezu perfekt, obwohl der Symbolüberlauf weiterhin besteht.

Quellcode Pro

Als ich die Optionen für Schriftarten untersuchte, bemerkte man einige Dinge, bei denen einige Schriftarten-Patches das absolute Minimum an Details aufweisen. Wenn man dies mit der Source Code Pro-Liste vergleicht, ist dies ziemlich bedeutend. Source Code Pro ist eine sehr detaillierte und vollständige Schriftart, die in einer Vielzahl von Szenarien eingesetzt werden kann. Diese Art der Vollständigkeit ist für Randfälle von Bedeutung.

Als gepatchte Schriftart wird die Vim-Airline-Leiste nahezu perfekt angezeigt. Der Vorteil so vieler Alternativen ist die Verwendung der Light-Schriftart, die die Vim-Airline-Leiste noch besser darstellt.

Source Code Pro wird auch im Github-Repository von Adobe weiterentwickelt .

Umgang mit der zarten Blume von Windows (vorausgesetzt, GVim)

Die Powerline-Schriftart funktioniert unter Windows nicht. Sie können also nur eine gepatchte Schriftart verwenden. Auch das Bash-Skript zum Installieren aller Schriftarten funktioniert nicht. Deshalb müssen Sie dasselbe tun, git cloneaber dann in jedes der einzelnen Verzeichnisse gehen und die gewünschten Schriftarten installieren.

Ich habe alle gepatchten Source Code Pro-Schriften heruntergeladen und installiert. Obwohl Sie sie als einzelne Schriftarten installieren, werden sie Windows als einzelne Schrift 'Source Code Pro for Powerline' mit einem separaten Attribut zur Angabe der Gewichtung hinzugefügt.

Dann fügen Sie (unter der Annahme von GVim ) Folgendes hinzu .vimrc:

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

Wenn Sie die Schriftart 'Light' verwenden möchten, verwenden Sie diese.

set guifont=Source_Code_Pro_Light:h15:cANSI

Es macht nicht viel Sinn, da das 'für Powerline' nicht enthalten sein muss, aber so funktioniert es (ich habe es herausgefunden, indem ich die Schriftart in GVim festgelegt und dann mit set guifont?überprüft habe, welche GVim verwendet wurde). Außerdem habe ich festgestellt, dass das Rendern von Schriftarten nicht sehr gut ist, wenn Sie GVim zum Wechseln der Schriftart verwenden. Ich habe die Light-Schriftart anfangs abgezinst, weil sie beim Wechseln mit dem GVim-Menü schlecht gerendert wurde, aber wenn Sie das Folgende in Ihre .vimrcGVim- Schriftart einfügen und sie neu starten, sollte sie hübsch aussehen.

Eine nette Sache ist auch, dass Sie Ihre DOS / Powershell-Eingabeaufforderung auf dieselbe Schriftart einstellen können. Dann ist es mit der gepatchten Schriftart auch möglich, Powerline in normalem Vim unter DOS zum Laufen zu bringen.

Wenn Sie mir nicht glauben, funktioniert es hier in Vim in Powershell:

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben

icc97
quelle
3

Ich hatte nach der Neuinstallation von Vim das gleiche Problem: Meine alten gepatchten Schriften waren nicht mit den neuen Airline-Symbolen kompatibel.

Die alten Symbole werden auch in der Hilfe ( :help airline-customization) erwähnt:

" 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 = '⭡'

Nachdem ich diese Zeilen in mein VIMRC geschrieben hatte, ging alles gut.

Mattia72
quelle
upvoted! zur
zeit
1
Sie müssen zuerst das Wörterbuch definieren: let g: airline_symbols = {}
PerseP