Як зафіксувати символи рядка стану в плагіні авіакомпанії?


64

Я встановив плагін Airline , щоб мати спеціальну панель стану, як показано на малюнку нижче:

Введіть тут опис зображення

Тим НЕ менше, моя рядок стану представлення символів <, >>і <. Як виправити цю проблему?

Введіть тут опис зображення

Введіть тут опис зображення

Введіть тут опис зображення


Використовуйте everythingfonts.com/otf-to-ttf для перетворення шрифтів у ttf, Приклад: Старіші версії XShell не підтримують otf.
bhathiya-pera

Для максимальної сумісності я airline_powerline_fontsвідключаю. Я не думаю, що вони насправді такі корисні.
qwr

Відповіді:


50

Насправді я не розумію, чому ваше запитання проголошено. Чесно кажучи, спочатку я теж не зрозумів, що потрібно зробити, щоб отримати цю красиву панель інструментів. Так, я знаю про README та інші речі, але я думаю, що у файлі довідки має бути розділ getting startedчи minimum settingsрозділ.

У будь-якому випадку тут налаштування.

Встановлення відповідних шрифтів

Вам потрібно встановити у вашу систему шрифти з такими символами, як розгалуження, великі трикутники тощо. Вони не є стандартними символами, тому вам потрібно встановити виправлений шрифт. Тут ви можете знайти багато виправлених шрифтів: https://github.com/powerline/fonts .

.vimrc налаштування

З :help airline-customization, помістіть цей код в ваш .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 symbolsрозділ тут непотрібний, якщо у вас вже є виправлений шрифт, але він дає хороший запасний варіант, якщо ви намагаєтесь використовувати інший шрифт, який не має відповідних символів.

Налаштування шрифту

Якщо ви використовуєте Vim у терміналі, вам слід переключитися на відповідний шрифт у налаштуваннях профілю вашого терміналу.

Якщо ви використовуєте графічний інтерфейс версії Vim (MacVim, GVim) вам необхідно встановити шрифт в .vimrc, наприклад: set guifont=DejaVu\ Sans:s12. Ви можете знайти більше інформації тут :help guifont.


Привіт, Олександре. Я дотримувався його вказівок, але досі не можу отримати очікуваного результату: спочатку встановив шрифти з сайту електролінії. Потім я зробив налаштування у файлі .vimrc. Мій файл .vimrc надано у спільний доступ до gist.github.com/geisonsn/641f13543b8b41fe2c12 . Я використовую плагін Vundle manager.
Гейсон Сантос

Ви встановили цей шрифт у своєму редакторі? Якщо ви використовуєте Vim в терміналі , ви повинні встановити цей шрифт в терміналі, чи якщо ви використовуєте GUI-версію Vim (MacVim, GVim) вам необхідно встановити шрифт в .vimrc-Файл, наприклад: set guifont=DejaVu\ Sans:s12. Більше інформації ви можете знайти тут :help guifont.
Олександр Мишов

2
@AlexanderMyshov Ви повторили рядки конфігурації, де потрібен лише другий з кожних двох.
Вітор

1
Щойно ви створили обліковий запис на vi.stackexchange, щоб подякувати вам і підтвердити цю чудову відповідь. Дякую, що звільнив мене тисячі пошуків.
0decimal0

1
Я думаю, що має бути розділ про початок роботи або про мінімальні налаштування ... Я не знаю, буде видалено чи ні, але я додав посібник для манекенів у вікі- версію vim-airline на основі моєї відповіді .
icc97

12

З ПРОЧИТАННЯ :

Інтеграція з шрифтами електропередач

Щоб симпатичні на вигляд символи лінії електропередач з’явилися, вам потрібно буде встановити виправлений шрифт. Інструкції можна знайти в офіційній документації на електроліній . Заздалегідь підготовлені шрифти можна знайти у сховищі шрифтів powerline -fonts .

Нарешті, ви можете додати змінну зручності let g:airline_powerline_fonts = 1до свого vimrc, яка автоматично заповнить g:airline_symbolsсловник символами силової лінії.


1
Я виявив, що let g:airline_powerline_fonts = 1цього недостатньо. Чомусь це все ще не було автоматично заповнене g:airline_symbols, тому мені довелося вручну заповнити словник відповідно до відповіді Олександра Мишова .
icc97

5

На це знадобилися години, щоб розібратися, тому ось докладніші посібники про манекени для Fedora / Ubuntu зі спеціальним розділом для Windows.

