Jak naprawić symbole paska stanu we wtyczce Airline?

64

Zainstalowałem wtyczkę Airline , aby mieć niestandardowy pasek stanu, jak pokazano na poniższym rysunku:

Wpisz opis zdjęcia tutaj

Jednak mój pasek stanu prezentuje symbole <, >>i <. Jak rozwiązać ten problem?

Wpisz opis zdjęcia tutaj

Wpisz opis zdjęcia tutaj

Wpisz opis zdjęcia tutaj

Geison Santos
źródło
Aby przekonwertować czcionki na ttf, użyj everythingfonts.com/otf-to-ttf , przykład: starsze wersje XShell nie obsługują otf.
bhathiya-perera
Dla maksymalnej kompatybilności zostawiam airline_powerline_fonts. Nie sądzę, żeby były tak przydatne.
qwr

Odpowiedzi:

50

Właściwie nie rozumiem, dlaczego twoje pytanie zostało odrzucone. Szczerze mówiąc, ja też nie rozumiałem, co należy zrobić, aby uzyskać ten ładnie wyglądający pasek narzędzi. Tak, wiem o pliku README i innych rzeczach, ale myślę, że plik pomocy powinien zawierać sekcję getting startedlub minimum settings.

W każdym razie tutaj są ustawienia.

Instalowanie odpowiednich czcionek

Musisz zainstalować czcionki w systemie za pomocą symboli, takich jak rozgałęzienia, duże trójkąty itp. Nie są to standardowe symbole, więc musisz zainstalować poprawioną czcionkę. Wiele poprawionych czcionek można znaleźć tutaj: https://github.com/powerline/fonts .

.vimrc ustawienia

Od :help airline-customization, umieść ten kod w pliku .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 = ''

unicode symbolsSekcja jest niepotrzebny tutaj jeśli masz już połatany czcionkę ale daje piękny fallback jeśli spróbujesz użyć innej czcionki, która nie posiada odpowiednich symboli.

Ustawienia czcionek

Jeśli używasz Vima w terminalu, powinieneś przełączyć się na odpowiednią czcionkę w preferencjach profilu twojego terminalu.

Jeśli używasz wersji Vima gui (MacVim, gVim) trzeba ustawić czcionkę w .vimrc, na przykład: set guifont=DejaVu\ Sans:s12. Więcej informacji znajdziesz tutaj :help guifont.

Aleksander Myszow
źródło
Cześć, Alexander. Postępowałem zgodnie z jego instrukcjami, ale nadal nie mogę uzyskać oczekiwanego rezultatu: najpierw zainstalowałem czcionki z witryny linii energetycznej. Następnie dokonałem ustawień w pliku .vimrc. Mój plik .vimrc został udostępniony na gist.github.com/geisonsn/641f13543b8b41fe2c12 . Używam wtyczki menedżera Vundle.
Geison Santos
Czy zainstalowałeś tę czcionkę w swoim edytorze? Jeśli używasz vim w terminalu należy zainstalować tę czcionkę w terminalu, lub jeśli używasz wersji GUI vim (MacVim, gVim) trzeba ustawić czcionkę w .vimrc-file, na przykład: set guifont=DejaVu\ Sans:s12. Więcej informacji można znaleźć tutaj :help guifont.
Alexander Myshov
2
@AlexanderMyshov masz powtarzające się wiersze konfiguracji, w których wymagany jest tylko drugi na każde dwa.
Vitor
1
Właśnie utworzyłem konto tutaj na vi.stackexchange, aby podziękować i głosować za tę wspaniałą odpowiedź. Dziękuję za zwolnienie tysięcy wyszukiwań.
0decimal0
1
Myślę, że powinna istnieć sekcja z ustawieniami dla początkujących lub ustawień minimalnych ... Nie wiem, czy zostanie usunięta, czy nie, ale dodałem Przewodnik dla manekinów do wiki vim-Airlines na podstawie mojej odpowiedzi .
icc97
12

