initial commit
This commit is contained in:
commit
e6ed4228a5
2
README.md
Normal file
2
README.md
Normal file
@ -0,0 +1,2 @@
|
||||
ansible-playbook site.yml --skip-tags server -K
|
||||
ansible-playbook site.yml --skip-tags pc -K
|
419
roles/nvim/files/init_pc.lua
Normal file
419
roles/nvim/files/init_pc.lua
Normal file
@ -0,0 +1,419 @@
|
||||
local fn = vim.fn
|
||||
local opt = vim.opt
|
||||
local map = vim.api.nvim_set_keymap
|
||||
local unmap = vim.api.nvim_del_keymap
|
||||
local augroup = vim.api.nvim_create_augroup
|
||||
local autocmd = vim.api.nvim_create_autocmd
|
||||
|
||||
local install_path = fn.stdpath('data')..'/site/pack/packer/start/packer.nvim'
|
||||
|
||||
if fn.empty(fn.glob(install_path)) > 0 then
|
||||
fn.system({'git', 'clone', 'https://github.com/wbthomason/packer.nvim', install_path})
|
||||
vim.cmd 'packadd packer.nvim'
|
||||
end
|
||||
|
||||
require('packer').startup(function()
|
||||
use 'wbthomason/packer.nvim' -- Package Manager
|
||||
use 'nvim-lua/plenary.nvim' -- Lua Library
|
||||
use 'neovim/nvim-lspconfig' -- Language Server Config
|
||||
use {
|
||||
'hrsh7th/nvim-cmp', -- Completion
|
||||
requires = {
|
||||
'hrsh7th/cmp-buffer', -- Completion source buffer
|
||||
'hrsh7th/cmp-nvim-lsp', -- Completion source LSP
|
||||
'hrsh7th/cmp-path', -- Completion source filepaths
|
||||
'saadparwaiz1/cmp_luasnip', -- Completion source snippets
|
||||
'ray-x/lsp_signature.nvim' -- Signature when typing
|
||||
}
|
||||
}
|
||||
use { 'L3MON4D3/LuaSnip' } -- Snippets
|
||||
use {
|
||||
'nvim-treesitter/nvim-treesitter', -- Syntax Highlighting
|
||||
run = ':TSUpdate'
|
||||
}
|
||||
use 'tpope/vim-commentary' -- Commentary
|
||||
use 'tpope/vim-surround' -- Surrounding
|
||||
use 'tpope/vim-repeat' -- Repeat Surrounding
|
||||
use "tversteeg/registers.nvim" -- Preview Registers
|
||||
use 'windwp/nvim-autopairs' -- Autopairs
|
||||
use 'windwp/nvim-ts-autotag' -- HTML Autopairs
|
||||
use 'nvim-telescope/telescope.nvim' -- Fuzzy Finder
|
||||
use 'tamago324/lir.nvim' -- Filebrowser
|
||||
use 'jakewvincent/mkdnflow.nvim' -- Notetaking
|
||||
use 'davidgranstrom/nvim-markdown-preview' -- Markdown Livepreview
|
||||
use 'xuhdev/vim-latex-live-preview' -- Latex Livepreview
|
||||
use 'norcalli/nvim-colorizer.lua' -- render Color Codes
|
||||
use 'aklt/plantuml-syntax' -- Plantuml Syntax, till treesitter supports Plantuml
|
||||
use {
|
||||
'rust-sailfish/sailfish', -- Sailfish Syntax
|
||||
rtp = 'syntax/vim'
|
||||
}
|
||||
end)
|
||||
|
||||
-- General Editor Settings
|
||||
-- vim.g.colors_name = "zenburn"
|
||||
opt.termguicolors = true
|
||||
vim.cmd('colorscheme zenburn')
|
||||
|
||||
vim.g.mapleader = ","
|
||||
opt.mouse = "nv"
|
||||
opt.pastetoggle = "ZP"
|
||||
|
||||
opt.number = true
|
||||
opt.relativenumber = true
|
||||
|
||||
opt.statusline = ' %f %r %m%=%y %{&fileencoding?&fileencoding:&encoding}[%{&fileformat}] %p%% %l:%c '
|
||||
|
||||
opt.completeopt = 'menuone,noinsert,noselect'
|
||||
|
||||
map('n', 'ZT', '<cmd>w<cr>', { noremap = true })
|
||||
map('n', 'ZO', '<cmd>!compiler %<cr>', { noremap = true })
|
||||
map('n', 'ZK', '<cmd>!kdeconnect-cli -d 3993d52f1018a472 --share %<cr>', { noremap = true })
|
||||
map('n', '<leader>/', '<cmd>let @/ = ""<cr>', { noremap = true })
|
||||
map('n', '<leader>plp', '<cmd>!feh %:s?pu?png? &<cr>', {noremap = true})
|
||||
|
||||
-- Splits
|
||||
map('n', '<C-h>', '<C-w>h', { noremap = true })
|
||||
map('n', '<C-j>', '<C-w>j', { noremap = true })
|
||||
map('n', '<C-k>', '<C-w>k', { noremap = true })
|
||||
map('n', '<C-l>', '<C-w>l', { noremap = true })
|
||||
|
||||
opt.splitbelow = true
|
||||
opt.splitright = true
|
||||
|
||||
-- Identation with autocmd
|
||||
augroup('programming', {})
|
||||
autocmd('FileType', {
|
||||
group = 'programming',
|
||||
desc = 'Set identation to two spaces for filetypes in {pattern}',
|
||||
pattern = { 'lua', 'html', 'css', 'scss', 'sass', 'less', 'htmldjango', 'sailfish' },
|
||||
command = 'setlocal ts=2 sw=2 sts=2 expandtab'
|
||||
})
|
||||
autocmd('FileType', {
|
||||
group = 'programming',
|
||||
desc = 'Set identation to one tab for filetypes in {pattern}',
|
||||
pattern = { 'python' },
|
||||
command = 'setlocal ts=4 sw=4 sts=4 expandtab'
|
||||
})
|
||||
autocmd({ 'BufNewFile', 'BufRead' }, {
|
||||
group = 'programming',
|
||||
desc = 'Set Filetype to sailfish for .stpl files',
|
||||
pattern = { '*stpl' },
|
||||
command = 'setlocal filetype=sailfish'
|
||||
})
|
||||
vim.cmd("au BufRead *.yaml,*.yml if search('hosts:\\|tasks:\\|ansible.builtin', 'nw') | set ft=yaml.ansible | endif")
|
||||
|
||||
|
||||
-- Spellcheck
|
||||
_G.enable_spell = function(lang)
|
||||
vim.bo.spelllang = lang
|
||||
|
||||
if lang ~= "" then
|
||||
vim.wo.spell = true
|
||||
|
||||
map('n', 'ff', ']s', { noremap = true})
|
||||
map('n', 'fF', '[s', { noremap = true})
|
||||
map('n', 'fa', 'zg', { noremap = true})
|
||||
map('n', 'fn', 'z=', { noremap = true})
|
||||
map('n', 'fd', 'zuw=', { noremap = true})
|
||||
print(lang .. " spellcheck enabled")
|
||||
else
|
||||
vim.wo.spell = false
|
||||
|
||||
unmap('n', 'ff')
|
||||
unmap('n', 'fF')
|
||||
unmap('n', 'fa')
|
||||
unmap('n', 'fn')
|
||||
unmap('n', 'fd')
|
||||
print("spellcheck disabled")
|
||||
end
|
||||
|
||||
return vim.api.nvim_replace_termcodes('<cr>', true, true, true)
|
||||
end
|
||||
|
||||
map('n', 'ZD', 'v:lua.enable_spell("de")', { expr = true, silent = true })
|
||||
map('n', 'ZE', 'v:lua.enable_spell("en")', { expr = true, silent = true })
|
||||
map('n', 'ZS', 'v:lua.enable_spell("")', { expr = true, silent = true })
|
||||
|
||||
-- LSP
|
||||
local lsp = require('lspconfig')
|
||||
|
||||
local on_attach = function(client, bufnr)
|
||||
local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end
|
||||
|
||||
-- Mappings.
|
||||
local opts = { noremap=true, silent=true }
|
||||
|
||||
-- See `:help vim.lsp.*` for documentation on any of the below functions
|
||||
buf_set_keymap('n', 'gd', '<cmd>lua vim.lsp.buf.definition()<CR>', opts)
|
||||
buf_set_keymap('n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>', opts)
|
||||
buf_set_keymap('n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>', opts)
|
||||
buf_set_keymap('n', 'K', '<cmd>lua vim.lsp.buf.hover()<CR>', opts)
|
||||
buf_set_keymap('n', '<space>rn', '<cmd>lua vim.lsp.buf.rename()<CR>', opts)
|
||||
buf_set_keymap('n', '<space>e', '<cmd>lua vim.diagnostic.open_float()<CR>', opts)
|
||||
buf_set_keymap('n', '<space>ca', '<cmd>lua vim.lsp.buf.code_action()<CR>', opts)
|
||||
|
||||
-- Signature
|
||||
require('lsp_signature').on_attach({
|
||||
hint_enable = false
|
||||
}, bufnr)
|
||||
end
|
||||
|
||||
local runtime_path = vim.split(package.path, ';')
|
||||
table.insert(runtime_path, "lua/?.lua")
|
||||
table.insert(runtime_path, "lua/?/init.lua")
|
||||
|
||||
lsp.sumneko_lua.setup {
|
||||
cmd = {"lua-language-server"},
|
||||
on_attach = on_attach,
|
||||
settings = {
|
||||
Lua = {
|
||||
runtime = {
|
||||
version = 'LuaJIT',
|
||||
path = runtime_path,
|
||||
},
|
||||
diagnostics = {
|
||||
globals = {'vim'},
|
||||
},
|
||||
workspace = {
|
||||
library = vim.api.nvim_get_runtime_file("", true),
|
||||
},
|
||||
telemetry = {
|
||||
enable = false,
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
lsp.rust_analyzer.setup {
|
||||
on_attach = on_attach,
|
||||
}
|
||||
|
||||
lsp.texlab.setup {
|
||||
on_attach = on_attach,
|
||||
}
|
||||
|
||||
lsp.pyright.setup {
|
||||
on_attach = on_attach,
|
||||
}
|
||||
|
||||
lsp.tsserver.setup{
|
||||
on_attach = on_attach,
|
||||
}
|
||||
|
||||
lsp.ccls.setup {
|
||||
on_attach = on_attach,
|
||||
}
|
||||
|
||||
local capabilities = vim.lsp.protocol.make_client_capabilities()
|
||||
capabilities.textDocument.completion.completionItem.snippetSupport = true
|
||||
|
||||
lsp.cssls.setup {
|
||||
capabilities = capabilities,
|
||||
on_attach = on_attach,
|
||||
}
|
||||
|
||||
lsp.html.setup {
|
||||
capabilities = capabilities,
|
||||
on_attach = on_attach,
|
||||
}
|
||||
|
||||
lsp.yamlls.setup {
|
||||
capabilities = capabilities,
|
||||
on_attach = on_attach,
|
||||
}
|
||||
|
||||
lsp.ansiblels.setup {
|
||||
capabilities = capabilities,
|
||||
on_attach = on_attach,
|
||||
}
|
||||
|
||||
-- Autopairs
|
||||
require'nvim-ts-autotag'.setup()
|
||||
require'nvim-autopairs'.setup{}
|
||||
|
||||
-- Completion
|
||||
local cmp = require('cmp')
|
||||
cmp.setup {
|
||||
mapping = {
|
||||
['<C-p>'] = cmp.mapping.select_prev_item(),
|
||||
['<C-n>'] = cmp.mapping.select_next_item(),
|
||||
['<C-u>'] = cmp.mapping.scroll_docs(-4),
|
||||
['<C-d>'] = cmp.mapping.scroll_docs(4),
|
||||
['<C-x>'] = cmp.mapping.abort(),
|
||||
['<CR>'] = cmp.mapping.confirm({behavior = cmp.ConfirmBehavior.Insert, select = false }),
|
||||
['<C-Space>'] = cmp.mapping.confirm({behavior = cmp.ConfirmBehavior.Insert, select = true })
|
||||
},
|
||||
snippet = {
|
||||
expand = function(args)
|
||||
require('luasnip').lsp_expand(args.body)
|
||||
end
|
||||
},
|
||||
sources = {
|
||||
{ name = 'luasnip'},
|
||||
{ name = 'nvim_lsp' },
|
||||
{ name = 'path' },
|
||||
{ name = 'buffer' },
|
||||
}
|
||||
}
|
||||
|
||||
-- Snippets
|
||||
local ls = require('luasnip')
|
||||
local types = require('luasnip.util.types')
|
||||
|
||||
ls.config.set_config({
|
||||
history = true,
|
||||
updateevents = "TextChanged,TextChangedI",
|
||||
ext_opts = {
|
||||
[types.choiceNode] = {
|
||||
active = {
|
||||
virt_text = { { "[C]", "Comment" } },
|
||||
},
|
||||
},
|
||||
[types.insertNode] = {
|
||||
active = {
|
||||
virt_text = { { "[I]", "Comment" } },
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
-- Helper Termcode wrapper
|
||||
local to_term = function(str)
|
||||
return vim.api.nvim_replace_termcodes(str, true, true, true)
|
||||
end
|
||||
|
||||
_G.next_opt = function()
|
||||
if ls and ls.expand_or_jumpable() then
|
||||
return to_term "<Plug>luasnip-expand-or-jump"
|
||||
else
|
||||
return to_term "<Tab>"
|
||||
end
|
||||
end
|
||||
|
||||
_G.prev_opt = function()
|
||||
if ls and ls.jumpable(-1) then
|
||||
return to_term "<Plug>luasnip-jump-prev"
|
||||
else
|
||||
return to_term "<S-Tab>"
|
||||
end
|
||||
end
|
||||
|
||||
map("i", "<C-E>", "<Plug>luasnip-next-choice", {})
|
||||
map("s", "<C-E>", "<Plug>luasnip-next-choice", {})
|
||||
map("i", "<Tab>", "v:lua.next_opt()", {expr = true})
|
||||
map("s", "<Tab>", "v:lua.next_opt()", {expr = true})
|
||||
map("i", "<S-Tab>", "v:lua.prev_opt()", {expr = true})
|
||||
map("s", "<S-Tab>", "v:lua.prev_opt()", {expr = true})
|
||||
|
||||
require("luasnip.loaders.from_lua").load({paths = "~/.config/nvim/lua/snippets"})
|
||||
|
||||
-- Treesitter
|
||||
require('nvim-treesitter.configs').setup {
|
||||
ensure_installed = 'all',
|
||||
highlight = {
|
||||
enable = true,
|
||||
additional_vim_regex_highlighting = false,
|
||||
},
|
||||
autotag = {
|
||||
enable = true
|
||||
}
|
||||
}
|
||||
|
||||
-- Telescope
|
||||
map('n', '<Leader>ff', '<cmd>lua require("telescope.builtin").find_files()<cr>', {noremap = true})
|
||||
map('n', '<leader>fg', '<cmd>lua require("telescope.builtin").live_grep()<cr>', {noremap = true})
|
||||
map('n', '<leader>fb', '<cmd>lua require("telescope.builtin").buffers()<cr>', {noremap = true})
|
||||
map('n', '<leader>fh', '<cmd>lua require("telescope.builtin").help_tags()<cr>', {noremap = true})
|
||||
|
||||
-- Vimwiki
|
||||
require('mkdnflow').setup({
|
||||
modules = {
|
||||
bib = false,
|
||||
folds = false,
|
||||
},
|
||||
mappings = {
|
||||
MkdnEnter = { {'i', 'n', 'v'}, '<CR>'}
|
||||
},
|
||||
links = {
|
||||
transform_explicit = function(text)
|
||||
return string.lower(text:gsub(' ', ''))
|
||||
end
|
||||
}
|
||||
})
|
||||
|
||||
autocmd('FileType', {
|
||||
desc = 'Set auto write all for markdown files',
|
||||
pattern = { 'markdown' },
|
||||
command = 'set awa'
|
||||
})
|
||||
vim.wo.conceallevel = 2
|
||||
vim.keymap.set('n', '<bs>', ':edit #<cr>', { silent = true })
|
||||
map('n', '<Leader>wf', '<cmd>lua require("telescope_customs").find_wiki()<cr>', {noremap = true})
|
||||
map('n', '<Leader>wg', '<cmd>lua require("telescope_customs").grep_wiki()<cr>', {noremap = true})
|
||||
|
||||
-- Markdown Live Preview
|
||||
vim.g.nvim_markdown_preview_format = 'markdown'
|
||||
map('n', '<leader>mlp', '<cmd>MarkdownPreview<cr>', {noremap = true})
|
||||
|
||||
-- Latex Live Preview
|
||||
vim.g.livepreview_previewer = 'zathura'
|
||||
vim.g.livepreview_use_biber = 1
|
||||
map('n', '<leader>llp', '<cmd>LLPStartPreview<cr>', {noremap = true})
|
||||
|
||||
-- Lir Filebrowser
|
||||
local actions = require('lir.actions')
|
||||
|
||||
require('lir').setup {
|
||||
devicons_enable = false,
|
||||
mappings = {
|
||||
['l'] = actions.edit,
|
||||
['<C-s>'] = actions.split,
|
||||
['<C-v>'] = actions.vsplit,
|
||||
['<C-t>'] = actions.tabedit,
|
||||
|
||||
['h'] = actions.up,
|
||||
['q'] = actions.quit,
|
||||
|
||||
['K'] = actions.mkdir,
|
||||
['N'] = actions.newfile,
|
||||
['R'] = actions.rename,
|
||||
['@'] = actions.cd,
|
||||
['Y'] = actions.yank_path,
|
||||
['.'] = actions.toggle_show_hidden,
|
||||
['x'] = actions.delete,
|
||||
},
|
||||
float = {
|
||||
winblend = 0,
|
||||
win_opts = function()
|
||||
local width = math.floor(vim.o.columns * 0.6)
|
||||
local height = math.floor(vim.o.lines * 0.6)
|
||||
return {
|
||||
width = width,
|
||||
height = height,
|
||||
row = 10,
|
||||
col = math.floor((vim.o.columns - width) / 2),
|
||||
}
|
||||
end,
|
||||
},
|
||||
hide_cursor = true
|
||||
}
|
||||
|
||||
map('n', '<C-n>', '<cmd>lua require("lir.float").toggle()<cr>', { noremap = true })
|
||||
vim.g.loaded_netrw = 1
|
||||
vim.g.loaded_netrwPlugin = 1
|
||||
|
||||
-- Colorizer
|
||||
require('colorizer').setup({
|
||||
'*';
|
||||
}, {
|
||||
RGB = true; -- #RGB hex codes
|
||||
RRGGBB = true; -- #RRGGBB hex codes
|
||||
names = false; -- "Name" codes like Blue
|
||||
RRGGBBAA = true; -- #RRGGBBAA hex codes
|
||||
rgb_fn = true; -- CSS rgb() and rgba() functions
|
||||
hsl_fn = true; -- CSS hsl() and hsla() functions
|
||||
css = false; -- Enable all CSS features: rgb_fn, hsl_fn, names, RGB, RRGGBB
|
||||
css_fn = false; -- Enable all CSS *functions*: rgb_fn, hsl_fn
|
||||
mode = 'background'; -- Set the display mode.
|
||||
})
|
96
roles/nvim/files/init_server.lua
Normal file
96
roles/nvim/files/init_server.lua
Normal file
@ -0,0 +1,96 @@
|
||||
local fn = vim.fn
|
||||
local opt = vim.opt
|
||||
local map = vim.api.nvim_set_keymap
|
||||
|
||||
local install_path = fn.stdpath('data')..'/site/pack/packer/start/packer.nvim'
|
||||
|
||||
if fn.empty(fn.glob(install_path)) > 0 then
|
||||
fn.system({'git', 'clone', 'https://github.com/wbthomason/packer.nvim', install_path})
|
||||
vim.cmd 'packadd packer.nvim'
|
||||
end
|
||||
|
||||
require('packer').startup(function()
|
||||
use 'wbthomason/packer.nvim' -- Package Manager
|
||||
use 'nvim-lua/plenary.nvim' -- Lua Library
|
||||
use 'tpope/vim-commentary' -- Commentary
|
||||
use 'nvim-telescope/telescope.nvim' -- Fuzzy Finder
|
||||
use 'tamago324/lir.nvim' -- Filebrowser
|
||||
end)
|
||||
|
||||
-- General Editor Settings
|
||||
opt.termguicolors = true
|
||||
vim.cmd('colorscheme zenburn')
|
||||
|
||||
vim.g.mapleader = ","
|
||||
opt.mouse = "nv"
|
||||
opt.pastetoggle = "ZP"
|
||||
|
||||
opt.number = true
|
||||
opt.relativenumber = true
|
||||
|
||||
opt.statusline = ' %f %r %m%=%y %{&fileencoding?&fileencoding:&encoding}[%{&fileformat}] %p%% %l:%c '
|
||||
|
||||
opt.completeopt = 'menuone,noinsert,noselect'
|
||||
|
||||
map('n', 'ZT', '<cmd>w<cr>', { noremap = true })
|
||||
map('n', 'ZO', '<cmd>!compiler %<cr>', { noremap = true })
|
||||
map('n', 'ZK', '<cmd>!kdeconnect-cli -d 3993d52f1018a472 --share %<cr>', { noremap = true })
|
||||
map('n', '<leader>/', '<cmd>let @/ = ""<cr>', { noremap = true })
|
||||
|
||||
-- Splits
|
||||
map('n', '<C-h>', '<C-w>h', { noremap = true })
|
||||
map('n', '<C-j>', '<C-w>j', { noremap = true })
|
||||
map('n', '<C-k>', '<C-w>k', { noremap = true })
|
||||
map('n', '<C-l>', '<C-w>l', { noremap = true })
|
||||
|
||||
opt.splitbelow = true
|
||||
opt.splitright = true
|
||||
|
||||
-- Telescope
|
||||
map('n', '<Leader>ff', '<cmd>lua require("telescope.builtin").find_files()<cr>', {noremap = true})
|
||||
map('n', '<leader>fg', '<cmd>lua require("telescope.builtin").live_grep()<cr>', {noremap = true})
|
||||
map('n', '<leader>fb', '<cmd>lua require("telescope.builtin").buffers()<cr>', {noremap = true})
|
||||
map('n', '<leader>fh', '<cmd>lua require("telescope.builtin").help_tags()<cr>', {noremap = true})
|
||||
|
||||
-- Lir Filebrowser
|
||||
local actions = require('lir.actions')
|
||||
|
||||
require('lir').setup {
|
||||
devicons_enable = false,
|
||||
mappings = {
|
||||
['l'] = actions.edit,
|
||||
['<C-s>'] = actions.split,
|
||||
['<C-v>'] = actions.vsplit,
|
||||
['<C-t>'] = actions.tabedit,
|
||||
|
||||
['h'] = actions.up,
|
||||
['q'] = actions.quit,
|
||||
|
||||
['K'] = actions.mkdir,
|
||||
['N'] = actions.newfile,
|
||||
['R'] = actions.rename,
|
||||
['@'] = actions.cd,
|
||||
['Y'] = actions.yank_path,
|
||||
['.'] = actions.toggle_show_hidden,
|
||||
['x'] = actions.delete,
|
||||
},
|
||||
float = {
|
||||
winblend = 0,
|
||||
win_opts = function()
|
||||
local width = math.floor(vim.o.columns * 0.6)
|
||||
local height = math.floor(vim.o.lines * 0.6)
|
||||
return {
|
||||
width = width,
|
||||
height = height,
|
||||
row = 10,
|
||||
col = math.floor((vim.o.columns - width) / 2),
|
||||
}
|
||||
end,
|
||||
},
|
||||
hide_cursor = true
|
||||
}
|
||||
|
||||
map('n', '<C-n>', '<cmd>lua require("lir.float").toggle()<cr>', { noremap = true })
|
||||
vim.g.loaded_netrw = 1
|
||||
vim.g.loaded_netrwPlugin = 1
|
||||
|
547
roles/nvim/files/zenburn.vim
Normal file
547
roles/nvim/files/zenburn.vim
Normal file
@ -0,0 +1,547 @@
|
||||
" Vim color file
|
||||
" Maintainer: Jani Nurminen <slinky@iki.fi>
|
||||
" URL: http://kippura.org/zenburnpage/
|
||||
" License: GNU GPL <http://www.gnu.org/licenses/gpl.html>
|
||||
"
|
||||
" Nothing too fancy, just some alien fruit salad to keep you in the zone.
|
||||
" This syntax file was designed to be used with dark environments and
|
||||
" low light situations. Of course, if it works during a daybright office, go
|
||||
" ahead :)
|
||||
"
|
||||
" Owes heavily to other Vim color files! With special mentions
|
||||
" to "BlackDust", "Camo" and "Desert".
|
||||
"
|
||||
" To install, copy to ~/.vim/colors directory.
|
||||
"
|
||||
" Alternatively, you can use Vimball installation:
|
||||
" vim zenburn.vba
|
||||
" :so %
|
||||
" :q
|
||||
"
|
||||
" For details, see :help vimball
|
||||
"
|
||||
" After installation, use it with :colorscheme zenburn.
|
||||
" See also :help syntax
|
||||
"
|
||||
" Credits:
|
||||
" - Jani Nurminen - original Zenburn, maintainer
|
||||
" - Steve Hall & Cream posse - higher-contrast Visual selection
|
||||
" - Kurt Maier - 256 color console coloring, low and high contrast toggle,
|
||||
" bug fixing
|
||||
" - Charlie - spotted too bright StatusLine in non-high contrast mode
|
||||
" - Pablo Castellazzi - CursorLine fix for 256 color mode
|
||||
" - Tim Smith - force dark background
|
||||
" - John Gabriele - spotted bad Ignore-group handling
|
||||
" - Zac Thompson - spotted invisible NonText in low contrast mode
|
||||
" - Christophe-Marie Duquesne - suggested making a Vimball,
|
||||
" suggested support for ctags_highlighting.vim
|
||||
" - Andrew Wagner - noted the CursorColumn bug (guifg was unintentionally set),
|
||||
" unify CursorColumn colour
|
||||
" - Martin Langasek - clarify the license, whitespace fixes
|
||||
" - Marcin Szamotulski - support autocomplete for Zenburn configuration
|
||||
" parameters
|
||||
" - Clayton Parker (claytron) - Convinced by Kurt Maier to use Zenburn. Point
|
||||
" out issues with LineNr, fix directory styles, and their usage in MacVim.
|
||||
" - Paweł Piekarski - Spotted bad FoldColumn and TabLine. Made better
|
||||
" FoldColumn colors, fixed TabLine colors.
|
||||
" - Jim - Fix for missing Include group for terminal
|
||||
" - Peter (Sakartu) - ColorColumn fixes
|
||||
" - Please see git log for the others not listed here
|
||||
"
|
||||
" CONFIGURABLE PARAMETERS:
|
||||
"
|
||||
" You can use the default (don't set any parameters), or you can
|
||||
" set some parameters to tweak the Zenburn colours.
|
||||
"
|
||||
" To use them, put them into your .vimrc file before loading the color scheme,
|
||||
" example:
|
||||
" let g:zenburn_high_Contrast=1
|
||||
" colors zenburn
|
||||
"
|
||||
" You can also do ":let g:zenburn" then hit Ctrl-d or Tab to scroll through the
|
||||
" list of configurable parameters.
|
||||
"
|
||||
" * You can now set a darker background for bright environments. To activate, use:
|
||||
" let g:zenburn_high_Contrast = 1
|
||||
"
|
||||
" * For transparent terminals set the background to black with:
|
||||
" let g:zenburn_transparent = 1
|
||||
"
|
||||
" * For example, Vim help files uses the Ignore-group for the pipes in tags
|
||||
" like "|somelink.txt|". By default, the pipes are not visible, as they
|
||||
" map to Ignore group. If you wish to enable coloring of the Ignore group,
|
||||
" set the following parameter to 1. Warning, it might make some syntax files
|
||||
" look strange.
|
||||
"
|
||||
" let g:zenburn_color_also_Ignore = 1
|
||||
"
|
||||
" * To increase the contrast/brightness of the Visual selection, use
|
||||
"
|
||||
" let g:zenburn_alternate_Visual = 1
|
||||
"
|
||||
" Note: if the old-style Visual is used, this increases the contrast.
|
||||
" Otherwise it chooses a brighter background; see g:zenburn_old_Visual
|
||||
"
|
||||
" * To use alternate colouring for Error message, use
|
||||
"
|
||||
" let g:zenburn_alternate_Error = 1
|
||||
"
|
||||
" * The new default for Include is a duller orange. To use the original
|
||||
" colouring for Include, use
|
||||
"
|
||||
" let g:zenburn_alternate_Include = 1
|
||||
"
|
||||
" * To disable underlining for Labels, use
|
||||
"
|
||||
" let g:zenburn_disable_Label_underline = 1
|
||||
"
|
||||
" * Work-around to a Vim bug, it seems to misinterpret ctermfg and 234 and 237
|
||||
" as light values, and sets background to light for some people. If you have
|
||||
" this problem, use:
|
||||
"
|
||||
" let g:zenburn_force_dark_Background = 1
|
||||
"
|
||||
" * By default the CursorColumn is of a lighter colour. I find it more readable
|
||||
" that way, but some people may want to align it with the darker CursorLine
|
||||
" color, for visual uniformity. To do so, use:
|
||||
"
|
||||
" let g:zenburn_unified_CursorColumn = 1
|
||||
"
|
||||
" Note: you can ignore this unless you use
|
||||
" ":set cursorline cursorcolumn", since otherwise the effect won't be
|
||||
" seen.
|
||||
"
|
||||
" * With g:zenburn_high_Contrast enabled, the CursorLine and CursorColumn will
|
||||
" be bold. If you don't like it, bold CursorLine and CursorColumn can be
|
||||
" disabled with:
|
||||
"
|
||||
" let g:zenburn_disable_bold_CursorBars=1
|
||||
"
|
||||
" * New (dark) Visual coloring has been introduced.
|
||||
" The dark Visual is more aligned with the rest of the colour scheme,
|
||||
" especially if you use line numbers. If you wish to use the
|
||||
" old Visual coloring, use
|
||||
"
|
||||
" let g:zenburn_old_Visual = 1
|
||||
"
|
||||
" Default is to use the new Visual.
|
||||
"
|
||||
" * Italic comments can be enabled with
|
||||
"
|
||||
" let g:zenburn_italic_Comment=1
|
||||
"
|
||||
" Note: This requires the terminal to support italics. Try this in your
|
||||
" terminal:
|
||||
"
|
||||
" echo -e "\e[3m test \e[23m"
|
||||
"
|
||||
" and if the output is not italic, then you should not enable italic comments,
|
||||
" as they will not render correctly.
|
||||
"
|
||||
" * If you prefer line numbers to be less visible, use
|
||||
"
|
||||
" let g:zenburn_subdued_LineNr=1
|
||||
"
|
||||
" * EXPERIMENTAL FEATURE: Zenburn would like to support TagHighlight
|
||||
" (an evolved ctags-highlighter) by Al Budden (homepage:
|
||||
" http://www.cgtk.co.uk/vim-scripts/taghighlight).
|
||||
" Current support status is broken: there is no automatic detection of
|
||||
" TagHighlight, no specific language support; however there is some basic
|
||||
" support for Python. If you are a user of TagHighlight and want to help,
|
||||
" please enable:
|
||||
"
|
||||
" let g:zenburn_enable_TagHighlight=1
|
||||
"
|
||||
" and improve the corresponding block at the end of the file.
|
||||
"
|
||||
" NOTE:
|
||||
"
|
||||
" * To turn the parameter(s) back to defaults, use UNLET or set them to 0:
|
||||
"
|
||||
" unlet g:zenburn_alternate_Include
|
||||
" or
|
||||
" let g:zenburn_alternate_Include = 0
|
||||
"
|
||||
"
|
||||
" That's it, enjoy!
|
||||
"
|
||||
" TODO
|
||||
" - Visual alternate color is broken? Try GVim >= 7.0.66 if you have trouble
|
||||
" - IME colouring (CursorIM)
|
||||
|
||||
" Finish if we are in a term lacking 256 color support
|
||||
if ! has("gui_running") && &t_Co <= 255
|
||||
finish
|
||||
endif
|
||||
|
||||
" Set defaults, but keep any parameters already set by the user
|
||||
if ! exists("g:zenburn_high_Contrast")
|
||||
let g:zenburn_high_Contrast = 0
|
||||
endif
|
||||
|
||||
if ! exists("g:zenburn_transparent")
|
||||
let g:zenburn_transparent = 0
|
||||
endif
|
||||
|
||||
if ! exists("g:zenburn_color_also_Ignore")
|
||||
let g:zenburn_color_also_Ignore = 0
|
||||
endif
|
||||
|
||||
if ! exists("g:zenburn_alternate_Error")
|
||||
let g:zenburn_alternate_Error = 0
|
||||
endif
|
||||
|
||||
if ! exists("g:zenburn_force_dark_Background")
|
||||
let g:zenburn_force_dark_Background = 0
|
||||
endif
|
||||
|
||||
if ! exists("g:zenburn_alternate_Visual")
|
||||
let g:zenburn_alternate_Visual = 0
|
||||
endif
|
||||
|
||||
if ! exists("g:zenburn_alternate_Include")
|
||||
let g:zenburn_alternate_Include = 0
|
||||
endif
|
||||
|
||||
if ! exists("g:zenburn_disable_Label_underline")
|
||||
let g:zenburn_disable_Label_underline = 0
|
||||
endif
|
||||
|
||||
if ! exists("g:zenburn_unified_CursorColumn")
|
||||
let g:zenburn_unified_CursorColumn = 0
|
||||
endif
|
||||
|
||||
if ! exists("g:zenburn_disable_bold_CursorBars")
|
||||
let g:zenburn_disable_bold_CursorBars = 0
|
||||
endif
|
||||
|
||||
if ! exists("g:zenburn_old_Visual")
|
||||
let g:zenburn_old_Visual = 0
|
||||
endif
|
||||
|
||||
if ! exists("g:zenburn_enable_TagHighlight")
|
||||
let g:zenburn_enable_TagHighlight = 0
|
||||
endif
|
||||
|
||||
if ! exists("g:zenburn_italic_Comment")
|
||||
let g:zenburn_italic_Comment = 0
|
||||
endif
|
||||
|
||||
if ! exists("g:zenburn_subdued_LineNr")
|
||||
let g:zenburn_subdued_LineNr = 0
|
||||
endif
|
||||
|
||||
" -----------------------------------------------
|
||||
|
||||
set background=dark
|
||||
|
||||
hi clear
|
||||
if exists("syntax_on")
|
||||
syntax reset
|
||||
endif
|
||||
let g:colors_name="zenburn"
|
||||
|
||||
hi Boolean guifg=#dca3a3 ctermfg=181
|
||||
hi Character guifg=#dca3a3 gui=bold ctermfg=181 cterm=bold
|
||||
if exists("g:zenburn_italic_Comment") && g:zenburn_italic_Comment
|
||||
hi Comment guifg=#7f9f7f gui=italic ctermfg=108 cterm=italic
|
||||
else
|
||||
hi Comment guifg=#7f9f7f ctermfg=108
|
||||
endif
|
||||
hi Comment guifg=#7f9f7f ctermfg=108
|
||||
hi Conditional guifg=#f0dfaf gui=bold ctermfg=223 cterm=bold
|
||||
hi Constant guifg=#dca3a3 gui=bold ctermfg=181 cterm=bold
|
||||
hi Cursor guifg=#000d18 guibg=#8faf9f gui=bold ctermfg=233 ctermbg=109 cterm=bold
|
||||
hi Debug guifg=#bca3a3 gui=bold ctermfg=181 cterm=bold
|
||||
hi Define guifg=#ffcfaf gui=bold ctermfg=223 cterm=bold
|
||||
hi Delimiter guifg=#8f8f8f ctermfg=245
|
||||
hi DiffAdd guifg=#709080 guibg=#313c36 gui=bold ctermfg=66 ctermbg=237 cterm=bold
|
||||
hi DiffChange guibg=#333333 ctermbg=236
|
||||
hi DiffDelete guifg=#333333 guibg=#464646 ctermfg=236 ctermbg=238
|
||||
hi DiffText guifg=#ecbcbc guibg=#41363c gui=bold ctermfg=217 ctermbg=237 cterm=bold
|
||||
hi Directory guifg=#9fafaf gui=bold ctermfg=109 cterm=bold
|
||||
hi ErrorMsg guifg=#80d4aa guibg=#2f2f2f gui=bold ctermfg=115 ctermbg=236 cterm=bold
|
||||
hi Exception guifg=#c3bf9f gui=bold ctermfg=249 cterm=bold
|
||||
hi Float guifg=#c0bed1 ctermfg=251
|
||||
hi FoldColumn guifg=#93b3a3 guibg=#3f4040
|
||||
hi Folded guifg=#93b3a3 guibg=#3f4040
|
||||
hi Function guifg=#efef8f ctermfg=228
|
||||
hi Identifier guifg=#efdcbc ctermfg=223 cterm=none
|
||||
hi IncSearch guifg=#f8f893 guibg=#385f38 ctermfg=228 ctermbg=23
|
||||
hi Keyword guifg=#f0dfaf gui=bold ctermfg=223 cterm=bold
|
||||
hi Macro guifg=#ffcfaf gui=bold ctermfg=223 cterm=bold
|
||||
hi ModeMsg guifg=#ffcfaf gui=none ctermfg=223 cterm=none
|
||||
hi MoreMsg guifg=#ffffff gui=bold ctermfg=231 cterm=bold
|
||||
hi Number guifg=#8cd0d3 ctermfg=116
|
||||
hi Operator guifg=#f0efd0 ctermfg=230
|
||||
hi PmenuSbar guibg=#2e3330 guifg=#000000 ctermfg=16 ctermbg=236
|
||||
hi PmenuThumb guibg=#a0afa0 guifg=#040404 ctermfg=232 ctermbg=151
|
||||
hi PreCondit guifg=#dfaf8f gui=bold ctermfg=180 cterm=bold
|
||||
hi PreProc guifg=#ffcfaf gui=bold ctermfg=223 cterm=bold
|
||||
hi Question guifg=#ffffff gui=bold ctermfg=231 cterm=bold
|
||||
hi Repeat guifg=#ffd7a7 gui=bold ctermfg=223 cterm=bold
|
||||
hi Search guifg=#ffffe0 guibg=#284f28 ctermfg=230 ctermbg=22
|
||||
hi SignColumn guifg=#9fafaf gui=bold ctermfg=109 cterm=bold
|
||||
hi SpecialChar guifg=#dca3a3 gui=bold ctermfg=181 cterm=bold
|
||||
hi SpecialComment guifg=#82a282 gui=bold ctermfg=108 cterm=bold
|
||||
hi Special guifg=#cfbfaf ctermfg=181
|
||||
hi SpecialKey guifg=#9ece9e ctermfg=151
|
||||
hi Statement guifg=#e3ceab gui=none ctermfg=187 cterm=none
|
||||
hi StatusLine guifg=#313633 guibg=#ccdc90 ctermfg=236 ctermbg=186
|
||||
hi StatusLineNC guifg=#2e3330 guibg=#88b090 ctermfg=235 ctermbg=108
|
||||
hi StorageClass guifg=#c3bf9f gui=bold ctermfg=249 cterm=bold
|
||||
hi String guifg=#cc9393 ctermfg=174
|
||||
hi Structure guifg=#efefaf gui=bold ctermfg=229 cterm=bold
|
||||
hi Tag guifg=#e89393 gui=bold ctermfg=181 cterm=bold
|
||||
hi Title guifg=#efefef gui=bold ctermfg=255 ctermbg=NONE cterm=bold
|
||||
hi Todo guifg=#dfdfdf guibg=NONE gui=bold ctermfg=254 ctermbg=NONE cterm=bold
|
||||
hi Typedef guifg=#dfe4cf gui=bold ctermfg=253 cterm=bold
|
||||
hi Type guifg=#dfdfbf gui=bold ctermfg=187 cterm=bold
|
||||
hi Underlined guifg=#dcdccc gui=underline ctermfg=188 cterm=underline
|
||||
hi VertSplit guifg=#2e3330 guibg=#688060 ctermfg=236 ctermbg=65
|
||||
hi VisualNOS guifg=#333333 guibg=#f18c96 gui=bold,underline ctermfg=236 ctermbg=210 cterm=bold
|
||||
hi WarningMsg guifg=#ffffff guibg=#333333 gui=bold ctermfg=231 ctermbg=236 cterm=bold
|
||||
hi WildMenu guifg=#cbecd0 guibg=#2c302d gui=underline ctermfg=194 ctermbg=236 cterm=underline
|
||||
|
||||
" spellchecking, always "bright" term background
|
||||
hi SpellBad guisp=#bc6c4c guifg=#dc8c6c ctermfg=209 ctermbg=237
|
||||
hi SpellCap guisp=#6c6c9c guifg=#8c8cbc ctermfg=103 ctermbg=237
|
||||
hi SpellRare guisp=#bc6c9c guifg=#bc8cbc ctermfg=139 ctermbg=237
|
||||
hi SpellLocal guisp=#7cac7c guifg=#9ccc9c ctermfg=151 ctermbg=237
|
||||
|
||||
if exists("g:zenburn_high_Contrast") && g:zenburn_high_Contrast
|
||||
" use new darker background
|
||||
hi Normal guifg=#dcdccc guibg=#1f1f1f ctermfg=188 ctermbg=234
|
||||
hi Conceal guifg=#8f8f8f guibg=#333333 ctermfg=246 ctermbg=235
|
||||
hi ColorColumn guibg=#33332f ctermbg=235
|
||||
if exists("g:zenburn_disable_bold_CursorBars") && g:zenburn_disable_bold_CursorBars
|
||||
" no bold
|
||||
if exists("g:zenburn_unified_CursorColumn") && g:zenburn_unified_CursorColumn
|
||||
hi CursorColumn guibg=#121212 ctermbg=233 cterm=none
|
||||
else
|
||||
hi CursorColumn guibg=#2b2b2b ctermbg=235 cterm=none
|
||||
endif
|
||||
|
||||
hi CursorLine guibg=#121212 ctermbg=233 cterm=none
|
||||
else
|
||||
" bold!
|
||||
if exists("g:zenburn_unified_CursorColumn") && g:zenburn_unified_CursorColumn
|
||||
hi CursorColumn guibg=#121212 gui=bold ctermbg=233 cterm=bold
|
||||
else
|
||||
hi CursorColumn guibg=#2b2b2b gui=bold ctermbg=235 cterm=bold
|
||||
endif
|
||||
|
||||
hi CursorLine guibg=#121212 gui=bold ctermbg=233 cterm=bold
|
||||
endif
|
||||
hi CursorLineNr guifg=#f2f3bb guibg=#161616 ctermfg=229 ctermbg=233 cterm=none
|
||||
hi FoldColumn guibg=#161616 ctermbg=233 ctermfg=109
|
||||
hi Folded guibg=#161616 ctermbg=233 ctermfg=109
|
||||
|
||||
if exists("g:zenburn_subdued_LineNr") && g:zenburn_subdued_LineNr
|
||||
hi LineNr guifg=#424242 guibg=#1b1b1b ctermfg=238 ctermbg=234
|
||||
else
|
||||
hi LineNr guifg=#9fafaf guibg=#161616 ctermfg=248 ctermbg=233
|
||||
endif
|
||||
hi NonText guifg=#404040 gui=bold ctermfg=238
|
||||
hi Pmenu guibg=#242424 guifg=#ccccbc ctermfg=251 ctermbg=235
|
||||
hi PmenuSel guibg=#353a37 guifg=#ccdc90 gui=bold ctermfg=187 ctermbg=236 cterm=bold
|
||||
hi MatchParen guifg=#f8f893 guibg=#385f38 gui=bold ctermfg=228 ctermbg=23 cterm=bold
|
||||
hi SignColumn guibg=#181818 ctermbg=233
|
||||
hi SpecialKey guibg=#242424
|
||||
hi TabLine guifg=#88b090 guibg=#313633 gui=none ctermbg=236 ctermfg=108 cterm=none
|
||||
hi TabLineSel guifg=#ccd990 guibg=#222222 ctermbg=235 ctermfg=186 cterm=bold
|
||||
hi TabLineFill guifg=#88b090 guibg=#313633 gui=none ctermbg=236 ctermfg=108 cterm=none
|
||||
else
|
||||
" Original, lighter background
|
||||
hi Normal guifg=#dcdccc guibg=#3f3f3f ctermfg=188 ctermbg=237
|
||||
hi Conceal guifg=#8f8f8f guibg=#484848 ctermfg=246 ctermbg=238
|
||||
hi ColorColumn guibg=#484848 ctermbg=238
|
||||
hi CursorLine guibg=#434443 ctermbg=238 cterm=none
|
||||
hi CursorLineNr guifg=#d2d39b guibg=#262626 ctermfg=230 ctermbg=235 cterm=none
|
||||
if exists("g:zenburn_unified_CursorColumn") && g:zenburn_unified_CursorColumn
|
||||
hi CursorColumn guibg=#434343 ctermbg=238 cterm=none
|
||||
else
|
||||
hi CursorColumn guibg=#4f4f4f ctermbg=239 cterm=none
|
||||
endif
|
||||
hi FoldColumn guibg=#333333 ctermbg=236 ctermfg=109
|
||||
hi Folded guibg=#333333 ctermbg=236 ctermfg=109
|
||||
if exists("g:zenburn_subdued_LineNr") && g:zenburn_subdued_LineNr
|
||||
hi LineNr guifg=#5d6262 guibg=#353535 ctermfg=240 ctermbg=236
|
||||
else
|
||||
hi LineNr guifg=#9fafaf guibg=#262626 ctermfg=248 ctermbg=235
|
||||
endif
|
||||
hi NonText guifg=#5b605e gui=bold ctermfg=240
|
||||
hi Pmenu guibg=#2c2e2e guifg=#9f9f9f ctermfg=248 ctermbg=235
|
||||
hi PmenuSel guibg=#242424 guifg=#d0d0a0 gui=bold ctermfg=187 ctermbg=235 cterm=bold
|
||||
hi MatchParen guifg=#ffffe0 guibg=#284f28 gui=bold ctermfg=230 ctermbg=22 cterm=bold
|
||||
hi SignColumn guibg=#343434 ctermbg=236
|
||||
hi SpecialKey guibg=#444444
|
||||
hi TabLine guifg=#d0d0b8 guibg=#222222 gui=none ctermbg=235 ctermfg=187 cterm=none
|
||||
hi TabLineSel guifg=#f0f0b0 guibg=#333333 gui=bold ctermbg=236 ctermfg=229 cterm=bold
|
||||
hi TabLineFill guifg=#dccdcc guibg=#101010 gui=none ctermbg=233 ctermfg=188 cterm=none
|
||||
|
||||
hi StatusLine ctermbg=144
|
||||
endif
|
||||
|
||||
if exists("g:zenburn_force_dark_Background") && g:zenburn_force_dark_Background
|
||||
" Force dark background, because of a bug in VIM: VIM sets background
|
||||
" automatically during "hi Normal ctermfg=X"; it misinterprets the high
|
||||
" value (234 or 237 above) as a light color, and wrongly sets background to
|
||||
" light. See ":help highlight" for details.
|
||||
set background=dark
|
||||
endif
|
||||
|
||||
if exists("g:zenburn_transparent") && g:zenburn_transparent
|
||||
hi Normal ctermbg=0 guibg=#000000
|
||||
hi Statement ctermbg=NONE
|
||||
hi Title ctermbg=NONE
|
||||
hi Todo ctermbg=NONE
|
||||
hi Underlined ctermbg=NONE
|
||||
hi DiffAdd ctermbg=NONE
|
||||
hi DiffText ctermbg=NONE
|
||||
hi ErrorMsg ctermbg=NONE
|
||||
hi LineNr ctermbg=NONE
|
||||
endif
|
||||
|
||||
if exists("g:zenburn_old_Visual") && g:zenburn_old_Visual
|
||||
if exists("g:zenburn_alternate_Visual") && g:zenburn_alternate_Visual
|
||||
" Visual with more contrast, thanks to Steve Hall & Cream posse
|
||||
" gui=none fixes weird highlight problem in at least GVim 7.0.66, thanks to Kurt Maier
|
||||
hi Visual guifg=#000000 guibg=#71d3b4 gui=none ctermfg=16 ctermbg=79 cterm=none
|
||||
hi VisualNOS guifg=#000000 guibg=#71d3b4 gui=none ctermfg=16 ctermbg=79 cterm=none
|
||||
else
|
||||
" use default visual
|
||||
hi Visual guifg=#233323 guibg=#71d3b4 gui=none ctermfg=235 ctermbg=79 cterm=none
|
||||
hi VisualNOS guifg=#233323 guibg=#71d3b4 gui=none ctermfg=235 ctermbg=79 cterm=none
|
||||
endif
|
||||
else
|
||||
" new Visual style
|
||||
if exists("g:zenburn_alternate_Visual") && g:zenburn_alternate_Visual
|
||||
" brighter than the high/low contrast options below
|
||||
hi Visual guibg=#304a3d ctermbg=23
|
||||
hi VisualNos guibg=#304a3d ctermbg=23
|
||||
elseif exists("g:zenburn_high_Contrast") && g:zenburn_high_Contrast
|
||||
" high contrast
|
||||
"TODO no nice greenish in console, 65 is closest. use full black instead,
|
||||
"although i like the green..!
|
||||
hi Visual guibg=#0f0f0f ctermbg=232
|
||||
hi VisualNOS guibg=#0f0f0f ctermbg=232
|
||||
if exists("g:zenburn_transparent") && g:zenburn_transparent
|
||||
hi Visual ctermbg=235
|
||||
endif
|
||||
else
|
||||
" low contrast
|
||||
hi Visual guibg=#2f2f2f ctermbg=235
|
||||
hi VisualNOS guibg=#2f2f2f ctermbg=235
|
||||
endif
|
||||
endif
|
||||
|
||||
if exists("g:zenburn_alternate_Error") && g:zenburn_alternate_Error
|
||||
" use more jumpy Error
|
||||
hi Error guifg=#e37170 guibg=#664040 gui=bold ctermfg=210 ctermbg=52 cterm=bold
|
||||
else
|
||||
" default is something more zenburn-compatible
|
||||
hi Error guifg=#e37170 guibg=#3d3535 gui=bold ctermfg=167 ctermbg=236 cterm=bold
|
||||
endif
|
||||
|
||||
if exists("g:zenburn_alternate_Include") && g:zenburn_alternate_Include
|
||||
" original setting
|
||||
hi Include guifg=#ffcfaf gui=bold ctermfg=223 cterm=bold
|
||||
else
|
||||
" new, less contrasted one
|
||||
hi Include guifg=#dfaf8f gui=bold ctermfg=180 cterm=bold
|
||||
endif
|
||||
|
||||
if exists("g:zenburn_disable_Label_underline") && g:zenburn_disable_Label_underline
|
||||
hi Label guifg=#dfcfaf ctermfg=187
|
||||
else
|
||||
hi Label guifg=#dfcfaf gui=underline ctermfg=187 cterm=underline
|
||||
endif
|
||||
|
||||
if exists("g:zenburn_color_also_Ignore") && g:zenburn_color_also_Ignore
|
||||
" color the Ignore groups
|
||||
" note: if you get strange coloring for your files, turn this off (unlet)
|
||||
if exists("g:zenburn_high_Contrast") && g:zenburn_high_Contrast
|
||||
hi Ignore ctermfg=238
|
||||
else
|
||||
hi Ignore guifg=#545a4f ctermfg=240
|
||||
endif
|
||||
endif
|
||||
|
||||
" EXPERIMENTAL TagHighlight support
|
||||
" link/set sensible defaults here;
|
||||
"
|
||||
" For now I mostly link to subset of Zenburn colors, the linkage is based
|
||||
" on appearance, not semantics. In later versions I might define more new colours.
|
||||
"
|
||||
" HELP NEEDED to make this work properly.
|
||||
|
||||
if exists("g:zenburn_enable_TagHighlight") && g:zenburn_enable_TagHighlight
|
||||
" CTag support may vary, but the first step is to start using it so
|
||||
" we can fix it!
|
||||
"
|
||||
" Consult /plugin/TagHighlight/data/kinds.txt for info on your
|
||||
" language and what's been defined.
|
||||
"
|
||||
" There is potential for language indepedent features here. (Acutally,
|
||||
" seems it may be required for this to be useful...) This way we can
|
||||
" implement features depending on how well CTags are currently implemented
|
||||
" for the language. ie. Global problem for python is annoying. Special
|
||||
" colors are defined for special language features, etc..
|
||||
"
|
||||
" For now all I care about is python supported features:
|
||||
" c:CTagsClass
|
||||
" f:CTagsFunction
|
||||
" i:CTagsImport
|
||||
" m:CTagsMember
|
||||
" v:CTagsGlobalVariable
|
||||
"
|
||||
" Note: TagHighlight defaults to setting new tags to Keyword
|
||||
" highlighting.
|
||||
|
||||
" TODO conditionally run each section
|
||||
" BEGIN Python Section
|
||||
hi link Class Function
|
||||
hi link Import PythonInclude
|
||||
hi link Member Function
|
||||
"Note: Function is already defined
|
||||
|
||||
" Highlighter seems to think a lot of things are global variables even
|
||||
" though they're not. Example: python method-local variable is
|
||||
" coloured as a global variable. They should not be global, since
|
||||
" they're not visible outside the method.
|
||||
" If this is some very bright colour group then things look bad.
|
||||
" hi link GlobalVariable Identifier
|
||||
|
||||
" Because of this problem I am disabling the feature by setting it to
|
||||
" Normal instead
|
||||
hi link GlobalVariable Normal
|
||||
" END Python Section
|
||||
|
||||
" Starting point for other languages.
|
||||
hi link GlobalConstant Constant
|
||||
hi link EnumerationValue Float
|
||||
hi link EnumerationName Identifier
|
||||
hi link DefinedName WarningMsg
|
||||
hi link LocalVariable WarningMsg
|
||||
hi link Structure WarningMsg
|
||||
hi link Union WarningMsg
|
||||
endif
|
||||
|
||||
" Terminal support for Vim 8+
|
||||
if version >= 802
|
||||
let g:terminal_ansi_colors = [
|
||||
\ '#1f1f1f', '#cc9393',
|
||||
\ '#5f7f5f', '#ffd7a7',
|
||||
\ '#8cb0d3', '#8f8f8f',
|
||||
\ '#71d3b4', '#dfe4cf',
|
||||
\ '#6f6f6f', '#ecb3b3',
|
||||
\ '#ffd7a7', '#8cb0d3',
|
||||
\ '#8f8f8f', '#71d3b4',
|
||||
\ '#dfe4cf', '#ffcfaf',
|
||||
\]
|
||||
else
|
||||
if version >= 800
|
||||
hi Terminal ctermbg=232 guibg=#0f0f0f ctermfg=248 guifg=#a8a8a8
|
||||
endif
|
||||
endif
|
61
roles/nvim/tasks/main.yml
Normal file
61
roles/nvim/tasks/main.yml
Normal file
@ -0,0 +1,61 @@
|
||||
---
|
||||
- name: Install neovim package
|
||||
ansible.builtin.package:
|
||||
name:
|
||||
- neovim
|
||||
- ripgrep
|
||||
- git
|
||||
state: present
|
||||
tags: always
|
||||
|
||||
- name: Create a config directory if it doesn't exist
|
||||
ansible.builtin.file:
|
||||
path: ~/.config/nvim
|
||||
state: directory
|
||||
mode: '0755'
|
||||
tags: always
|
||||
|
||||
- name: Create colour directory if it doesn't exist
|
||||
ansible.builtin.file:
|
||||
path: ~/.config/nvim/colors
|
||||
state: directory
|
||||
mode: '0755'
|
||||
tags: always
|
||||
|
||||
- name: Copy over colourscheme
|
||||
ansible.builtin.copy:
|
||||
src: zenburn.vim
|
||||
dest: ~/.config/nvim/colors/zenburn.vim
|
||||
mode: '0644'
|
||||
tags: always
|
||||
|
||||
- name: Server specific nvim tasks
|
||||
tags: server
|
||||
block:
|
||||
- name: Copy over config
|
||||
ansible.builtin.copy:
|
||||
src: init_server.lua
|
||||
dest: ~/.config/nvim/init.lua
|
||||
mode: '0755'
|
||||
|
||||
- name: PC specific nvim tasks
|
||||
tags: pc
|
||||
block:
|
||||
- name: Copy over config
|
||||
ansible.builtin.copy:
|
||||
src: init_pc.lua
|
||||
dest: ~/.config/nvim/init.lua
|
||||
mode: '0755'
|
||||
|
||||
- name: Install language servers
|
||||
become: true
|
||||
ansible.builtin.package:
|
||||
name:
|
||||
- lua-language-server # Lua
|
||||
- texlab # Tex
|
||||
- pyright # Python
|
||||
- typescript-language-server # JavaScript, TypeScript
|
||||
- ccls # C, C++
|
||||
- yaml-language-server # YAML
|
||||
# TODO vscode-langservers-extracted
|
||||
# TODO rust-analyzer
|
6
site.yml
Normal file
6
site.yml
Normal file
@ -0,0 +1,6 @@
|
||||
---
|
||||
- name: Dotfile Playbook
|
||||
hosts: localhost
|
||||
tags: always
|
||||
roles:
|
||||
- nvim
|
9
variables.yml
Normal file
9
variables.yml
Normal file
@ -0,0 +1,9 @@
|
||||
packages_on_all:
|
||||
- git
|
||||
- ripgrep
|
||||
|
||||
packages_on_server:
|
||||
- todo
|
||||
|
||||
packages_on_client:
|
||||
- todo
|
Loading…
Reference in New Issue
Block a user