2021-09-14 03:45:44 +00:00
|
|
|
|
*lualine.txt* fast and easy to configure statusline plugin for neovim
|
2021-02-09 14:27:42 +00:00
|
|
|
|
|
2021-05-13 19:01:37 +00:00
|
|
|
|
==============================================================================
|
2021-09-14 03:45:44 +00:00
|
|
|
|
Table of Contents *lualine-table-of-contents*
|
|
|
|
|
|
|
|
|
|
1. lualine.nvim |lualine-lualine.nvim|
|
|
|
|
|
- Contributing |lualine-contributing|
|
|
|
|
|
- Performance compared to other plugins|lualine-performance-compared-to-other-plugins|
|
|
|
|
|
- Installation |lualine-installation|
|
|
|
|
|
- Usage and customization |lualine-usage-and-customization|
|
2021-05-13 19:01:37 +00:00
|
|
|
|
|
|
|
|
|
==============================================================================
|
2021-09-14 03:45:44 +00:00
|
|
|
|
1. lualine.nvim *lualine-lualine.nvim*
|
|
|
|
|
|
2021-09-21 03:52:12 +00:00
|
|
|
|
A blazing fast and easy to configure Neovim statusline written in Lua
|
2021-09-14 03:45:44 +00:00
|
|
|
|
|
|
|
|
|
`lualine.nvim` requires neovim 0.5
|
|
|
|
|
|
|
|
|
|
CONTRIBUTING *lualine-contributing*
|
|
|
|
|
|
|
|
|
|
Feel free to create an issue/pr if you want to see anything else implemented.
|
|
|
|
|
If you have some question or need help with configuration start a discussion
|
2021-10-22 04:57:04 +00:00
|
|
|
|
<https://github.com/nvim-lualine/lualine.nvim/discussions>.
|
2021-09-14 03:45:44 +00:00
|
|
|
|
|
|
|
|
|
Please read CONTRIBUTING.md <./CONTRIBUTING.md> before opening a pr. You can
|
|
|
|
|
also help with documentation in wiki
|
2021-10-22 04:57:04 +00:00
|
|
|
|
<https://github.com/nvim-lualine/lualine.nvim/wiki>
|
2021-09-14 03:45:44 +00:00
|
|
|
|
|
|
|
|
|
PERFORMANCE COMPARED TO OTHER PLUGINS*lualine-performance-compared-to-other-plugins*
|
|
|
|
|
|
|
|
|
|
Unlike other statusline plugins lualine loads only defined components, nothing
|
|
|
|
|
else.
|
|
|
|
|
|
|
|
|
|
Startup time performance measured with an amazing plugin
|
2021-09-20 11:46:38 +00:00
|
|
|
|
dstein64/vim-startuptime <https://github.com/dstein64/vim-startuptime>
|
2021-09-14 03:45:44 +00:00
|
|
|
|
|
2021-09-20 11:46:38 +00:00
|
|
|
|
All times are measured with clean `init.vim` with only `vim-startuptime`,
|
2021-09-20 13:40:38 +00:00
|
|
|
|
`vim-plug` and given statusline plugin installed. In control just
|
|
|
|
|
`vim-startuptime` and`vim-plug` is installed. And measured time is complete
|
|
|
|
|
startuptime of vim not time spent on specific plugin. These numbers are average
|
|
|
|
|
of 20 runs.
|
2021-09-14 03:45:44 +00:00
|
|
|
|
|
2021-09-20 11:46:38 +00:00
|
|
|
|
│control │ lualine │lightline│ airline │
|
|
|
|
|
│8.943 ms│10.140 ms│12.522 ms│38.850 ms│
|
2021-09-14 03:45:44 +00:00
|
|
|
|
|
|
|
|
|
|
2021-09-20 11:46:38 +00:00
|
|
|
|
Last Updated On: 20-09-2021
|
|
|
|
|
|
2021-09-14 03:45:44 +00:00
|
|
|
|
INSTALLATION *lualine-installation*
|
|
|
|
|
|
2021-09-14 06:58:46 +00:00
|
|
|
|
VIM-PLUG <HTTPS://GITHUB.COM/JUNEGUNN/VIM-PLUG> ~
|
2021-09-14 03:45:44 +00:00
|
|
|
|
|
|
|
|
|
>
|
2021-10-22 04:57:04 +00:00
|
|
|
|
Plug 'nvim-lualine/lualine.nvim'
|
2021-09-14 03:45:44 +00:00
|
|
|
|
" If you want to have icons in your statusline choose one of these
|
|
|
|
|
Plug 'kyazdani42/nvim-web-devicons'
|
|
|
|
|
<
|
|
|
|
|
|
|
|
|
|
|
2021-09-14 06:58:46 +00:00
|
|
|
|
PACKER.NVIM <HTTPS://GITHUB.COM/WBTHOMASON/PACKER.NVIM> ~
|
2021-09-14 03:45:44 +00:00
|
|
|
|
|
|
|
|
|
>
|
|
|
|
|
use {
|
2021-10-22 04:57:04 +00:00
|
|
|
|
'nvim-lualine/lualine.nvim',
|
2021-09-14 03:45:44 +00:00
|
|
|
|
requires = {'kyazdani42/nvim-web-devicons', opt = true}
|
|
|
|
|
}
|
|
|
|
|
<
|
|
|
|
|
|
|
|
|
|
|
2021-11-22 04:16:27 +00:00
|
|
|
|
You’ll also need to have a patched font if you want icons.
|
2021-09-20 11:46:38 +00:00
|
|
|
|
|
2021-09-14 03:45:44 +00:00
|
|
|
|
USAGE AND CUSTOMIZATION *lualine-usage-and-customization*
|
2021-02-09 14:27:42 +00:00
|
|
|
|
|
|
|
|
|
Lualine has sections as shown below.
|
2021-09-14 03:45:44 +00:00
|
|
|
|
|
2021-02-09 14:27:42 +00:00
|
|
|
|
>
|
|
|
|
|
+-------------------------------------------------+
|
2021-04-12 15:04:32 +00:00
|
|
|
|
| A | B | C X | Y | Z |
|
2021-02-09 14:27:42 +00:00
|
|
|
|
+-------------------------------------------------+
|
2021-09-14 03:45:44 +00:00
|
|
|
|
<
|
2021-02-09 14:27:42 +00:00
|
|
|
|
|
|
|
|
|
|
2021-09-14 03:45:44 +00:00
|
|
|
|
Each sections holds it’s components e.g. current vim’s mode.
|
|
|
|
|
|
2021-11-16 02:56:20 +00:00
|
|
|
|
*lualine-Configuring-lualine-in-init.vim*
|
|
|
|
|
|
|
|
|
|
Configuring lualine in init.vim All the examples below are in lua. You
|
|
|
|
|
can use the same examples in `.vim` file
|
|
|
|
|
by wrapping them in lua heredoc like
|
|
|
|
|
this:
|
2021-09-20 16:03:10 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
>
|
|
|
|
|
lua << END
|
|
|
|
|
require'lualine'.setup()
|
|
|
|
|
END
|
|
|
|
|
<
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
checkout `:help lua-heredoc`.
|
|
|
|
|
|
2021-11-16 02:56:20 +00:00
|
|
|
|
*lualine-Default-config*
|
2021-09-14 03:45:44 +00:00
|
|
|
|
|
2021-02-09 14:27:42 +00:00
|
|
|
|
>
|
2021-05-13 19:01:37 +00:00
|
|
|
|
require'lualine'.setup {
|
|
|
|
|
options = {
|
|
|
|
|
icons_enabled = true,
|
2021-08-14 08:39:10 +00:00
|
|
|
|
theme = 'auto',
|
2021-09-14 15:14:23 +00:00
|
|
|
|
component_separators = { left = '', right = ''},
|
|
|
|
|
section_separators = { left = '', right = ''},
|
2021-10-23 12:44:06 +00:00
|
|
|
|
disabled_filetypes = {},
|
2021-10-07 22:18:14 +00:00
|
|
|
|
always_divide_middle = true,
|
2021-05-13 19:01:37 +00:00
|
|
|
|
},
|
|
|
|
|
sections = {
|
|
|
|
|
lualine_a = {'mode'},
|
2021-12-09 17:18:11 +00:00
|
|
|
|
lualine_b = {'branch', 'diff', 'diagnostics'},
|
2021-05-13 19:01:37 +00:00
|
|
|
|
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 = {},
|
|
|
|
|
extensions = {}
|
|
|
|
|
}
|
2021-09-14 03:45:44 +00:00
|
|
|
|
<
|
2021-02-09 14:27:42 +00:00
|
|
|
|
|
2021-08-04 01:13:37 +00:00
|
|
|
|
|
2021-11-16 02:56:20 +00:00
|
|
|
|
Default config If you want to get your current lualine
|
|
|
|
|
config. you can do so with
|
|
|
|
|
|
2021-09-14 03:45:44 +00:00
|
|
|
|
|
|
|
|
|
>
|
|
|
|
|
require'lualine'.get_config()
|
2021-08-04 01:13:37 +00:00
|
|
|
|
<
|
2021-09-14 03:45:44 +00:00
|
|
|
|
|
|
|
|
|
|
2021-05-13 21:19:11 +00:00
|
|
|
|
------------------------------------------------------------------------------
|
2021-09-14 03:45:44 +00:00
|
|
|
|
|
2021-09-14 06:58:46 +00:00
|
|
|
|
STARTING LUALINE ~
|
2021-09-14 03:45:44 +00:00
|
|
|
|
|
2021-05-13 21:19:11 +00:00
|
|
|
|
>
|
|
|
|
|
require('lualine').setup()
|
2021-09-14 03:45:44 +00:00
|
|
|
|
<
|
|
|
|
|
|
2021-05-13 21:19:11 +00:00
|
|
|
|
|
2021-05-13 19:01:37 +00:00
|
|
|
|
------------------------------------------------------------------------------
|
2021-09-14 03:45:44 +00:00
|
|
|
|
|
2021-09-14 06:58:46 +00:00
|
|
|
|
SETTING A THEME ~
|
2021-09-14 03:45:44 +00:00
|
|
|
|
|
2021-02-09 14:27:42 +00:00
|
|
|
|
>
|
2021-04-12 15:04:32 +00:00
|
|
|
|
options = {theme = 'gruvbox'}
|
2021-09-14 03:45:44 +00:00
|
|
|
|
<
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
All available themes are listed in THEMES.md <./THEMES.md>
|
2021-02-09 14:27:42 +00:00
|
|
|
|
|
2021-09-14 03:45:44 +00:00
|
|
|
|
Please create a pr if you managed to port a popular theme before me, here is
|
|
|
|
|
how to do it <./CONTRIBUTING.md>.
|
|
|
|
|
|
2021-11-16 02:56:20 +00:00
|
|
|
|
*lualine-Customizing-themes*
|
2021-04-12 06:25:21 +00:00
|
|
|
|
|
|
|
|
|
>
|
|
|
|
|
local custom_gruvbox = require'lualine.themes.gruvbox'
|
2021-05-27 17:53:27 +00:00
|
|
|
|
-- Change the background of lualine_c section for normal mode
|
2021-04-12 06:25:21 +00:00
|
|
|
|
custom_gruvbox.normal.c.bg = '#112233' -- rgb colors are supported
|
|
|
|
|
require'lualine'.setup{
|
|
|
|
|
options = { theme = custom_gruvbox },
|
|
|
|
|
...
|
|
|
|
|
}
|
|
|
|
|
<
|
2021-09-14 03:45:44 +00:00
|
|
|
|
|
|
|
|
|
|
2021-11-16 02:56:20 +00:00
|
|
|
|
Customizing themes Theme structure is available here
|
2021-12-10 00:41:20 +00:00
|
|
|
|
<https://github.com/nvim-lualine/lualine.nvim/wiki/Writting-a-theme>
|
2021-11-16 02:56:20 +00:00
|
|
|
|
|
2021-04-12 06:25:21 +00:00
|
|
|
|
|
2021-05-13 19:01:37 +00:00
|
|
|
|
------------------------------------------------------------------------------
|
2021-02-09 14:27:42 +00:00
|
|
|
|
|
2021-09-14 06:58:46 +00:00
|
|
|
|
SEPARATORS ~
|
2021-09-14 03:45:44 +00:00
|
|
|
|
|
|
|
|
|
Lualine defines two kinds of separators:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- `section_separators` - separators between sections
|
|
|
|
|
- `components_separators` - separators between components in sections
|
|
|
|
|
|
|
|
|
|
|
2021-02-09 14:27:42 +00:00
|
|
|
|
>
|
2021-04-12 15:04:32 +00:00
|
|
|
|
options = {
|
2021-09-14 15:14:23 +00:00
|
|
|
|
section_separators = { left = '', right = ''},
|
|
|
|
|
component_separators = { left = '', right = ''}
|
2021-04-12 15:04:32 +00:00
|
|
|
|
}
|
2021-09-14 03:45:44 +00:00
|
|
|
|
<
|
|
|
|
|
|
|
|
|
|
|
2021-09-14 15:14:23 +00:00
|
|
|
|
Here left means it’ll be used for left sections (a, b, c) and right means
|
|
|
|
|
it’ll be used for right sections (x, y, z).
|
|
|
|
|
|
2021-11-16 02:56:20 +00:00
|
|
|
|
*lualine-Disabling-separators*
|
2021-02-09 14:27:42 +00:00
|
|
|
|
|
|
|
|
|
>
|
2021-04-12 15:04:32 +00:00
|
|
|
|
options = {section_separators = '', component_separators = ''}
|
2021-09-14 03:45:44 +00:00
|
|
|
|
<
|
2021-02-09 14:27:42 +00:00
|
|
|
|
|
2021-05-13 19:01:37 +00:00
|
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
|
2021-09-14 06:58:46 +00:00
|
|
|
|
CHANGING COMPONENTS IN LUALINE SECTIONS ~
|
2021-09-14 03:45:44 +00:00
|
|
|
|
|
|
|
|
|
>
|
|
|
|
|
sections = {lualine_a = {'mode'}}
|
|
|
|
|
<
|
|
|
|
|
|
|
|
|
|
|
2021-11-16 02:56:20 +00:00
|
|
|
|
*lualine-Available-components*
|
2021-09-14 03:45:44 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- `branch` (git branch)
|
2021-09-20 13:11:41 +00:00
|
|
|
|
- `buffers` (shows currently available buffers)
|
2021-09-14 03:45:44 +00:00
|
|
|
|
- `diagnostics` (diagnostics count from your prefered source)
|
2021-09-20 13:11:41 +00:00
|
|
|
|
- `diff` (git diff status)
|
2021-09-14 03:45:44 +00:00
|
|
|
|
- `encoding` (file encoding)
|
|
|
|
|
- `fileformat` (file format)
|
|
|
|
|
- `filename`
|
|
|
|
|
- `filesize`
|
|
|
|
|
- `filetype`
|
|
|
|
|
- `hostname`
|
|
|
|
|
- `location` (location in file in line:column format)
|
|
|
|
|
- `mode` (vim mode)
|
|
|
|
|
- `progress` (%progress in file)
|
2021-09-20 13:11:41 +00:00
|
|
|
|
- `tabs` (shows currently available tabs)
|
2021-09-14 03:45:44 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
*lualine-Custom-components*
|
|
|
|
|
|
|
|
|
|
LUA FUNCTIONS AS LUALINE COMPONENT
|
|
|
|
|
|
2021-02-09 14:27:42 +00:00
|
|
|
|
>
|
|
|
|
|
local function hello()
|
|
|
|
|
return [[hello world]]
|
|
|
|
|
end
|
2021-04-12 15:04:32 +00:00
|
|
|
|
sections = {lualine_a = {hello}}
|
2021-02-09 14:27:42 +00:00
|
|
|
|
<
|
2021-09-14 03:45:44 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
VIM FUNCTIONS AS LUALINE COMPONENT
|
|
|
|
|
|
2021-02-10 10:40:29 +00:00
|
|
|
|
>
|
2021-04-12 15:04:32 +00:00
|
|
|
|
sections = {lualine_a = {'FugitiveHead'}}
|
2021-02-10 10:40:29 +00:00
|
|
|
|
<
|
2021-09-14 03:45:44 +00:00
|
|
|
|
|
|
|
|
|
|
2021-11-16 02:56:20 +00:00
|
|
|
|
VIM’S STATUSLINE ITEMS AS LUALINE COMPONENT
|
2021-09-14 03:45:44 +00:00
|
|
|
|
|
2021-08-20 02:15:57 +00:00
|
|
|
|
>
|
|
|
|
|
sections = {lualine_c = {'%=', '%t%m', '%3p'}}
|
|
|
|
|
<
|
|
|
|
|
|
2021-02-10 10:40:29 +00:00
|
|
|
|
|
2021-09-14 03:45:44 +00:00
|
|
|
|
VIM VARIABLES AS LUALINE COMPONENT
|
|
|
|
|
|
|
|
|
|
Variables from `g:`, `v:`, `t:`, `w:`, `b:`, `o`, `go:`, `vo:`, `to:`, `wo:`,
|
|
|
|
|
`bo:` scopes can be used.
|
|
|
|
|
|
|
|
|
|
See `:h lua-vim-variables` and `:h lua-vim-options` if you are not sure what to
|
|
|
|
|
use.
|
|
|
|
|
|
2021-02-10 10:40:29 +00:00
|
|
|
|
>
|
2021-04-12 15:04:32 +00:00
|
|
|
|
sections = {lualine_a = {'g:coc_status', 'bo:filetype'}}
|
2021-02-10 10:40:29 +00:00
|
|
|
|
<
|
2021-04-12 06:14:43 +00:00
|
|
|
|
|
2021-09-14 03:45:44 +00:00
|
|
|
|
|
|
|
|
|
LUA EXPRESSIONS AS LUALINE COMPONENT
|
|
|
|
|
|
2021-12-06 02:10:59 +00:00
|
|
|
|
You can use any valid lua expression as a component including
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- oneliners
|
|
|
|
|
- global variables
|
|
|
|
|
- require statements
|
|
|
|
|
|
2021-09-14 03:45:44 +00:00
|
|
|
|
|
2021-04-12 06:14:43 +00:00
|
|
|
|
>
|
2021-09-14 03:45:44 +00:00
|
|
|
|
sections = {lualine_c = {"os.date('%a')", 'data', "require'lsp-status'.status()"}}
|
|
|
|
|
<
|
|
|
|
|
|
2021-02-15 18:09:12 +00:00
|
|
|
|
|
2021-05-13 19:01:37 +00:00
|
|
|
|
`data` is a global variable in this example.
|
2021-02-15 18:09:12 +00:00
|
|
|
|
|
2021-05-13 19:01:37 +00:00
|
|
|
|
------------------------------------------------------------------------------
|
2021-02-15 18:09:12 +00:00
|
|
|
|
|
2021-09-14 06:58:46 +00:00
|
|
|
|
COMPONENT OPTIONS ~
|
2021-09-14 03:45:44 +00:00
|
|
|
|
|
|
|
|
|
Component options can change the way a component behave. There are two kinds of
|
2021-12-06 02:10:59 +00:00
|
|
|
|
options:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- global options affecting all components
|
|
|
|
|
- local options affecting specific
|
|
|
|
|
|
2021-09-14 03:45:44 +00:00
|
|
|
|
|
|
|
|
|
Global options can be used as local options (can be applied to specific
|
|
|
|
|
components) but you cannot use local options as global. Global option used
|
|
|
|
|
locally overwrites the global, for example:
|
2021-04-06 14:03:41 +00:00
|
|
|
|
|
2021-05-13 19:01:37 +00:00
|
|
|
|
>
|
2021-09-14 03:45:44 +00:00
|
|
|
|
require'lualine'.setup {
|
2021-09-14 15:14:23 +00:00
|
|
|
|
options = {fmt = string.lower},
|
|
|
|
|
sections = {lualine_a = {
|
|
|
|
|
{'mode', fmt = function(str) return str:sub(1,1) end}},
|
|
|
|
|
lualine_b = {'branch'}}
|
2021-09-14 03:45:44 +00:00
|
|
|
|
}
|
|
|
|
|
<
|
2021-05-02 17:16:03 +00:00
|
|
|
|
|
2021-04-12 15:04:32 +00:00
|
|
|
|
|
2021-09-14 15:14:23 +00:00
|
|
|
|
`mode` will be formatted with the passed fa=unction so only first char will be
|
|
|
|
|
shown. On the other hand branch will be formatted with global formatter
|
|
|
|
|
`string.lower` so it will be showed in lower case.
|
2021-09-14 03:45:44 +00:00
|
|
|
|
|
|
|
|
|
*lualine-Available-options*
|
|
|
|
|
|
2021-11-11 10:12:13 +00:00
|
|
|
|
*lualine-Global-options*
|
|
|
|
|
|
|
|
|
|
Global options These are `options` that are used in
|
2021-09-21 06:26:19 +00:00
|
|
|
|
options table. They set behavior of
|
|
|
|
|
lualine.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Values set here are treated as default for other options that work in component
|
|
|
|
|
level.
|
|
|
|
|
|
|
|
|
|
for example even though `icons_enabled` is a general component option. you can
|
|
|
|
|
set `icons_enabled` to `false` and icons will be disabled on all component. You
|
|
|
|
|
can still overwrite defaults set in option table by specifying the option value
|
|
|
|
|
in component.
|
|
|
|
|
|
2021-05-13 19:01:37 +00:00
|
|
|
|
>
|
2021-09-14 03:45:44 +00:00
|
|
|
|
options = {
|
2021-09-21 06:26:19 +00:00
|
|
|
|
theme = 'auto', -- lualine theme
|
|
|
|
|
component_separators = {left = '', right = ''},
|
|
|
|
|
section_separators = {left = '', right = ''},
|
|
|
|
|
disabled_filetypes = {}, -- filetypes to diable lualine on
|
2021-10-07 22:18:14 +00:00
|
|
|
|
always_divide_middle = true, -- When true left_sections (a,b,c) can't
|
|
|
|
|
-- take over entiee statusline even
|
|
|
|
|
-- when none of section x, y, z is present.
|
2021-09-14 03:45:44 +00:00
|
|
|
|
}
|
|
|
|
|
<
|
|
|
|
|
|
|
|
|
|
|
2021-11-16 02:56:20 +00:00
|
|
|
|
*lualine-General-component-options*
|
2021-09-21 06:26:19 +00:00
|
|
|
|
|
2021-11-16 02:56:20 +00:00
|
|
|
|
General component options These are options that control behavior
|
2021-11-11 10:12:13 +00:00
|
|
|
|
at component level and are available for
|
|
|
|
|
all components.
|
|
|
|
|
|
2021-09-14 03:45:44 +00:00
|
|
|
|
|
2021-05-13 19:01:37 +00:00
|
|
|
|
>
|
2021-09-14 03:45:44 +00:00
|
|
|
|
sections = {
|
|
|
|
|
lualine_a = {
|
|
|
|
|
{
|
|
|
|
|
'mode',
|
2021-09-21 06:26:19 +00:00
|
|
|
|
icons_enabled = true, -- displays icons in alongside component
|
2021-09-14 03:45:44 +00:00
|
|
|
|
icon = nil, -- displays icon in front of the component
|
|
|
|
|
separator = nil, -- Determines what separator to use for the component.
|
|
|
|
|
-- when a string is given it's treated as component_separator.
|
|
|
|
|
-- When a table is given it's treated as section_separator.
|
|
|
|
|
-- This options can be used to set colored separators
|
2021-09-14 15:14:23 +00:00
|
|
|
|
-- arround component. Option need to be set like
|
|
|
|
|
-- `separator = { left = '', right = ''}`.
|
|
|
|
|
-- Where left will be placed in left side of component
|
|
|
|
|
-- and right will be placed in right side of component
|
2021-09-14 03:45:44 +00:00
|
|
|
|
-- Passing empty string disables that separator
|
2021-09-14 15:14:23 +00:00
|
|
|
|
cond = nil, -- condition function, component is loaded when function returns true
|
2021-11-11 10:12:13 +00:00
|
|
|
|
-- custom color for the component in format
|
|
|
|
|
-- here '|' refers to or meaning a different acceptable format for that placeholder
|
|
|
|
|
-- 'highlight_group_name' | {fg = '#rrggbb'|cterm_value(0-255)|'color_name(red)', bg= '#rrggbb', gui='style'}
|
|
|
|
|
-- Note: all other color options including themes accept like diff_color same color values
|
|
|
|
|
-- Example
|
|
|
|
|
-- color = {fg = '#ffaa88', bg = 'grey', gui='italic,bold'},
|
|
|
|
|
-- color = {fg = 204} -- when fg/bg is skiped they default to themes fg/bg
|
|
|
|
|
-- color = 'WarningMsg'
|
2021-09-14 03:45:44 +00:00
|
|
|
|
-- or highlight group
|
|
|
|
|
-- color = "WarningMsg"
|
2021-11-11 10:12:13 +00:00
|
|
|
|
color = nil, -- default is themes color for that section and mode
|
2021-09-14 03:45:44 +00:00
|
|
|
|
-- Type option specifies what type a component is.
|
|
|
|
|
-- When type is omitted lualine will guess it.
|
|
|
|
|
-- Available types [format: type_name(example)]
|
|
|
|
|
-- mod(branch/filename), stl(%f/%m), var(g:coc_status/bo:modifiable),
|
2021-10-11 07:47:37 +00:00
|
|
|
|
-- lua_expr(lua expressions), vim_fun(viml function name)
|
|
|
|
|
-- lua_expr is short for lua-expression and vim_fun is short fror vim-function
|
2021-09-14 03:45:44 +00:00
|
|
|
|
type = nil,
|
2021-09-21 06:26:19 +00:00
|
|
|
|
padding = 1, -- adds padding to the left and right of components
|
|
|
|
|
-- padding can be specified to left or right separately like
|
|
|
|
|
-- padding = { left = left_padding, right = right_padding }
|
|
|
|
|
fmt = nil, -- format function, formats component's output
|
2021-09-14 03:45:44 +00:00
|
|
|
|
}
|
2021-05-13 19:01:37 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
2021-09-14 03:45:44 +00:00
|
|
|
|
<
|
|
|
|
|
|
|
|
|
|
|
2021-11-16 02:56:20 +00:00
|
|
|
|
*lualine-Component-specific-options*
|
|
|
|
|
|
|
|
|
|
Component specific options These are options that are available on
|
|
|
|
|
specific components. For example you
|
|
|
|
|
have option on `diagnostics` component
|
|
|
|
|
to specify what your diagnostic sources
|
|
|
|
|
will be.
|
2021-09-21 06:26:19 +00:00
|
|
|
|
|
2021-09-14 03:45:44 +00:00
|
|
|
|
|
2021-09-20 13:11:41 +00:00
|
|
|
|
*lualine-buffers-component-options*
|
|
|
|
|
|
|
|
|
|
>
|
|
|
|
|
sections = {
|
|
|
|
|
lualine_a = {
|
|
|
|
|
{
|
|
|
|
|
'buffers',
|
|
|
|
|
show_filename_only = true, -- shows shortened relative path when false
|
2021-12-06 02:10:59 +00:00
|
|
|
|
show_modified_status = true, -- shows indicator then buffer is modified
|
2021-11-13 13:44:35 +00:00
|
|
|
|
mode = 0, -- 0 shows buffer name
|
|
|
|
|
-- 1 buffer index (bufnr)
|
|
|
|
|
-- 2 shows buffer name + buffer index (bufnr)
|
2021-09-20 13:11:41 +00:00
|
|
|
|
max_length = vim.o.columns * 2 / 3, -- maximum width of buffers component
|
2021-11-11 10:12:13 +00:00
|
|
|
|
-- can also be a function that returns value of max_length dynamicaly
|
2021-09-20 13:11:41 +00:00
|
|
|
|
filetype_names = {
|
|
|
|
|
TelescopePrompt = 'Telescope',
|
|
|
|
|
dashboard = 'Dashboard',
|
|
|
|
|
packer = 'Packer',
|
|
|
|
|
fzf = 'FZF',
|
2021-09-20 15:47:25 +00:00
|
|
|
|
alpha = 'Alpha'
|
2021-09-20 13:11:41 +00:00
|
|
|
|
}, -- shows specific buffer name for that filetype ( { `filetype` = `buffer_name`, ... } )
|
|
|
|
|
buffers_color = {
|
2021-11-11 10:12:13 +00:00
|
|
|
|
-- Same values like general color option can be used here.
|
2021-12-22 14:56:49 +00:00
|
|
|
|
active = 'lualine_{section}_normal', -- color for active buffer
|
2021-11-11 10:12:13 +00:00
|
|
|
|
inactive = 'lualine_{section}_inactive', -- color for inactive buffer
|
2021-09-20 13:11:41 +00:00
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
<
|
|
|
|
|
|
|
|
|
|
|
2021-09-14 03:45:44 +00:00
|
|
|
|
*lualine-diagnostics-component-options*
|
|
|
|
|
|
|
|
|
|
>
|
|
|
|
|
sections = {
|
|
|
|
|
lualine_a = {
|
|
|
|
|
{
|
|
|
|
|
'diagnostics',
|
|
|
|
|
-- table of diagnostic sources, available sources:
|
2021-12-09 17:18:11 +00:00
|
|
|
|
-- 'nvim_lsp', 'nvim_diagnostic', 'coc', 'ale', 'vim_lsp'
|
2021-09-14 03:45:44 +00:00
|
|
|
|
-- Or a function that returns a table like
|
2021-09-17 08:40:10 +00:00
|
|
|
|
-- {error=error_cnt, warn=warn_cnt, info=info_cnt, hint=hint_cnt}
|
2021-12-09 17:18:11 +00:00
|
|
|
|
sources = {'nvim_diagnostic', 'coc'},
|
2021-09-14 03:45:44 +00:00
|
|
|
|
-- displays diagnostics from defined severity
|
|
|
|
|
sections = {'error', 'warn', 'info', 'hint'},
|
2021-09-14 15:14:23 +00:00
|
|
|
|
diagnostics_color = {
|
2021-11-11 10:12:13 +00:00
|
|
|
|
-- Same values like general color option can be used here.
|
|
|
|
|
error = 'DiagnosticError', -- changes diagnostic's error color
|
|
|
|
|
warn = 'DiagnosticWarn', -- changes diagnostic's warn color
|
2021-12-09 17:18:11 +00:00
|
|
|
|
info = 'DiagnosticInfo', -- changes diagnostic's info color
|
|
|
|
|
hint = 'DiagnosticHint', -- changes diagnostic's hint color
|
2021-11-20 05:06:07 +00:00
|
|
|
|
},
|
|
|
|
|
symbols = {error = 'E', warn = 'W', info = 'I', hint = 'H'},
|
2021-10-26 08:34:41 +00:00
|
|
|
|
colored = true, -- displays diagnostics status in color if set to true
|
2021-09-14 03:45:44 +00:00
|
|
|
|
update_in_insert = false, -- Update diagnostics in insert mode
|
2021-10-21 11:55:35 +00:00
|
|
|
|
always_visible = false, -- Show diagnostics even if count is 0, boolean or function returning boolean
|
2021-09-14 03:45:44 +00:00
|
|
|
|
}
|
2021-05-13 19:01:37 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
2021-09-14 03:45:44 +00:00
|
|
|
|
<
|
|
|
|
|
|
|
|
|
|
|
2021-10-26 08:34:41 +00:00
|
|
|
|
*lualine-diff-component-options*
|
2021-04-06 14:03:41 +00:00
|
|
|
|
|
|
|
|
|
>
|
2021-09-14 03:45:44 +00:00
|
|
|
|
sections = {
|
|
|
|
|
lualine_a = {
|
|
|
|
|
{
|
2021-10-26 08:34:41 +00:00
|
|
|
|
'diff',
|
|
|
|
|
colored = true, -- displays diff status in color if set to true
|
|
|
|
|
-- all colors are in format #rrggbb
|
|
|
|
|
diff_color = {
|
2021-11-11 10:12:13 +00:00
|
|
|
|
-- Same values like general color option can be used here.
|
|
|
|
|
added = 'DiffAdd', -- changes diff's added color
|
|
|
|
|
modified = 'DiffChange', -- changes diff's modified color
|
|
|
|
|
removed = 'DiffDelete', -- changes diff's removed color you
|
2021-11-20 05:06:07 +00:00
|
|
|
|
},
|
|
|
|
|
symbols = {added = '+', modified = '~', removed = '-'}, -- changes diff symbols
|
2021-10-26 08:34:41 +00:00
|
|
|
|
source = nil, -- A function that works as a data source for diff.
|
|
|
|
|
-- it must return a table like
|
|
|
|
|
-- {added = add_count, modified = modified_count, removed = removed_count }
|
|
|
|
|
-- Or nil on failure. Count <= 0 won't be displayed.
|
2021-09-14 03:45:44 +00:00
|
|
|
|
}
|
2021-04-06 14:03:41 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
2021-09-14 03:45:44 +00:00
|
|
|
|
<
|
|
|
|
|
|
|
|
|
|
|
2021-10-28 03:51:44 +00:00
|
|
|
|
*lualine-fileformat-component-options*
|
|
|
|
|
|
|
|
|
|
>
|
|
|
|
|
sections = {
|
|
|
|
|
lualine_a = {
|
|
|
|
|
{
|
|
|
|
|
'fileformat',
|
|
|
|
|
symbols = {
|
|
|
|
|
unix = '', -- e712
|
|
|
|
|
dos = '', -- e70f
|
|
|
|
|
mac = '', -- e711
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
<
|
|
|
|
|
|
|
|
|
|
|
2021-10-26 08:34:41 +00:00
|
|
|
|
*lualine-filename-component-options*
|
2021-04-06 14:03:41 +00:00
|
|
|
|
|
|
|
|
|
>
|
2021-09-14 03:45:44 +00:00
|
|
|
|
sections = {
|
|
|
|
|
lualine_a = {
|
|
|
|
|
{
|
2021-10-26 08:34:41 +00:00
|
|
|
|
'filename',
|
2021-12-18 12:49:41 +00:00
|
|
|
|
file_status = true, -- displays file status (readonly status, modified status)
|
|
|
|
|
path = 0, -- 0 = just filename, 1 = relative path, 2 = absolute path
|
|
|
|
|
shorting_target = 40, -- Shortens path to leave 40 space in the window
|
|
|
|
|
-- for other components. Terrible name any suggestions?
|
|
|
|
|
symbols = {
|
|
|
|
|
modified = '[+]', -- when the file was modified
|
|
|
|
|
readonly = '[-]', -- if the file is not modifiable or readonly
|
|
|
|
|
unnamed = '[No Name]', -- default display name for unnamed buffers
|
|
|
|
|
}
|
2021-09-14 03:45:44 +00:00
|
|
|
|
}
|
2021-05-13 19:01:37 +00:00
|
|
|
|
}
|
2021-04-06 14:03:41 +00:00
|
|
|
|
}
|
2021-05-12 09:17:51 +00:00
|
|
|
|
<
|
2021-05-11 12:55:18 +00:00
|
|
|
|
|
2021-09-14 03:45:44 +00:00
|
|
|
|
|
2021-10-26 08:34:41 +00:00
|
|
|
|
*lualine-filetype-component-options*
|
2021-09-14 03:45:44 +00:00
|
|
|
|
|
2021-02-15 18:09:12 +00:00
|
|
|
|
>
|
2021-09-14 03:45:44 +00:00
|
|
|
|
sections = {
|
|
|
|
|
lualine_a = {
|
|
|
|
|
{
|
2021-10-26 08:34:41 +00:00
|
|
|
|
'filetype',
|
|
|
|
|
colored = true, -- displays filetype icon in color if set to `true
|
|
|
|
|
icon_only = false -- Display only icon for filetype
|
2021-09-14 03:45:44 +00:00
|
|
|
|
}
|
2021-04-12 15:04:32 +00:00
|
|
|
|
}
|
2021-02-15 18:09:12 +00:00
|
|
|
|
}
|
2021-09-14 03:45:44 +00:00
|
|
|
|
<
|
|
|
|
|
|
2021-03-06 15:03:00 +00:00
|
|
|
|
|
2021-09-20 13:11:41 +00:00
|
|
|
|
*lualine-tabs-component-options*
|
|
|
|
|
|
|
|
|
|
>
|
|
|
|
|
sections = {
|
|
|
|
|
lualine_a = {
|
|
|
|
|
{
|
|
|
|
|
'tabs',
|
|
|
|
|
max_length = vim.o.columns / 3, -- maximum width of tabs component
|
2021-11-11 10:12:13 +00:00
|
|
|
|
-- can also be a function that returns value of max_length dynamicaly
|
2021-09-20 13:11:41 +00:00
|
|
|
|
mode = 0, -- 0 shows tab_nr
|
|
|
|
|
-- 1 shows tab_name
|
|
|
|
|
-- 2 shows tab_nr + tab_name
|
|
|
|
|
tabs_color = {
|
2021-11-11 10:12:13 +00:00
|
|
|
|
-- Same values like general color option can be used here.
|
|
|
|
|
active = 'lualine_{section}_normal', -- color for active tab
|
|
|
|
|
inactive = 'lualine_{section}_inactive', -- color for inactive tab
|
2021-09-20 13:11:41 +00:00
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
<
|
|
|
|
|
|
|
|
|
|
|
2021-05-13 19:01:37 +00:00
|
|
|
|
------------------------------------------------------------------------------
|
2021-03-06 15:03:00 +00:00
|
|
|
|
|
2021-09-14 06:58:46 +00:00
|
|
|
|
TABLINE ~
|
2021-09-14 03:45:44 +00:00
|
|
|
|
|
|
|
|
|
You can use lualine to display components in tabline. The configuration for
|
|
|
|
|
tabline sections is exactly the same as for statusline.
|
|
|
|
|
|
2021-03-06 15:03:00 +00:00
|
|
|
|
>
|
2021-04-12 15:04:32 +00:00
|
|
|
|
tabline = {
|
2021-05-13 19:01:37 +00:00
|
|
|
|
lualine_a = {},
|
|
|
|
|
lualine_b = {'branch'},
|
|
|
|
|
lualine_c = {'filename'},
|
|
|
|
|
lualine_x = {},
|
|
|
|
|
lualine_y = {},
|
2021-09-14 03:45:44 +00:00
|
|
|
|
lualine_z = {}
|
2021-03-06 15:03:00 +00:00
|
|
|
|
}
|
2021-02-15 18:09:12 +00:00
|
|
|
|
<
|
2021-03-06 15:03:00 +00:00
|
|
|
|
|
2021-09-14 03:45:44 +00:00
|
|
|
|
|
|
|
|
|
This will show branch and filename component in top of neovim inside tabline.
|
|
|
|
|
|
2021-09-20 13:11:41 +00:00
|
|
|
|
lualine also provides 2 components buffers & tabs that you can use to get more
|
|
|
|
|
traditional tabline/bufferline.
|
|
|
|
|
|
|
|
|
|
>
|
|
|
|
|
tabline = {
|
|
|
|
|
lualine_a = {'buffers'},
|
|
|
|
|
lualine_b = {'branch'},
|
|
|
|
|
lualine_c = {'filename'},
|
|
|
|
|
lualine_x = {},
|
|
|
|
|
lualine_y = {},
|
|
|
|
|
lualine_z = {'tabs'}
|
|
|
|
|
}
|
|
|
|
|
<
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
You can also completely move your statusline to tabline by configuring
|
2021-09-14 03:45:44 +00:00
|
|
|
|
`lualine.tabline` and disabling `lualine.sections` and
|
|
|
|
|
`lualine.inactive_sections`.
|
|
|
|
|
|
2021-03-06 15:03:00 +00:00
|
|
|
|
>
|
2021-04-12 15:04:32 +00:00
|
|
|
|
tabline = {
|
2021-03-06 15:03:00 +00:00
|
|
|
|
......
|
2021-09-14 03:45:44 +00:00
|
|
|
|
},
|
|
|
|
|
sections = {},
|
|
|
|
|
inactive_sections = {},
|
|
|
|
|
<
|
2021-02-09 14:27:42 +00:00
|
|
|
|
|
2021-09-14 03:45:44 +00:00
|
|
|
|
|
2021-09-20 13:11:41 +00:00
|
|
|
|
If you want a more sophisticated tabline you can use other tabline plugins with
|
|
|
|
|
lualine too. For example:
|
2021-08-09 10:36:52 +00:00
|
|
|
|
|
|
|
|
|
|
2021-09-14 03:45:44 +00:00
|
|
|
|
- nvim-bufferline <https://github.com/akinsho/nvim-bufferline.lua>
|
|
|
|
|
- tabline.nvim <https://github.com/kdheepak/tabline.nvim>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
tabline.nvim even uses lualines theme by default 🙌 You can find a bigger
|
|
|
|
|
list here <https://github.com/rockerBOO/awesome-neovim#tabline>
|
2021-08-09 10:36:52 +00:00
|
|
|
|
|
2021-05-13 19:01:37 +00:00
|
|
|
|
------------------------------------------------------------------------------
|
2021-09-14 03:45:44 +00:00
|
|
|
|
|
2021-09-14 06:58:46 +00:00
|
|
|
|
EXTENSIONS ~
|
2021-02-09 14:27:42 +00:00
|
|
|
|
|
|
|
|
|
Lualine extensions change statusline appearance for a window/buffer with
|
2021-05-13 19:01:37 +00:00
|
|
|
|
specified filetypes.
|
2021-02-09 14:27:42 +00:00
|
|
|
|
|
2021-09-20 13:11:41 +00:00
|
|
|
|
By default no extensions are loaded to improve performance. You can load
|
2021-09-14 03:45:44 +00:00
|
|
|
|
extensions with:
|
|
|
|
|
|
2021-02-09 14:27:42 +00:00
|
|
|
|
>
|
2021-05-13 19:01:37 +00:00
|
|
|
|
extensions = {'quickfix'}
|
2021-02-09 14:27:42 +00:00
|
|
|
|
<
|
2021-09-14 03:45:44 +00:00
|
|
|
|
|
|
|
|
|
|
2021-11-16 02:56:20 +00:00
|
|
|
|
*lualine-Available-extensions*
|
2021-09-14 03:45:44 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- chadtree
|
2021-10-26 03:21:38 +00:00
|
|
|
|
- fern
|
2021-09-14 03:45:44 +00:00
|
|
|
|
- fugitive
|
|
|
|
|
- fzf
|
|
|
|
|
- nerdtree
|
|
|
|
|
- nvim-tree
|
|
|
|
|
- quickfix
|
2021-09-19 10:42:25 +00:00
|
|
|
|
- toggleterm
|
2021-11-28 11:00:34 +00:00
|
|
|
|
- symbols-outline
|
2021-09-14 03:45:44 +00:00
|
|
|
|
|
|
|
|
|
|
2021-11-16 02:56:20 +00:00
|
|
|
|
*lualine-Custom-extensions*
|
|
|
|
|
|
|
|
|
|
Custom extensions You can define your own extensions. If
|
|
|
|
|
you think an extension might be useful
|
|
|
|
|
for others then please submit a pr.
|
2021-09-14 03:45:44 +00:00
|
|
|
|
|
|
|
|
|
|
2021-05-14 18:24:54 +00:00
|
|
|
|
>
|
2021-11-26 03:59:20 +00:00
|
|
|
|
local my_extension = {sections = {lualine_a = {'mode'}}, filetypes = {'lua'}}
|
2021-05-14 18:24:54 +00:00
|
|
|
|
require'lualine'.setup {extensions = {my_extension}}
|
2021-09-14 03:45:44 +00:00
|
|
|
|
<
|
|
|
|
|
|
2021-05-13 19:01:37 +00:00
|
|
|
|
|
2021-05-13 21:19:11 +00:00
|
|
|
|
------------------------------------------------------------------------------
|
2021-09-14 03:45:44 +00:00
|
|
|
|
|
2021-09-14 06:58:46 +00:00
|
|
|
|
DISABLING LUALINE ~
|
2021-05-13 19:01:37 +00:00
|
|
|
|
|
|
|
|
|
You can disable lualine for specific filetypes
|
|
|
|
|
|
2021-09-14 03:45:44 +00:00
|
|
|
|
>
|
|
|
|
|
options = {disabled_filetypes = {'lua'}}
|
|
|
|
|
<
|
|
|
|
|
|
|
|
|
|
|
2021-09-23 07:29:41 +00:00
|
|
|
|
|
|
|
|
|
|
2021-09-14 03:45:44 +00:00
|
|
|
|
Generated by panvimdoc <https://github.com/kdheepak/panvimdoc>
|
|
|
|
|
|
|
|
|
|
vim:tw=78:ts=8:noet:ft=help:norl:
|