¿Cómo reparo los símbolos de la barra de estado en el complemento Airline?

64

Instalé el complemento Airline para tener una barra de estado personalizada, como se ve en la figura a continuación:

Ingrese la descripción de la imagen aquí

Sin embargo, mi barra de estado presenta los símbolos <, >>y <. ¿Cómo soluciono este problema?

Ingrese la descripción de la imagen aquí

Ingrese la descripción de la imagen aquí

Ingrese la descripción de la imagen aquí

Geison Santos
fuente
Use everythingfonts.com/otf-to-ttf para convertir las fuentes a ttf. Ejemplo: Las versiones anteriores de XShell no son compatibles con otf.
bhathiya-perera
Para una máxima compatibilidad, lo dejo airline_powerline_fonts. No creo que sean realmente tan útiles.
qwr

Respuestas:

50

En realidad no entiendo por qué su pregunta es rechazada. Honestamente, al principio tampoco entendí lo que hay que hacer para obtener esta barra de herramientas de aspecto agradable. Sí que sé sobre el README y otras cosas, pero yo creo que debe haber una getting startedo minimum settingssección en el archivo de ayuda.

De todos modos aquí están las configuraciones.

Instalar las fuentes apropiadas

Debe instalar fuentes en su sistema con símbolos como ramificación, triángulos grandes, etc. No son símbolos estándar, por lo que debe instalar una fuente parcheada. Puede encontrar muchas fuentes parcheadas aquí: https://github.com/powerline/fonts .

.vimrc ajustes

Desde :help airline-customization, coloque este código en su archivo .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 symbolssección es innecesaria aquí si ya tiene una fuente parcheada, pero le ofrece una buena alternativa si intenta usar otra fuente que no tenga los símbolos apropiados.

Configuraciones de fuente

Si usa Vim en la terminal, debe cambiar a la fuente apropiada en las preferencias de perfil de su terminal.

Si utiliza la versión GUI de Vim (MacVim, GVim) que necesita para establecer la fuente en .vimrc, por ejemplo: set guifont=DejaVu\ Sans:s12. Puedes encontrar más información aquí :help guifont.

Alexander Myshov
fuente
Hola alexander Seguí sus instrucciones, pero aún no puedo obtener el resultado esperado: al principio instalé las fuentes desde el sitio de la línea eléctrica. Luego hice la configuración en el archivo .vimrc. Mi archivo .vimrc ha sido compartido en gist.github.com/geisonsn/641f13543b8b41fe2c12 . Estoy usando el complemento de administrador Vundle.
Geison Santos
¿Instalaste esa fuente en tu editor? Si utiliza vim en el terminal debe instalar dicha fuente en la terminal, o si utiliza GUI-versión de vim (MacVim, GVim) que necesite configurar la fuente en el .vimrc-file, por ejemplo: set guifont=DejaVu\ Sans:s12. Más información puedes encontrar aquí :help guifont.
Alexander Myshov
2
@AlexanderMyshov tiene líneas de configuración repetidas, donde solo se requiere el segundo de cada dos.
Vitor
1
Acabo de crear una cuenta aquí en vi.stackexchange para agradecerles y votar esta maravillosa respuesta suya. Gracias por aliviarme mil búsquedas.
0decimal0
1
Creo que debería haber una sección de inicio o configuración mínima ... No sé si se eliminará o no, pero he agregado una Guía de Dummies a la wiki de vim-airline basada en mi respuesta .
icc97
12

Desde el archivo Léame :

Integrando con fuentes powerline

Para que aparezcan los bonitos símbolos de línea eléctrica, deberá instalar una fuente parcheada. Las instrucciones se pueden encontrar en la documentación oficial de powerline . Las fuentes preconfiguradas se pueden encontrar en el repositorio de fuentes powerline .

Finalmente, puede agregar la variable de conveniencia let g:airline_powerline_fonts = 1a su vimrc que completará automáticamente el g:airline_symbolsdiccionario con los símbolos de powerline.

lcd047
fuente
1
Descubrí que eso let g:airline_powerline_fonts = 1no era suficiente. Por alguna razón, esto todavía no se rellenaba automáticamente g:airline_symbols, así que tuve que rellenar manualmente el diccionario según la respuesta de Alexander Myshov .
icc97
5

Esto tomó horas para darse cuenta, así que aquí hay más de una guía para tontos de Fedora / Ubuntu, con una sección especial para Windows.