Перший - з'ясування того, до чого, чортів, є ті дивні, але приємні кутові дужки, які з’являються у рядку статусу vim-airline. Фон полягає в тому, що авіакомпанія є чистою версією версії лінії електропередач (яка була python), а powerline використовує символи UTF-8 для вставки цих кутових дужок. Тож vim-airline просто використовує ті самі символи UTF-8.

Тоді навіть якщо вам вдасться встановити один встановлений, вони виглядають неприємніше, ніж ви сподівалися, оскільки шрифти не працюють повністю.

Налаштування Vim

Це протилежне офіційним інструкціям, але я в цьому помилився, що змусило мене поставити під сумнів усі шрифтові установки. Тому я пропоную вам спочатку налаштувати це, а потім, якщо ви працюєте з шрифтами, це магічно повинно з'явитися.

Останній трюк - змусити vim-airline використовувати необхідні шрифти. В офіційній документації його слід просто додати let g:airline_powerline_fonts = 1у свою .vimrc. Однак я це зробив і не пощастило. Тут ви знайдете більше інформації, :help airline-customizationяка дає прості налаштування конфігурації, які вам потрібні, про всяк випадок. Це був заключний чарівний соус, який мені знадобився. Я не знаю, чому це не було створено автоматично. Скопіюйте та вставте параметри, зазначені у прийнятій відповіді Олександра Мишова, тут .

Кухня затопила його на Fedora та Ubuntu

Це, мабуть, надмірне рішення, але спочатку вам потрібно буде його стабільно працювати, перш ніж спростити його.

  1. Встановіть загальний шрифт powerline sudo dnf install powerline-fonts(або sudo apt install fonts-powerline) - це повинно означати, що ви можете використовувати будь-який встановлений вами шрифт. Якщо у вас немає простого способу встановлення, наприклад, dnf / apt, є інструкції щодо його вручну, наприклад https://www.tecmint.com/powerline-adds-powerful-statuslines-and-prompts-to-vim-and -bash / , також офіційна документація має інструкції ( https://powerline.readthedocs.io/en/latest/installation/linux.html#fonts-installation ).

    Тепер закрийте термінал, відкрийте його знову і перевірте, чи доступний шрифт символів Powerline, якщо ви редагуєте параметри терміналу та встановите спеціальний шрифт. Ви не хочете використовувати шрифт безпосередньо, просто перевірте, чи він доступний . Тепер спробуйте відкрити Vim і побачити, чи є у вас приємні символи.

  2. Якщо загальний шрифт powerline не спрацював або ви намагаєтеся покращити речі, ви можете спробувати встановити окремі "виправлені" шрифти, це знадобилось певний час, але ви можете буквально просто перейти до потрібної папки в https: //github.com/powerline/fonts/ та завантажте його, шрифт, який мені найбільше сподобався в моїх тестах, - це латочний шрифт Source Code Pro . Потім просто відкрийте завантажений файл шрифту та натисніть «Встановити».

    Якщо ви віддаєте перевагу командному рядку, ви можете встановити всі виправлені шрифти :

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

    Це встановить усі виправлені моно шрифти, але тоді це дає можливість вивчити можливі шрифти. Список шрифтів, який він встановлює, - це надзвичайно дивовижний список доступних шрифтів вихідного коду. Це також означає, що вам не доведеться робити фальсифікацію щодо встановлення кожного з окремих шрифтів, що включаються.

  3. Переконайтеся, що шрифт можна вказати в налаштуваннях терміналу, повторно відкрийте сеанс терміналу, якщо у вас відсутні шрифти, тому зверніть увагу, що тут можуть бути два варіанти:
    1. Загальний шрифт powerline працює, і в цьому випадку ви можете просто використовувати базовий шрифт, наприклад DejaVu Sans Mono
    2. Якщо ви не можете зробити так, щоб виправлений виправлений шрифт, який ви завантажили вище, повинен бути правильним, наприклад, еквівалент DejaVu - "DejaVu Sans Mono for Powerline".

Налаштування Linux

Після того, як я вперше отримав це в роботі вперше, це було дуже невтішно, оскільки іконки не повністю збігалися. Але відповідно до FAQ, нам потрібно зробити певні налаштування. Я почав з Inconsolata, оскільки це дає мені послідовний шрифт у Windows та Linux. Ви можете легко встановити загальний шрифт на Ubuntu за допомогою apt install fonts-inconsolataОсь що я отримав:

введіть тут опис зображення

Стрілки занадто великі і некрасиво зміщені вгору.

Потім я спробував усі інші шрифти Ubuntu за замовчуванням.

Ubuntu mono:

введіть тут опис зображення

DejaVu Sans Mono:

введіть тут опис зображення

Це правильне вертикальне положення, але стрілки правої сторони мають пробіл після них.

