Как исправить символы строки состояния в плагине «Авиакомпания»?

64

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

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

Тем не менее, моя строка состояния представления символов <, >>и <. Как мне решить эту проблему?

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

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

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

Geison Santos
источник
Используйте everythingfonts.com/otf-to-ttf для преобразования шрифтов в ttf, например: Старые версии XShell не поддерживают otf.
бхатия-перера
Для максимальной совместимости я остановлюсь 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.

Александр Мышов
источник
Привет, Александр. Я следовал его инструкциям, но до сих пор не могу получить ожидаемый результат: сначала установил шрифты с сайта powerline. Затем я сделал настройки в файле .vimrc. Мой файл .vimrc был опубликован на gist.github.com/geisonsn/641f13543b8b41fe2c12 . Я использую плагин Vundle Manager.
Geison Santos
Вы установили этот шрифт в своем редакторе? Если вы используете Vim в терминале , вы должны установить этот шрифт в терминале, или если вы используете GUI-версию Vim (MacVim, GVim) вам необходимо установить шрифт в .vimrc-файле, например: set guifont=DejaVu\ Sans:s12. Более подробную информацию вы можете найти здесь :help guifont.
Александр Мышов
2
@AlexanderMyshov Вы повторили конфигурационные строки, где требуется только вторая из каждых двух.
Витор
1
Просто создайте учетную запись здесь на vi.stackexchange, чтобы поблагодарить вас и высказать этот замечательный ваш ответ. Спасибо, что избавили меня от тысячи поисков.
0decimal0
1
Я думаю, что должен быть начальный или минимальный раздел настроек ... Я не знаю, будет ли он удален или нет, но я добавил Руководство по чайникам в вики-авиакомпанию vim, основываясь на моем ответе .
icc97
12

Из README :

Интеграция со шрифтами Powerline

Для появления красивых символов Powerline вам необходимо установить пропатченный шрифт. Инструкции можно найти в официальной документации Powerline . Подготовленные шрифты можно найти в репозитории powerline -шрифтов .

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

lcd047
источник
1
Я обнаружил, что этого let g:airline_powerline_fonts = 1было недостаточно. По некоторым причинам это все еще не заполняло автоматически g:airline_symbols, поэтому я должен был вручную заполнить словарь согласно ответу Александра Мышова .
icc97
5

Чтобы понять это, потребовались часы, так что вот вам еще руководство по манекену для Fedora / Ubuntu со специальным разделом для Windows.

Во-первых, выяснить, что, черт возьми, эти странные, но красивые угловые скобки, которые появляются в строке состояния vim-Airlines. Предпосылкой является то, что авиакомпания является чистой версией Powerline (которая была Python), и Powerline использует символы UTF-8, чтобы вставить эти угловые скобки. Так что Vim-Airlines просто использует те же символы UTF-8.

Тогда даже если вам удастся его установить, они выглядят хуже, чем можно было бы надеяться, потому что шрифты работают не полностью.

Конфигурирование Vim

Это противоречит официальным инструкциям, но в конце я ошибся, что заставило меня усомниться во всех установках шрифтов. Поэтому я советую сначала настроить это, а затем, если вы работаете со шрифтами, оно должно появиться волшебным образом.

Последним трюком было принуждение Vim-Airlines использовать нужные шрифты. В официальной документации это должно быть просто добавление let g:airline_powerline_fonts = 1в вашу .vimrc. Однако я сделал это и не повезло. Там есть больше информации, :help airline-customizationи это дает вам несколько простых настроек конфигурации, которые вам нужны, на всякий случай. Это был последний волшебный соус, который мне был нужен. Я не знаю, почему это не было создано автоматически. Скопируйте и вставьте настройки, указанные в принятом ответе Александра Мышова, здесь .

Кухня тонет на Федоре и Убунту

Возможно, это излишнее решение, но сначала вам нужно, чтобы оно работало последовательно, прежде чем вы сможете упростить его.

  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 для Powerline».