El primero es descubrir qué demonios son esos corchetes angulares extraños pero agradables que aparecen en la barra de estado de la aerolínea vim. El trasfondo es que la línea aérea es una versión vim pura de powerline (que era python), y powerline usa caracteres UTF-8 para insertar esos corchetes angulares. Entonces vim-airline solo usa los mismos caracteres UTF-8.

Entonces, incluso si logras instalar uno, se ven más feos de lo que esperarías porque las fuentes no funcionan completamente.

Configurando Vim

Esto es opuesto a las instrucciones oficiales, pero al final me equivoqué un poco, lo que me hizo cuestionar todas las instalaciones de fuentes. Así que le sugiero que configure esto primero y luego, si las fuentes funcionan, debería aparecer mágicamente.

El truco final fue obligar a vim-airline a usar las fuentes que necesita. En la documentación oficial , solo debería agregar let g:airline_powerline_fonts = 1su .vimrc. Sin embargo hice esto y no tuve suerte. Hay más información :help airline-customizationy eso le brinda algunas configuraciones de configuración simples que necesita, por si acaso. Esta fue la salsa mágica final que necesitaba. No sé por qué esto no se creó automáticamente. Copie y pegue la configuración mencionada en la respuesta aceptada de Alexander Myshov aquí .

Cocina hundiéndolo en Fedora y Ubuntu

Esta es probablemente una solución exagerada, pero primero debe hacer que funcione constantemente antes de poder simplificarla.

  1. Instale la fuente general powerline sudo dnf install powerline-fonts(o sudo apt install fonts-powerline): esto debería significar que puede usar cualquier fuente que ya haya instalado. Si no tiene una manera fácil de instalar como dnf / apt, entonces hay instrucciones para hacerlo manualmente, por ejemplo, https://www.tecmint.com/powerline-adds-powerful-statuslines-and-prompts-to-vim-and -bash / , también la documentación oficial tiene instrucciones ( https://powerline.readthedocs.io/en/latest/installation/linux.html#fonts-installation ).

    Ahora cierre la terminal para volver a abrirla y verifique que la fuente de símbolos Powerline esté disponible si edita las preferencias de la terminal y configura una fuente personalizada. No desea utilizar la fuente directamente, solo verifique que esté disponible . Ahora intente abrir Vim y vea si tiene buenos símbolos.

  2. Si la fuente general de powerline no funcionó o si está tratando de mejorar las cosas, puede intentar instalar fuentes individuales 'parcheadas', esto tomó un tiempo para darse cuenta, pero literalmente puede ir a la carpeta que desee en https: //github.com/powerline/fonts/ y descárguelo, la fuente que más me ha gustado de mis pruebas es la fuente parcheada de Source Code Pro . Luego simplemente abra el archivo de fuente descargado y haga clic en 'Instalar'.

    Si prefiere la línea de comando, puede instalar todas las fuentes parcheadas :

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

    Esto instalará todas las fuentes mono parcheadas, pero luego le dará la oportunidad de explorar las posibles fuentes. La lista de fuentes que instala es una lista bastante impresionante de las fuentes de código fuente disponibles. También significa que no tiene que preocuparse por instalar cada una de las fuentes individuales que se incluyen.

  3. Compruebe que la fuente se puede especificar en las preferencias del terminal, vuelva a abrir su sesión de terminal si le faltan fuentes, así que tenga en cuenta que aquí podría haber dos opciones:
    1. La fuente general powerline está funcionando, en cuyo caso puede usar la fuente base, por ejemplo, DejaVu Sans Mono
    2. Si no puede hacer que funcione, la fuente parcheada que descargó anteriormente debería ser correcta, por ejemplo, el equivalente de DejaVu es 'DejaVu Sans Mono for Powerline'.

Afinando Linux

Una vez que lo hice funcionar por primera vez, fue realmente decepcionante ya que los íconos no coincidían completamente. Pero según las preguntas frecuentes , necesitamos hacer algunos ajustes. Comencé con Inconsolata ya que esto me da una fuente consistente en Windows y Linux. Puede instalar la fuente general fácilmente en Ubuntu con apt install fonts-inconsolataEsto es lo que obtuve:

ingrese la descripción de la imagen aquí

Las flechas son demasiado grandes y se desplazan hacia arriba de manera fea.

Luego probé todas las otras fuentes predeterminadas de Ubuntu.

Ubuntu mono:

ingrese la descripción de la imagen aquí

DejaVu Sans Mono:

ingrese la descripción de la imagen aquí

Esto tiene la posición vertical correcta pero las flechas del lado derecho tienen un espacio después de ellas.

¿Por qué usas las fuentes parcheadas?