Z pliku README :

Integracja z czcionkami Powerline

Aby pojawiły się ładnie wyglądające symbole Powerline, musisz zainstalować poprawioną czcionkę. Instrukcje można znaleźć w oficjalnej dokumentacji Powerline . Gotowe czcionki można znaleźć w repozytorium czcionek powerline .

Na koniec możesz dodać zmienną wygody let g:airline_powerline_fonts = 1do swojego vimrc, która automatycznie zapełni g:airline_symbolssłownik w symbolach linii energetycznej.

lcd047
źródło
1
Stwierdziłem, że let g:airline_powerline_fonts = 1to nie wystarczy. Z jakiegoś powodu nadal nie wypełniało to automatycznie g:airline_symbols, więc musiałem ręcznie wypełnić słownik zgodnie z odpowiedzią Aleksandra Myszkowa .
icc97
5

Wymyślenie tego zajęło wiele godzin, więc oto przewodnik dla manekinów dla Fedory / Ubuntu, ze specjalną sekcją dla systemu Windows.

Pierwszym jest ustalenie, do diabła, jakie są te dziwne, ale ładne nawiasy kątowe, które pojawiają się na pasku stanu vim-Airlines. Tło jest takie, że linia lotnicza jest czystą wersją vima wersji powerline (która była pythonem), a powerline używa znaków UTF-8 do wstawiania tych nawiasów kątowych. Tak więc vim-Airlines używa tylko tych samych znaków UTF-8.

Wtedy nawet jeśli uda ci się zainstalować jeden, wyglądają brzydiej, niż można by się spodziewać, ponieważ czcionki nie działają w pełni.

Konfigurowanie Vima

Jest to odwrotne do oficjalnych instrukcji, ale na końcu popełniłem błąd, co spowodowało, że zakwestionowałem wszystkie instalacje czcionek. Sugeruję więc, aby najpierw skonfigurować tę konfigurację, a następnie, jeśli uruchomisz czcionki, powinna ona pojawić się magicznie.

Ostatnią sztuczką było zmuszenie vim-Airlines do użycia potrzebnych czcionek. W oficjalnej dokumentacji powinno to być po prostu dodanie let g:airline_powerline_fonts = 1do twojego .vimrc. Jednak zrobiłem to i bez powodzenia. Jest tam więcej informacji, :help airline-customizationktóre zapewniają proste ustawienia konfiguracji, które potrzebujesz na wszelki wypadek. To był ostatni magiczny sos, którego potrzebowałem. Nie wiem, dlaczego nie zostało to utworzone automatycznie. Skopiuj i wklej ustawienia wymienione w zaakceptowanej odpowiedzi Aleksandra Myszkowa tutaj .

Kuchnia tonąca w Fedorze i Ubuntu

