Unofficial port for (Neo)Vim inspired by the Abyss theme from Visual Studio Code.
This is the latest version of the old abyss.vim, now supporting Vim.
abyss_nvim_video.mp4
Original Abyss theme inspired by VS Code
A cool toned theme inspired by the Northern Lights and Minnesota North Woods
You can use any package manager you like.
I highly recommend updating abyss.nvim when a release/tag comes out, since it is possible that there are development commits before that that can cause unexpected errors when using the colorscheme. To do this, make sure to specify a tag in your preferred package manager (if it supports it) before downloading the colorscheme.
Package manager | Installation |
packer.nvim |
use {
'barrientosvctor/abyss.nvim',
run = function()
local status, abyss = pcall(require, 'abyss')
if not status then return end
abyss.setup()
end
} |
lazy.nvim |
{
'barrientosvctor/abyss.nvim',
lazy = false,
priority = 1000,
opts = {}
} |
Vim-plug |
Plug 'barrientosvctor/abyss.nvim' |
Vundle.vim |
Plugin 'barrientosvctor/abyss.nvim' |
Vim's built-in package manager |
mkdir -p ~/.vim/pack/colors/start
cd ~/.vim/pack/colors/start
git clone https://github.com/barrientosvctor/abyss.nvim.git |
Abyss.nvim has options to customize your colorscheme instance according to your preferences.
These are the available options for the colorscheme:
require('abyss').setup({
italic_comments = true, -- Toggle italic comments
italic = false, -- Toggle italic for function names, keywords, strings and booleans
bold = false, -- Toggle bold for function names, keywords and booleans
transparent_background = false, -- Toggle transparency on neovim background
treesitter = true -- Enable treesitter highlighting. No need to configuration. Default value: (Neovim = true), (Vim = false)
palette = "abyss" -- Changes the Abyss palette. Available palettes's name on lua/abyss/palettes
overrides = {} -- Override the default colorscheme highlight to a any else. Default value: nil
})
lua << EOF
require("abyss").setup {
" your setup options
}
EOF
You can be able to use all of nvim_set_hl() function properties to override the colorscheme colors.
local c = require('abyss.palettes.abyss')
require('abyss').setup({
overrides = {
String = { fg = c.heavyyellow, bold = true },
-- or:
['String'] = { fg = "#ffeebb", bold = true },
-- ...rest of highlight overrides
}
})
- TreeSitter
- Bufferline.nvim
- LSP Diagnostics
- Telescope.nvim
- nvim-cmp
- LspSaga
- Git Signs
- Git Gutter
- nvim-tree.lua
- NERDTree
- Neotree.nvim
- Indent-Blankline.nvim
- nvim-notify
- Dashboard
- Which-key
- Aerial
Vim Script
colorscheme abyss
Lua
vim.cmd.colorscheme 'abyss'
Abyss.nvim also includes a lualine.nvim theme, you can use it setting up into lualine setup options:
require('lualine').setup {
options = {
theme = 'abyss' -- Available themes: "abyss", "abyss-boreal"
}
}
Vim Script
let g:airline_theme = "abyss"
Lua
vim.g.airline_theme = "abyss"
Vim Script
let g:airline_theme = "abyss_boreal"
Lua
vim.g.airline_theme = "abyss_boreal"
Vim Script
let g:lightline = {'colorscheme': 'abyss'}
Lua
vim.g.lightline = {colorscheme: 'abyss'}
Vim Script
let g:lightline = {'colorscheme': 'abyss_boreal'}
Lua
vim.g.lightline = {colorscheme: 'abyss_boreal'}
- If you have Bufferline.nvim installed in your dotfiles, bufferline should be loaded after setting up abyss.nvim or it will highlight incorrectly. I'll provide you examples about this using Packer.nvim and Lazy.nvim
Click to see Lazy.nvim example
- Abyss.nvim config
{
'barrientosvctor/abyss.nvim',
lazy = false,
priority = 1000,
opts = {}
}
- Bufferline config
{
'akinsho/bufferline.nvim',
lazy = true,
event = "UIEnter",
-- ...rest of your config
}
Click to see Packer.nvim example
- Bufferline config
use {
'akinsho/bufferline.nvim',
after = 'abyss.nvim',
-- ...rest of your config
}
- nightfox -> codebase for vim support