:Lualine

Lualine es una barra de estado muy personalizable y muy rápida, escrita en Lua.

En el apartado de plugins habiamos instalado este plugin y lo habíamos activado, pero no habíamos profundizado bastante en cómo configurarlo.

Pero antes de eso, veamos qué información nos muestra por defecto.

Aspecto por defecto
de Lualine

Vamos por partes, como diría Jack el Destripador. En este caso de izquierda a derecha:

Como diría cierta señora del APM?!:

¡Muy bonito! ¡Me gusta!

Antes de realizar la configuración, me gustaría comentar que para poder visualizar bien los símbolos de Lualine, hay que utilizar una nerd font de esas que tienen ligaduras y un montón de símbolos que están muy guapas para los desarrolladores.

Vamo a configurar Lualine

Vamos al archivo lualine-cfg.lua del directorio plugins y vamos a añadir la configuración por defecto dentro de la parte de setup():

require("lualine").setup{
  options = {
    icons_enabled = true,
    theme = 'auto',

    component_separators = { left = '', right = ''},
    section_separators = { left = '', right = ''},
    disabled_filetypes = {
      statusline = {},
      winbar = {},
    },
    ignore_focus = {},
    always_divide_middle = true,
    globalstatus = false,
    refresh = {
      statusline = 1000,
      tabline = 1000,
      winbar = 1000,
    }
  },
  sections = {
    lualine_a = {'mode'},
    lualine_b = {'branch', 'diff', 'diagnostics'},
    lualine_c = {'filename'},
    lualine_x = {'encoding', 'fileformat', 'filetype'},
    lualine_y = {'progress'},
    lualine_z = {'location'}
  },
  inactive_sections = {
    lualine_a = {},
    lualine_b = {},
    lualine_c = {'filename'},
    lualine_x = {'location'},
    lualine_y = {},
    lualine_z = {}
  },
  tabline = {},
  winbar = {},
  inactive_winbar = {},
  extensions = {}
}

Añadir barra superior de pestañas y búferes

Hay una parte muy interesante, que es la del tabline, que nos permite añadir una barra arriba con el nombre del archivo del búfer o la pestaña. Vamos a modificar esa parte del archivo escribiendo esto:

tabline = {
    lualine_a = {"buffers"}
}

Cerramos Neovim, y lo volvemos a abrir.

Tabline activado

En la imagen de arriba se muestran las pestañas o búferes que están abiertos, lo cuál está muy bien.

Cambiar el esquema de colores

Vamos ahora a cambiar el esquema de colores, que el que tiene está mu feo. Se lo vamos a cambiar a “powerline_dark”.

theme = "powerline_dark"

Cerramos Neovim, y lo volvemos a abrir.

Cambiado al tema Powerline Dark

¡Este tema es mucho mejor! ¡Claro que sí, guapi!

¿Quieres ver más temas para Lualine? Pues en este enlace podrás ver la cantidad de temas que soporta, e incluso puedes crear el tuyo propio.

Cambiar los separadores

Habrás visto que los elementos separadores de sección y componentes usan un triángulo. Vamos a cambiarlo por un círculo. Abrimos lualine-cfg.lua y editamos la parte de los separadores:

section_separators = { left = '', right = '' },
component_separators = { left = '', right = '' },
Bordes cambiados

¡No está mal, Manolo!

Cambiar elementos de la barra de estado

Vamos a suponer ahora que queremos quitar la codificación, el icono del S.O. y el progreso del cursor.

Abrimos el archivo lualine-cfg.lua y vamos a efectuar el siguiente cambio:

    lualine_x = {},
    lualine_y = {'filetype'},
    lualine_z = {'location'}

Lo de siempre: cerramos Neovim y lo volvemos a abrir.

Estado cambiado

Ahora en la derecha solo sale el formato del archivo y la posición del cursor (número de línea y columna)

Que Lualine no aparezca en el NeoTree

Queda bastante feo que la barra de estado aparezca en el NeoTree. Para eso vamos a editar otra vez el archivo lualine-cfg.lua, y modificamos esto:

disabled_filetypes = {
    statusline = {"neo-tree"},
    winbar = {},
},

Cerramos Neovim y lo volvemos a abrir. Abrimos el NeoTree y…

NeoTree sin Lualine

¡Ya no se ve la barra de estado en NeoTree!

Extensiones de terceros soportadas

A Lualine se le pueden añadir extensiones de otros plugins, siempre y cuando estén instaladas. Aquí hay un listado de las mismas:

El usuario también puede crear sus propias extensiones si es muy duch@ con Lua.