Jest to prawdopodobnie rozwiązanie z nadmiarem umiejętności, ale najpierw musisz je konsekwentnie działać, zanim będzie można je uprościć.

  1. Zainstaluj ogólną czcionkę sudo dnf install powerline-fonts(lub sudo apt install fonts-powerline) Powerline - powinno to oznaczać, że możesz użyć dowolnej czcionki, którą już zainstalowałeś. Jeśli nie masz łatwego sposobu instalacji, takiego jak dnf / apt, znajdziesz instrukcje dotyczące ręcznego wykonania, np. Https://www.tecmint.com/powerline-adds-powerful-statuslines-and-prompts-to-vim-and -bash / , również oficjalna dokumentacja zawiera instrukcje ( https://powerline.readthedocs.io/en/latest/installation/linux.html#fonts-installation ).

    Teraz ponownie otwórz terminal i sprawdź, czy czcionka symboli Powerline jest dostępna, jeśli edytujesz preferencje terminala i ustawisz niestandardową czcionkę. Nie chcesz bezpośrednio używać czcionki, po prostu sprawdź, czy jest ona dostępna . Teraz spróbuj otworzyć Vima i sprawdź, czy masz ładne symbole.

  2. Jeśli ogólna czcionka Powerline nie działała lub jeśli próbujesz ulepszyć coś, możesz spróbować zainstalować pojedyncze „załatane” czcionki, zajęło to trochę czasu, aby to zrozumieć, ale możesz dosłownie przejść do odpowiedniego folderu w https: //github.com/powerline/fonts/ i pobierz ją, czcionką, która najbardziej mi się podobała z moich testów, jest łatana czcionka Source Code Pro . Następnie wystarczy otworzyć pobrany plik czcionki i kliknąć „Zainstaluj”.

    Jeśli wolisz wiersz poleceń, możesz zainstalować wszystkie poprawione czcionki :

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

    Spowoduje to zainstalowanie wszystkich poprawionych czcionek mono, ale wtedy będzie można odkryć możliwe czcionki. Lista czcionek, którą instaluje, jest całkiem niesamowitą listą dostępnych czcionek kodu źródłowego. Oznacza to również, że nie musisz przejmować się instalowaniem poszczególnych dołączonych czcionek.

  3. Sprawdź, czy czcionkę można określić w preferencjach terminalu, ponownie otwórz sesję terminalu, jeśli brakuje czcionek, więc pamiętaj, że mogą tu być dwie opcje:
    1. Ogólna czcionka Powerline działa, w takim przypadku możesz po prostu użyć podstawowej czcionki, np. DejaVu Sans Mono
    2. Jeśli nie możesz tego zrobić, poprawiona czcionka pobrana powyżej powinna być poprawna, np. Odpowiednikiem DejaVu jest „DejaVu Sans Mono dla Powerline”.

Ulepszanie Linuksa

Gdy naprawdę uruchomiłem go po raz pierwszy, było to naprawdę rozczarowujące, ponieważ ikony nie do końca pasowały do ​​siebie. Ale zgodnie z często zadawanymi pytaniami musimy trochę ulepszyć. Zacząłem od Inconsolata, ponieważ zapewnia mi to spójną czcionkę w systemach Windows i Linux. Możesz łatwo zainstalować ogólną czcionkę na Ubuntu dzięki apt install fonts-inconsolataOto, co otrzymałem:

wprowadź opis zdjęcia tutaj

Strzały są zbyt duże i są brzydko uniesione w górę.

Potem wypróbowałem wszystkie inne domyślne czcionki Ubuntu.

Ubuntu mono:

wprowadź opis zdjęcia tutaj

DejaVu Sans Mono:

wprowadź opis zdjęcia tutaj

To ma prawidłowe położenie pionowe, ale strzałki po prawej stronie mają odstępy za nimi.

Dlaczego używasz poprawionych czcionek?

Korzystanie z czcionek domyślnych polega na czcionce Powerline w celu automatycznego łatania istniejących czcionek. Można jednak poprawić wygląd symboli linii lotniczych za pomocą poprawionych czcionek. Są to odpowiedniki przy użyciu poprawionych czcionek.

Wyświetlam je wszystkie w rozmiarze czcionki 16, ponieważ lubię używać większej czcionki, a ponadto pokazuje drobne problemy.

Inconsolata dla Powerline:

wprowadź opis zdjęcia tutaj

To wciąż ma problemy, ale prawie wszystkie są rozwiązane przez wariant dz.

Inconsolata-dz dla Powerline dz:

wprowadź opis zdjęcia tutaj

To ma złamanie linii włosów na strzałkach po prawej stronie, ale poza tym jest idealne.

Ubuntu Mono pochodna Powerline Regular:

wprowadź opis zdjęcia tutaj

To wciąż ma irytujące problemy.

DejaVu Sans Mono dla Powerline Book:

wprowadź opis zdjęcia tutaj

To ma złamanie linii włosów na strzałkach po prawej stronie, ale poza tym jest idealne. Właściwie wolę to od Inconsolata-dz, ponieważ ikona LN jest bardziej czytelna.

