Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

🍨 Soothing pastel theme for (Neo)vim

License

NotificationsYou must be signed in to change notification settings

catppuccin/nvim

Repository files navigation

Logo
Catppuccin for(Neo)vim

This port ofCatppuccin is special because it was the first one and the one that originated the project itself. Given this, it's important to acknowledge that it all didn't come to be what it is now out of nowhere. So, if you are interested in knowing more about the initial stages of the theme, you can find it under thev0.1 tag

Flavours

Latte
Frappe
Macchiato
Mocha

Bake your own flavour! Here are someconfig from our community:(background source)

nvimwalk-custom

Features

Installation

lazy.nvim

{"catppuccin/nvim",name="catppuccin",priority=1000 }

mini.deps

add({source="catppuccin/nvim",name="catppuccin"})

packer.nvim

use {"catppuccin/nvim",as="catppuccin"}

vim-plug

Plug'catppuccin/nvim', {'as':'catppuccin' }

Usage

colorscheme catppuccin" catppuccin-latte, catppuccin-frappe, catppuccin-macchiato, catppuccin-mocha
vim.cmd.colorscheme"catppuccin"

Configuration

There is no need to callsetup if you don't want to change the default options and settings.

require("catppuccin").setup({flavour="auto",-- latte, frappe, macchiato, mochabackground= {-- :h backgroundlight="latte",dark="mocha",    },transparent_background=false,-- disables setting the background color.show_end_of_buffer=false,-- shows the '~' characters after the end of buffersterm_colors=false,-- sets terminal colors (e.g. `g:terminal_color_0`)dim_inactive= {enabled=false,-- dims the background color of inactive windowshade="dark",percentage=0.15,-- percentage of the shade to apply to the inactive window    },no_italic=false,-- Force no italicno_bold=false,-- Force no boldno_underline=false,-- Force no underlinestyles= {-- Handles the styles of general hi groups (see `:h highlight-args`):comments= {"italic"},-- Change the style of commentsconditionals= {"italic"},loops= {},functions= {},keywords= {},strings= {},variables= {},numbers= {},booleans= {},properties= {},types= {},operators= {},-- miscs = {}, -- Uncomment to turn off hard-coded styles    },color_overrides= {},custom_highlights= {},default_integrations=true,integrations= {cmp=true,gitsigns=true,nvimtree=true,treesitter=true,notify=false,mini= {enabled=true,indentscope_color="",        },-- For more plugins integrations please scroll down (https://github.com/catppuccin/nvim#integrations)    },})-- setup must be called before loadingvim.cmd.colorscheme"catppuccin"

Customize highlights

Get catppuccin colors

locallatte=require("catppuccin.palettes").get_palette"latte"localfrappe=require("catppuccin.palettes").get_palette"frappe"localmacchiato=require("catppuccin.palettes").get_palette"macchiato"localmocha=require("catppuccin.palettes").get_palette"mocha"

Returns a table where the key is the name of the color and the value is its hex value corresponding to each flavour.

Overwriting colors

Colors can be overwritten usingcolor_overrides in the setting, checkout#323 for inspirations:

require("catppuccin").setup {color_overrides= {all= {text="#ffffff",        },latte= {base="#ff0000",mantle="#242424",crust="#474747",        },frappe= {},macchiato= {},mocha= {},    }}

Note

For more information check out ourstyle-guide

Overwriting highlight groups

Global highlight groups can be overwritten in the setting, for example:

require("catppuccin").setup {custom_highlights=function(colors)return {Comment= {fg=colors.flamingo },TabLineSel= {bg=colors.pink },CmpBorder= {fg=colors.surface2 },Pmenu= {bg=colors.none },        }end}

Per flavour highlight groups can also be overwritten in the setting, for example:

require("catppuccin").setup {highlight_overrides= {all=function(colors)return {NvimTreeNormal= {fg=colors.none },CmpBorder= {fg="#3e4145"},            }end,latte=function(latte)return {Normal= {fg=latte.base },            }end,frappe=function(frappe)return {                ["@comment"]= {fg=frappe.surface2,style= {"italic"} },            }end,macchiato=function(macchiato)return {LineNr= {fg=macchiato.overlay1 },            }end,mocha=function(mocha)return {Comment= {fg=mocha.flamingo },            }end,    },}

Integrations

Catppuccin provides theme support for other plugins in the Neovim ecosystem and extended Neovim functionality throughintegrations.

To enable/disable an integration you just need to set it to true/false, for example:

require("catppuccin").setup({integrations= {cmp=true,gitsigns=true,nvimtree=true,treesitter=true,notify=false,mini= {enabled=true,indentscope_color="",        },    }})

Some integrations are enabled by default, you can control this behaviour withdefault_integrations option.

require("catppuccin").setup({default_integrations=false,})

Below is a list of supported plugins and their corresponding integration module.

Important

If you'd like to know which highlight groups are being affected by catppuccin, check out this directory:lua/catppuccin/groups/integrations/.

PluginDefault
aerial.nvim
aerial=false
alpha-nvim
alpha=true
barbar.nvim
barbar=false
barbecue.nvim
barbecue= {dim_dirname=true,-- directory name is dimmed by defaultbold_basename=true,dim_context=false,alt_background=false,},
Special

Use this to set it up:

require("barbecue").setup {theme="catppuccin",-- catppuccin-latte, catppuccin-frappe, catppuccin-macchiato, catppuccin-mocha}
beacon.nvim
beacon=false
blink.cmp
blink_cmp= {style='bordered',}
bufferline.nvim
Special

Update your bufferline config to use the Catppuccin components:

[!NOTE]bufferline needs to be loaded after setting up catppuccin or it will highlight incorrectly

use"akinsho/bufferline.nvim"{after="catppuccin",config=function()require("bufferline").setup {highlights=require("catppuccin.groups.integrations.bufferline").get()    }end}

Configurations are self-explanatory, see:h bufferline-highlights for detailed explanations:

localmocha=require("catppuccin.palettes").get_palette"mocha"bufferline.setup {highlights=require("catppuccin.groups.integrations.bufferline").get {styles= {"italic","bold"},custom= {all= {fill= {bg="#000000"},            },mocha= {background= {fg=mocha.text },            },latte= {background= {fg="#000000"},            },        },    },}
coc.nvim
coc_nvim=false
Special

Settingenabled totrue enables this integration.

coc_nvim=true,

[!Note]coc.nvim by default link to native lsp highlight groups so config fromnative_lsp will also apply to coc

In the inners tables you can set the style for the diagnostics, bothvirtual_text (what you see on the side) andunderlines (what points directly at the thing (e.g. an error)).

native_lsp= {enabled=true,virtual_text= {errors= {"italic"},hints= {"italic"},warnings= {"italic"},information= {"italic"},ok= {"italic"},    },underlines= {errors= {"underline"},hints= {"underline"},warnings= {"underline"},information= {"underline"},ok= {"underline"},    },inlay_hints= {background=true,    },},
colorful-winsep.nvim
colorful_winsep= {enabled=false,color="red",}
dashboard-nvim
dashboard=true
diffview.nvim
diffview=false
dropbar.nvim
dropbar= {enabled=false,color_mode=false,-- enable color for kind's texts, not just kind's icons},
feline.nvim
Special

Update your Feline config to use the Catppuccin components:

localctp_feline=require('catppuccin.groups.integrations.feline')ctp_feline.setup()require("feline").setup({components=ctp_feline.get(),})

Notice that callingsetup() is optional. You may pass a lua table in order to change assets, settings and the colors per vim mode.

Here are the defaults:

localclrs=require("catppuccin.palettes").get_palette()localctp_feline=require('catppuccin.groups.integrations.feline')localU=require"catppuccin.utils.colors"ctp_feline.setup({assets= {left_separator="",right_separator="",mode_icon="",dir="󰉖",file="󰈙",lsp= {server="󰅡",error="",warning="",info="",hint="",        },git= {branch="",added="",changed="",removed="",        },    },sett= {text=U.vary_color({latte=latte.base },clrs.surface0),bkg=U.vary_color({latte=latte.crust },clrs.surface0),diffs=clrs.mauve,extras=clrs.overlay1,curr_file=clrs.maroon,curr_dir=clrs.flamingo,show_modified=false,-- show if the file has been modifiedshow_lazy_updates=false-- show the count of updatable plugins from lazy.nvim-- need to set checker.enabled = true in lazy.nvim first-- the icon is set in ui.icons.plugin in lazy.nvim    },mode_colors= {        ["n"]= {"NORMAL",clrs.lavender },        ["no"]= {"N-PENDING",clrs.lavender },        ["i"]= {"INSERT",clrs.green },        ["ic"]= {"INSERT",clrs.green },        ["t"]= {"TERMINAL",clrs.green },        ["v"]= {"VISUAL",clrs.flamingo },        ["V"]= {"V-LINE",clrs.flamingo },        [""]= {"V-BLOCK",clrs.flamingo },        ["R"]= {"REPLACE",clrs.maroon },        ["Rv"]= {"V-REPLACE",clrs.maroon },        ["s"]= {"SELECT",clrs.maroon },        ["S"]= {"S-LINE",clrs.maroon },        [""]= {"S-BLOCK",clrs.maroon },        ["c"]= {"COMMAND",clrs.peach },        ["cv"]= {"COMMAND",clrs.peach },        ["ce"]= {"COMMAND",clrs.peach },        ["r"]= {"PROMPT",clrs.teal },        ["rm"]= {"MORE",clrs.teal },        ["r?"]= {"CONFIRM",clrs.mauve },        ["!"]= {"SHELL",clrs.green },    },view= {lsp= {progress=true,-- if true the status bar will display an lsp progress indicatorname=false,-- if true the status bar will display the lsp servers name, otherwise it will display the text "Lsp"exclude_lsp_names= {},-- lsp server names that should not be displayed when name is set to trueseparator="|",-- the separator used when there are multiple lsp servers        },    }})

[!Warning]Currently felinedoesn't officially support custom themes. In order for:colorscheme catppuccin-<flavour> to work you could add this autocmd as a workaround:

vim.api.nvim_create_autocmd("ColorScheme", {pattern="*",callback=function()package.loaded["feline"]=nilpackage.loaded["catppuccin.groups.integrations.feline"]=nilrequire("feline").setup {components=require("catppuccin.groups.integrations.feline").get(),        }end,})
fern.vim
fern=false
fidget.nvim
fidget=false
SpecialSet `notification.window.winblend` to `0`:
require("fidget").setup {notification= {window= {winblend=0,        },    }-- ... the rest of your fidget config}
flash.nvim
flash=true
fzf-lua
fzf=true
gitgraph.nvim
gitgraph=false
gitsigns.nvim
gitsigns=true
Special
gitsigns= {enabled=true,-- align with the transparent_background option by defaulttransparent=false,}
grug-far.nvim
grug_far=false
harpoon
harpoon=false
headlines.nvim
headlines=false
hop.nvim
hop=false
indent-blankline.nvim
indent_blankline= {enabled=true,scope_color="",-- catppuccin color (eg. `lavender`) Default: textcolored_indent_levels=false,},
Special

colored_indent_levels enables char highlights per indent level. Follow the instructionshere to set the latter up.

leap.nvim
leap=false
lightline.vim
Special
letg:lightline= {'colorscheme':'catppuccin'}
lightspeed.nvim
lightspeed=false
lir.nvim
lir= {enabled=false,git_status=false}
lspsaga.nvim
lsp_saga=false
Special

For custom Lsp Kind Icon and Color

require("lspsaga").setup {ui= {kind=require("catppuccin.groups.integrations.lsp_saga").custom_kind(),    },}
lualine.nvim
Special
require('lualine').setup {options= {theme="catppuccin"-- ... the rest of your lualine config    }}
markdown
markdown=true
markview.nvim
markview=false
mason.nvim
mason=false
mini.nvim
mini= {enabled=true,indentscope_color="",-- catppuccin color (eg. `lavender`) Default: text},
neo-tree.nvim
neotree=true
neogit
neogit=true
neotest
neotest=false
noice.nvim
noice=false
notifier.nvim
notifier=false
nvim-cmp
cmp=true
copilot.vim
copilot_vim=false,
nvim-dap
dap=true
Special
localsign=vim.fn.sign_definesign("DapBreakpoint", {text="",texthl="DapBreakpoint",linehl="",numhl=""})sign("DapBreakpointCondition", {text="",texthl="DapBreakpointCondition",linehl="",numhl=""})sign("DapLogPoint", {text="",texthl="DapLogPoint",linehl="",numhl=""})
nvim-dap-ui
dap_ui=true
nvim-lspconfig
native_lsp= {enabled=true,virtual_text= {errors= {"italic"},hints= {"italic"},warnings= {"italic"},information= {"italic"},ok= {"italic"},    },underlines= {errors= {"underline"},hints= {"underline"},warnings= {"underline"},information= {"underline"},ok= {"underline"},    },inlay_hints= {background=true,    },},
Special

In the inners tables you can set the style for the diagnostics, bothvirtual_text (what you see on the side) andunderlines (what points directly at the thing (e.g. an error)).

navic
navic= {enabled=false,custom_bg="NONE",-- "lualine" will set background to mantle},
Special
-- You NEED to enable highlight in nvim-navic setting or it won't workrequire("nvim-navic").setup {highlight=true}
nvim-notify
notify=false
nvim-semantic-tokens
semantic_tokens=true
nvim-surround
nvim_surround=false
nvim-tree.lua
nvimtree=true
nvim-treesitter-context
treesitter_context=true
nvim-treesitter
treesitter=true
nvim-ts-rainbow2
ts_rainbow2=false
nvim-ts-rainbow
ts_rainbow=false
nvim-ufo
ufo=true
nvim-window-picker
window_picker=false
octo.nvim
octo=false
overseer.nvim
overseer=false
pounce.nvim
pounce=false
rainbow-delimiters.nvim
rainbow_delimiters=true
reactive.nvim
Special

There're 2 available presets (cursor andcursorline) for every flavour.

Here is how you can use them.

require('reactive').setup {load= {'catppuccin-mocha-cursor','catppuccin-mocha-cursorline'}}

To use another flavour just replacemocha with the one you want to use.

render-markdown.nvim
render_markdown=true
snacks.nvim
snacks= {enabled=false,indent_scope_color="",-- catppuccin color (eg. `lavender`) Default: text}
symbols-outline.nvim

Note

This plugin has been archived by the author, consider usingoutline.nvim

symbols_outline=false
telekasten.nvim
telekasten=false
telescope.nvim
telescope= {enabled=true,-- style = "nvchad"}
trouble.nvim
lsp_trouble=false
vim-airline
Special
letg:airline_theme='catppuccin'
vim-clap
Special

Use this to set it up:

letg:clap_theme='catppuccin'
vim-dadbod-ui
dadbod_ui=false
vim-gitgutter
gitgutter=false
vim-illuminate
illuminate= {enabled=true,lsp=false}
vim-sandwich
sandwich=false
vim-signify
signify=false
vim-sneak
vim_sneak=false
vimwiki
vimwiki=false
which-key.nvim
which_key=false

Compile

ImportantAs of 7/10/2022, catppuccin should be able to automatically recompile when the setup table changed.

Catppuccin is a highly customizable and configurable colorscheme. This does however come at the cost of complexity and execution time. Catppuccin can pre compute the results of your configuration and store the results in a compiled lua file. We use these precached values to set it's highlights.

By default catppuccin writes the compiled results into the system's cache directory. You can change the cache dir using:

require("catppuccin").setup({-- Note: On windows we replace `/` with `\` by defaultcompile_path=vim.fn.stdpath"cache".."/catppuccin"})

FAQ

Wrong treesitter highlights

Please disableadditional_vim_regex_highlighting

require("nvim-treesitter.configs").setup {highlight= {enable=true,additional_vim_regex_highlighting=false    },}

Colors doesn't match preview screenshots

Catppuccin requires true color support AKA terminals support the full range of 16 million colors

  • Supported: iterm2 (macOS), kitty, wezterm, alacritty, tmux, ...

Full list of support terminals can be found here:https://github.com/termstandard/colors#truecolor-support-in-output-devices

  • Unsupported terminal: Terminal.app (macOS), Terminus, Terminology, ...

Full list of Unsupported terminals can be found here:https://github.com/termstandard/colors#not-supporting-truecolor

For tmux users

image

image

Thanks to

 

Copyright © 2021-presentCatppuccin Org


[8]ページ先頭

©2009-2025 Movatter.jp