Для чого ви використовуєте виправлені шрифти

Використання шрифтів за замовчуванням покладається на шрифт Powerline для автоматичного виправлення існуючих шрифтів. Однак ви можете покращити вигляд символів авіакомпанії, використовуючи наклеєні шрифти. Це еквіваленти, що використовують виправлені шрифти.

Я показую все це в розмірі шрифту 16, як мені подобається використовувати шрифт більшого розміру, плюс він відображає незначні проблеми.

Інкозолата для Powerline:

введіть тут опис зображення

У цьому все ще є проблеми, але вони майже всі вирішуються варіантом dz.

Inconsolata-dz для Powerline dz:

введіть тут опис зображення

Це перелом волосся на правій бічній стрілці, але в іншому випадку є ідеальним.

Похідна монобудова Powerline Ubuntu регулярно:

введіть тут опис зображення

Це все ще має дратівливі проблеми.

DejaVu Sans Mono для Powerline Book:

введіть тут опис зображення

Це перелом волосся на правій бічній стрілці, але в іншому випадку є ідеальним. Я насправді віддаю перевагу Inconsolata-dz, оскільки значок LN легше читати.

Крім цього, я спробував майже всі доступні шрифти, а іншим моїм улюбленим був Source Code Pro.

Вихідний код Pro для Powerline Medium

введіть тут опис зображення

У цьому є проблеми розміром 16, де стрілки занадто великі, але при розмірі 14 це майже непомітно. Значки гілки та LN переповнюються донизу, але якимось чином це не дратує мене.

Вихідний код Pro для Powerline Light

введіть тут опис зображення

Це майже повністю вирішує питання щодо розміру стрілки середнього шрифту та робить його ідеальним, хоча ікона все ще переповнюється.

Вихідний код Pro

Коли я досліджував варіанти шрифтів, ви помічаєте кілька речей, деякі патчі шрифту мають абсолютний мінімум у деталях, якщо порівнювати це зі списком Source Code Pro, це досить важливо. Source Code Pro - це дуже детальний і повний шрифт, який, як вважається, працює у великому діапазоні сценаріїв. Така повнота має значення для крайових справ.

Використовуваний як виправлений шрифт, він майже ідеально відображає смугу vim-airline. Перевагою такої кількості альтернатив є використання світлого шрифту, який ще краще відображає смугу vim-airline.

Source Code Pro також знаходиться в постійній відкритій розробці в сховищі Github Adobe .

Поводження з ніжною квіткою Windows (припускаючи GVim)

Шрифт Powerline не працює з Windows, тому ваш єдиний вибір - використовувати виправлений шрифт. Також сценарій bash для встановлення всіх шрифтів не працює, тому потрібно зробити те саме, git cloneале потім зайти в кожен з окремих каталогів та встановити потрібні шрифти.

Я завантажив усі вихідні шрифти вихідного коду Pro та встановив їх. Незважаючи на те, що ви встановлюєте їх як окремі шрифти, вони додаються до Windows як єдиний шрифт "Source Code Pro для Powerline" з окремим атрибутом для визначення ваги.

Потім (припускаючи GVim ) додайте це до свого .vimrc:

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

Якщо ви хочете використовувати шрифт 'Light', використовуйте це.

set guifont=Source_Code_Pro_Light:h15:cANSI

Це не має особливого сенсу, оскільки йому не потрібно включати "для Powerline", але так воно працює (я зрозумів, встановивши шрифт у GVim, а потім за допомогою set guifont?перевірити, що GVim використовував). Також я помітив, що коли ви використовуєте GVim для перемикання шрифту, візуалізація шрифту не дуже хороша. Я спочатку дисконтував шрифт Light, тому що, коли я перемикався за допомогою меню GVim, він вийшов погано, але якщо ви введете нижче у свій .vimrcі перезапустите GVim, він повинен виглядати чудово.

Також приємно, що ви можете встановити підказку DOS / Powershell на той самий шрифт. Тоді за допомогою виправленого шрифту також можна заставити Powerline працювати в звичайному Vim в DOS.

Якщо ви мені не вірите, тут він працює у Vim in Powershell:

введіть тут опис зображення

введіть тут опис зображення


3

У мене була така ж проблема після перевстановлення Vim: мої старі виправлені шрифти не сумісні з новими символами авіакомпанії.

Старі символи також згадуються у довідці ( :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 = '⭡'

Після того, як я помістив ці рядки у свій vimrc, все пішло нормально.


прихильне! На даний момент найкраще для мене, просто ці символи трохи вище
ryenus

1
Спочатку потрібно визначити словник: нехай g: airline_symbols = {}
PerseP
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.