Oprócz tych regularnych wypróbowałem prawie wszystkie dostępne czcionki, a moim drugim ulubionym był Source Code Pro.

Kod źródłowy Pro dla Powerline Medium

wprowadź opis zdjęcia tutaj

Ma to problemy w rozmiarze 16, w którym strzały są zbyt duże, ale w rozmiarze 14 jest prawie niezauważalne. Ikony gałęzi i LN przelewają się na dno, ale jakoś mnie to nie denerwuje.

Kod źródłowy Pro dla Powerline Light

wprowadź opis zdjęcia tutaj

To prawie całkowicie rozwiązuje problemy dotyczące rozmiarów strzałek średniej czcionki i sprawia, że ​​jest ona idealna, chociaż nadal występuje przepełnienie ikony.

Kod źródłowy Pro

Kiedy badałem opcje czcionek, zauważysz kilka rzeczy, niektóre łatki czcionek mają absolutne minimum w szczegółach, jeśli porównasz to z listą kodu źródłowego Pro, jest to dość znaczące. Source Code Pro to bardzo szczegółowa i kompletna czcionka, która została uznana za działającą w wielu różnych scenariuszach. Ten rodzaj kompletności ma znaczenie dla przypadków skrajnych.

Używana jako łatka czcionki prawie idealnie wyświetla pasek vim-airline. Zaletą tak wielu alternatyw jest użycie jasnej czcionki, która ma jeszcze lepsze wyświetlanie paska vim-airline.

Kod źródłowy Pro jest również w dalszym ciągu otwarty w repozytorium Github firmy Adobe .

Obsługa delikatnego kwiatu systemu Windows (przy założeniu GVim)

Czcionka Powerline nie działa w systemie Windows, więc jedynym wyborem jest użycie łatki. Również skrypt bash do zainstalowania wszystkich czcionek nie działa, więc musisz zrobić to samo, git cloneale następnie przejść do każdego z poszczególnych katalogów i zainstalować żądane czcionki.

Pobrałem wszystkie poprawione czcionki Source Code Pro i zainstalowałem je. Mimo że instalujesz je jako pojedyncze czcionki, są one dodawane do systemu Windows jako pojedyncza czcionka „Source Code Pro dla Powerline” z osobnym atrybutem określającym wagę.

Następnie (zakładając GVim ) dodaj to do .vimrc:

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

Jeśli chcesz użyć czcionki „Light”, użyj tego.

set guifont=Source_Code_Pro_Light:h15:cANSI

Nie ma to większego sensu, ponieważ nie musi zawierać „for Powerline”, ale tak to działa (wymyśliłem to, ustawiając czcionkę w GVim, a następnie set guifont?sprawdzając, jakiego GVim używał). Zauważyłem również, że kiedy używasz GVima do przełączania czcionki, renderowanie czcionek nie jest zbyt dobre. Początkowo pominąłem czcionkę Light, ponieważ kiedy przełączyłem się za pomocą menu GVim, źle się renderowało, ale jeśli umieścisz poniżej w swoim .vimrci zrestartujesz GVim, powinno to wyglądać pięknie.

Przyjemną rzeczą jest również to, że możesz ustawić znak zachęty DOS / Powershell na tę samą czcionkę. Następnie z poprawioną czcionką można również uruchomić Powerline w zwykłym Vimie w systemie DOS.

Jeśli mi nie wierzysz, tutaj działa w Vimie w PowerShell:

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

icc97
źródło
3

Miałem ten sam problem po ponownej instalacji Vima: moje stare łatki nie były zgodne z nowymi symbolami linii lotniczych.

Stare symbole są również wymienione w help ( :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 = '⭡'

Po umieszczeniu tych wierszy w moim vimrc wszystko poszło dobrze.

Mattia72
źródło
entuzjastycznie! obecnie najlepsze dla mnie, tylko te symbole są nieco wyższe
ryenus
1
Najpierw musisz zdefiniować słownik: pozwól g: airline_symbols = {}
PerseP