Тонкая настройка Linux

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

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

Стрелки слишком велики и ужасно смещены вверх.

Затем я попробовал все остальные шрифты Ubuntu по умолчанию.

Ubuntu mono:

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

DejaVu Sans Mono:

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

Это имеет правильное вертикальное положение, но у стрелок справа есть пробел после них.

Почему вы используете пропатченные шрифты

Использование шрифтов по умолчанию полагается на шрифт Powerline для автоматического исправления существующих шрифтов. Однако вы можете улучшить внешний вид символов авиакомпании, используя пропатченные шрифты. Это эквиваленты, использующие пропатченные шрифты.

Я отображаю их все с размером шрифта 16, так как мне нравится использовать больший шрифт, плюс он обнаруживает незначительные проблемы.

Inconsolata для Powerline:

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

У этого все еще есть проблемы, но они почти все решены изменением dz.

Inconsolata-dz для Powerline dz:

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

Это имеет перелом волосяного покрова на правой стороне стрелки, но в остальном идеален.

Производная Ubuntu Mono Powerline Regular:

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

Это все еще имеет раздражающие проблемы.

DejaVu Sans Mono для Powerline Book:

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

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

Помимо этих постоянных, я перепробовал почти все доступные шрифты, а другим моим любимым был Source Code Pro.

Исходный код Pro для Powerline Medium

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

Это имеет проблемы в размере 16, где стрелки слишком велики, но в размере 14 это почти незаметно. Значки веток и LN переполняются, но почему-то это меня не раздражает.

Исходный код Pro для Powerline Light

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

Это почти полностью решает проблемы с размерами стрелок среднего шрифта и делает его практически идеальным, хотя значок все еще переполняется.

Исходный код Pro

Когда я изучал варианты шрифтов, вы заметили несколько моментов: некоторые патчи шрифтов содержат абсолютный минимум в деталях, если сравнить его со списком Source Code Pro, это довольно существенно. Исходный код Pro - это очень подробный и полный шрифт, который, как считается, работает в широком диапазоне сценариев. Этот вид полноты имеет значение для крайних случаев.

Используемый как пропатченный шрифт, он почти идеально отображает панель vim-Airlines Преимущество стольких альтернатив заключается в использовании светлого шрифта, который даже лучше отображает панель vim-Airlines.

Исходный код Pro также находится в процессе открытой разработки в репозитории Adobe Github .

Обработка нежного цветка Windows (при условии GVim)

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

Я скачал все исправленные шрифты Source Code Pro и установил их. Даже если вы устанавливаете их как отдельные шрифты, они добавляются в Windows как один шрифт «Исходный код Pro для Powerline» с отдельным атрибутом для указания веса.

Затем (при условии GVim ) добавьте это к вашему .vimrc:

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

Если вы хотите использовать шрифт «Light», используйте это.

set guifont=Source_Code_Pro_Light:h15:cANSI

Это не имеет особого смысла, поскольку не нужно включать «for Powerline», но вот как это работает (я понял это, установив шрифт в GVim, а затем с помощью set guifont?проверки, что использовал GVim). Также я заметил, что когда вы используете GVim для переключения шрифта, рендеринг шрифта не очень хорош. Первоначально я не использовал шрифт Light, потому что когда я переключался с помощью меню GVim, он плохо отображался, но если вы добавили нижеприведенное .vimrcи перезапустили GVim, он должен выглядеть прекрасно.

Также приятно то, что вы можете установить для вашего приглашения DOS / Powershell тот же шрифт. Затем с исправленным шрифтом также можно заставить Powerline работать в обычном Vim в DOS.

Если вы мне не верите, вот это работает в Vim в Powershell:

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

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

icc97
источник
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, все прошло нормально.

Mattia72
источник
upvoted! на данный момент лучший для меня, только эти символы немного выше
ryenus
1
Сначала нужно определить словарь: let g: aviation_symbols = {}
PerseP