El uso de las fuentes predeterminadas se basa en la fuente Powerline para parchear automáticamente las fuentes existentes. Sin embargo, puede mejorar el aspecto de los símbolos de las líneas aéreas utilizando las fuentes parcheadas. Estos son los equivalentes que usan las fuentes parcheadas.

Muestro todo esto en tamaño de fuente 16, ya que me gusta usar una fuente más grande, además muestra problemas menores.

Inconsolata para Powerline:

ingrese la descripción de la imagen aquí

Esto todavía tiene problemas, pero casi todos se resuelven con la variación dz.

Inconsolata-dz para Powerline dz:

ingrese la descripción de la imagen aquí

Esto tiene una fractura fina en las flechas del lado derecho, pero por lo demás es perfecto.

Derivado de Ubuntu Mono Powerline Regular:

ingrese la descripción de la imagen aquí

Esto todavía tiene problemas molestos.

DejaVu Sans Mono para Powerline Book:

ingrese la descripción de la imagen aquí

Esto tiene una fractura fina en las flechas del lado derecho, pero por lo demás es perfecto. De hecho, lo prefiero al Inconsolata-dz ya que el icono de LN es más legible.

Además de estos clientes habituales, probé casi todas las fuentes disponibles y mi otro favorito fue Source Code Pro.

Código fuente Pro para Powerline Medium

ingrese la descripción de la imagen aquí

Esto tiene problemas en el tamaño 16 donde las flechas son demasiado grandes, pero en el tamaño 14 es casi imperceptible. Los iconos de rama y LN se desbordan hacia la parte inferior, pero de alguna manera esto no me molesta.

Código fuente Pro para Powerline Light

ingrese la descripción de la imagen aquí

Esto resuelve casi por completo los problemas de los tamaños de flecha de la fuente mediana y la hace casi perfecta, aunque todavía existe el desbordamiento de iconos.

Source Code Pro

Cuando estaba investigando las opciones para las fuentes, hay un par de cosas que notas, algunos parches de fuente tienen el mínimo absoluto en detalles, si lo comparas con la lista de Código fuente Pro es bastante significativo. Source Code Pro es una fuente muy detallada y completa que se ha considerado que funciona en una gran variedad de escenarios. Este tipo de integridad es importante para casos extremos.

Utilizado como fuente parcheada, muestra casi a la perfección la barra vim-airline. El beneficio de tantas alternativas es el uso de la fuente de luz que tiene una visualización aún mejor de la barra vim-airline.

Source Code Pro también se encuentra en continuo desarrollo abierto en el repositorio Github de Adobe .

Manejo de la delicada flor de Windows (suponiendo GVim)

La fuente Powerline no funciona con Windows, por lo que su única opción es usar una fuente parcheada. Además, el script bash para instalar todas las fuentes no funciona, por lo que debe hacer lo mismo, git clonepero luego ir a cada uno de los directorios individuales e instalar las fuentes que desee.

Descargué todas las fuentes parcheadas de Source Code Pro y las instalé. Aunque los instale como fuentes individuales, se agregarán a Windows como una sola fuente 'Source Code Pro for Powerline' con un atributo separado para especificar el peso.

Luego (suponiendo GVim ) agregue esto a su .vimrc:

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

Si desea usar la fuente 'Light', use esto.

set guifont=Source_Code_Pro_Light:h15:cANSI

No tiene mucho sentido ya que no necesita incluir 'for Powerline', pero así es como funciona (lo descubrí configurando la fuente en GVim y luego la set guifont?utilicé para verificar qué usaba GVim). También descubrí que cuando usas GVim para cambiar la fuente, la representación de la fuente no es muy buena. Inicialmente descarté la fuente Light porque cuando cambié usando el menú de GVim se renderizó mal, pero si coloca lo siguiente en su .vimrcy reinicia GVim, debería verse encantador.

También es bueno que pueda configurar su indicador de DOS / Powershell con la misma fuente. Luego, con la fuente parcheada, también es posible hacer que Powerline funcione en Vim normal dentro de DOS.

Si no me crees, aquí está trabajando en Vim en Powershell:

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

icc97
fuente
3

Tuve el mismo problema después de reinstalar Vim: mis viejas fuentes parcheadas no eran compatibles con los nuevos símbolos de líneas aéreas.

Los símbolos antiguos también se mencionan en la ayuda ( :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 = '⭡'

Después de poner estas líneas en mi vimrc, todo salió bien.

Mattia72
fuente
¡votado! actualmente el mejor para mí, solo estos símbolos son un poco más altos
ryenus
1
Primero debe definir el diccionario: let g: airline_symbols = {}
PerseP