neovim! and some tmux adjustment
This commit is contained in:
parent
6ce3d877f4
commit
0ce81731a0
15 changed files with 614 additions and 3 deletions
1
.config/nvim/after/plugin/fugitive.lua
Normal file
1
.config/nvim/after/plugin/fugitive.lua
Normal file
|
@ -0,0 +1 @@
|
||||||
|
vim.keymap.set("n", "<leader>gs", vim.cmd.Git)
|
345
.config/nvim/after/plugin/heirline.lua
Normal file
345
.config/nvim/after/plugin/heirline.lua
Normal file
|
@ -0,0 +1,345 @@
|
||||||
|
|
||||||
|
local augroup = vim.api.nvim_create_augroup('config', {clear = false})
|
||||||
|
|
||||||
|
-- stolen from https://gitlab.com/Iron_E/dotfiles/-/blob/master/.config/nvim/lua/plugin/heirline.lua
|
||||||
|
|
||||||
|
|
||||||
|
--[[
|
||||||
|
_ _ _ _ _
|
||||||
|
| |__ ___(_)_ __| (_)_ __ ___ _ ____ _(_)_ __ ___
|
||||||
|
| '_ \ / _ \ | '__| | | '_ \ / _ \ | '_ \ \ / / | '_ ` _ \
|
||||||
|
| | | | __/ | | | | | | | | __/_| | | \ V /| | | | | | |
|
||||||
|
|_| |_|\___|_|_| |_|_|_| |_|\___(_)_| |_|\_/ |_|_| |_| |_|
|
||||||
|
--]]
|
||||||
|
|
||||||
|
local devicons = require 'nvim-web-devicons'
|
||||||
|
|
||||||
|
--[[/* CONSTANTS */]]
|
||||||
|
|
||||||
|
-- Defined in https://github.com/Iron-E/nvim-highlite
|
||||||
|
local BLACK = '#202020'
|
||||||
|
local BLUE = '#7766ff'
|
||||||
|
local CYAN = '#33dbc3'
|
||||||
|
local GRAY_DARK = '#353535'
|
||||||
|
local GRAY_LIGHT = '#c0c0c0'
|
||||||
|
local GREEN = '#22ff22'
|
||||||
|
local GREEN_DARK = '#70d533'
|
||||||
|
local GREEN_LIGHT = '#99ff99'
|
||||||
|
local ICE = '#95c5ff'
|
||||||
|
local MAGENTA = '#d5508f'
|
||||||
|
local MAGENTA_DARK = '#bb0099'
|
||||||
|
local ORANGE = '#ff8900'
|
||||||
|
local ORANGE_LIGHT = '#f0af00'
|
||||||
|
local PINK = '#ffa6ff'
|
||||||
|
local PINK_LIGHT = '#ffb7b7'
|
||||||
|
local PURPLE = '#cf55f0'
|
||||||
|
local PURPLE_LIGHT = '#af60af'
|
||||||
|
local RED = '#ee4a59'
|
||||||
|
local RED_DARK = '#a80000'
|
||||||
|
local RED_LIGHT = '#ff4090'
|
||||||
|
local TAN = '#f4c069'
|
||||||
|
local TEAL = '#60afff'
|
||||||
|
local TURQOISE = '#2bff99'
|
||||||
|
local WHITE = '#ffffff'
|
||||||
|
local YELLOW = '#f0df33'
|
||||||
|
|
||||||
|
local SIDEBAR = BLACK
|
||||||
|
local MIDBAR = GRAY_DARK
|
||||||
|
local TEXT = GRAY_LIGHT
|
||||||
|
|
||||||
|
--[[/* HELPERS */]]
|
||||||
|
|
||||||
|
--- The width of the screen
|
||||||
|
local columns = vim.api.nvim_get_option_value('columns', {})
|
||||||
|
vim.api.nvim_create_autocmd('VimResized', {
|
||||||
|
callback = function() columns = vim.api.nvim_get_option_value('columns', {}) end,
|
||||||
|
group = 'config',
|
||||||
|
})
|
||||||
|
|
||||||
|
do
|
||||||
|
local command = 'doautocmd User BufEnterOrGitSignsUpdate'
|
||||||
|
vim.api.nvim_create_autocmd('BufEnter', {command = command, group = 'config'})
|
||||||
|
vim.api.nvim_create_autocmd('User', {command = command, group = 'config', pattern = 'GitSignsUpdate'})
|
||||||
|
end
|
||||||
|
|
||||||
|
--- Set buffer variables for file icon and color.
|
||||||
|
--- @return {color: string, icon: string}
|
||||||
|
local function buf_init_devicons()
|
||||||
|
local icon, color = devicons.get_icon(vim.fn.expand '%:t', vim.fn.expand '%:e', {default = true})
|
||||||
|
local dev_icons = {color = vim.api.nvim_get_hl(0, {link = false, name = color}).fg, icon = icon}
|
||||||
|
|
||||||
|
vim.b.dev_icons = dev_icons
|
||||||
|
return dev_icons
|
||||||
|
end
|
||||||
|
|
||||||
|
--- @return {color: string, icon: string}
|
||||||
|
local function filetype_info()
|
||||||
|
return vim.b.dev_icons or buf_init_devicons()
|
||||||
|
end
|
||||||
|
|
||||||
|
--- Redraw the statusline
|
||||||
|
local redrawstatus = vim.schedule_wrap(function() vim.api.nvim_command 'redrawstatus' end)
|
||||||
|
|
||||||
|
--[[/* HEIRLINE CONFIG */]]
|
||||||
|
|
||||||
|
--- Components separated by this component will be padded with an equal number of spaces.
|
||||||
|
local ALIGN = {provider = '%='}
|
||||||
|
|
||||||
|
--- A left separator.
|
||||||
|
local LEFT_SEPARATOR = {provider = ''}
|
||||||
|
|
||||||
|
--- A right separator.
|
||||||
|
local RIGHT_SEPARATOR = {provider = ''}
|
||||||
|
|
||||||
|
require('heirline').setup({statusline =
|
||||||
|
{
|
||||||
|
-- LEFT {{{
|
||||||
|
{ -- ViMode {{{
|
||||||
|
hl = function(self)
|
||||||
|
vim.api.nvim_set_hl(0, self.group, {bg = SIDEBAR, fg = self.color, bold = true})
|
||||||
|
return self.group
|
||||||
|
end,
|
||||||
|
init = function(self)
|
||||||
|
if vim.g.libmodalActiveModeName then
|
||||||
|
self.name = vim.g.libmodalActiveModeName
|
||||||
|
self.color = self.modes[self.name]
|
||||||
|
else
|
||||||
|
local current_mode = self.modes[vim.api.nvim_get_mode().mode]
|
||||||
|
|
||||||
|
self.name = current_mode[1]
|
||||||
|
self.color = current_mode[2]
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
provider = function(self) return '▊ ' .. self.name .. ' ' end,
|
||||||
|
static =
|
||||||
|
{ -- {{{
|
||||||
|
group = 'HeirlineViMode',
|
||||||
|
modes =
|
||||||
|
{
|
||||||
|
['c'] = {'COMMAND-LINE', RED},
|
||||||
|
['ce'] = {'NORMAL EX', RED_DARK},
|
||||||
|
['cv'] = {'EX', RED_LIGHT},
|
||||||
|
|
||||||
|
['i'] = {'INSERT', GREEN},
|
||||||
|
|
||||||
|
['ic'] = {'INS-COMPLETE', GREEN_LIGHT},
|
||||||
|
['ix'] = {'INS-COMPLETE', GREEN_LIGHT},
|
||||||
|
['Rc'] = {'REP-COMPLETE', GREEN_LIGHT},
|
||||||
|
['Rvc'] = {'VIRT-REP-COMPLETE', GREEN_LIGHT},
|
||||||
|
['Rvx'] = {'VIRT-REP-COMPLETE', GREEN_LIGHT},
|
||||||
|
['Rx'] = {'REP-COMPLETE', GREEN_LIGHT},
|
||||||
|
|
||||||
|
['n'] = {'NORMAL', PURPLE_LIGHT},
|
||||||
|
['niI'] = {'INS-NORMAL', PURPLE_LIGHT},
|
||||||
|
['niR'] = {'REP-NORMAL', PURPLE_LIGHT},
|
||||||
|
['niV'] = {'VIRT-REP-NORMAL', PURPLE_LIGHT},
|
||||||
|
['nt'] = {'TERM-NORMAL', PURPLE_LIGHT},
|
||||||
|
['ntT'] = {'TERM-NORMAL', PURPLE_LIGHT},
|
||||||
|
|
||||||
|
['no'] = {'OPERATOR-PENDING', PURPLE},
|
||||||
|
['nov'] = {'CHAR OPERATOR-PENDING', PURPLE},
|
||||||
|
['noV'] = {'LINE OPERATOR-PENDING', PURPLE},
|
||||||
|
['no'] = {'BLOCK OPERATOR-PENDING', PURPLE},
|
||||||
|
|
||||||
|
['R'] = {'REPLACE', PINK},
|
||||||
|
['Rv'] = {'VIRT-REPLACE', PINK_LIGHT},
|
||||||
|
|
||||||
|
['r'] = {'HIT-ENTER', CYAN},
|
||||||
|
['rm'] = {'--MORE', CYAN},
|
||||||
|
['r?'] = {':CONFIRM', CYAN},
|
||||||
|
|
||||||
|
['s'] = {'SELECT', TURQOISE},
|
||||||
|
['S'] = {'SELECT LINE', TURQOISE},
|
||||||
|
[''] = {'SELECT', TURQOISE},
|
||||||
|
|
||||||
|
['v'] = {'VISUAL', BLUE},
|
||||||
|
['vs'] = {'SEL-VISUAL', BLUE},
|
||||||
|
['V'] = {'VISUAL LINE', BLUE},
|
||||||
|
['Vs'] = {'SEL-VISUAL LINE', BLUE},
|
||||||
|
[''] = {'VISUAL BLOCK', BLUE},
|
||||||
|
['s'] = {'VISUAL BLOCK', BLUE},
|
||||||
|
|
||||||
|
['t'] = {'TERMINAL', ORANGE},
|
||||||
|
['!'] = {'SHELL', YELLOW},
|
||||||
|
|
||||||
|
-- libmodal
|
||||||
|
['BUFFERS'] = TEAL,
|
||||||
|
['TABLES'] = ORANGE_LIGHT,
|
||||||
|
['TABS'] = TAN,
|
||||||
|
}
|
||||||
|
}, -- }}}
|
||||||
|
update = {'ModeChanged', callback = redrawstatus, pattern = '*:*'},
|
||||||
|
}, -- }}}
|
||||||
|
|
||||||
|
{ -- File Icon {{{
|
||||||
|
hl = function(self) return {bg = SIDEBAR, fg = self.file.color} end,
|
||||||
|
init = function(self) self.file = filetype_info() end,
|
||||||
|
update = 'BufEnter',
|
||||||
|
|
||||||
|
LEFT_SEPARATOR,
|
||||||
|
{
|
||||||
|
hl = function(self) return {bg = self.file.color, fg = SIDEBAR} end,
|
||||||
|
provider = function(self) return ' ' .. self.file.icon .. ' %Y ' end,
|
||||||
|
},
|
||||||
|
|
||||||
|
RIGHT_SEPARATOR,
|
||||||
|
}, -- }}}
|
||||||
|
|
||||||
|
{ -- File Info {{{
|
||||||
|
hl = {bg = SIDEBAR, bold = true, fg = TEXT},
|
||||||
|
|
||||||
|
-- File name
|
||||||
|
{provider = ' %t '},
|
||||||
|
{ -- Readonly {{{
|
||||||
|
condition = function() return vim.api.nvim_get_option_value('readonly', {buf = 0}) end,
|
||||||
|
provider = ' ',
|
||||||
|
update = {'OptionSet', pattern = 'readonly'},
|
||||||
|
}, -- }}}
|
||||||
|
|
||||||
|
{ -- Modified {{{
|
||||||
|
condition = function() return vim.api.nvim_get_option_value('modified', {}) end,
|
||||||
|
provider = ' ',
|
||||||
|
update = 'BufModifiedSet',
|
||||||
|
}, -- }}}
|
||||||
|
|
||||||
|
{ -- File size {{{
|
||||||
|
init = function(self) self.stat = vim.loop.fs_stat(vim.api.nvim_buf_get_name(0)) end,
|
||||||
|
update = {'BufEnter', 'BufWritePost'},
|
||||||
|
|
||||||
|
{
|
||||||
|
condition = function(self) return self.stat end,
|
||||||
|
provider = function(self)
|
||||||
|
local size = self.stat.size
|
||||||
|
|
||||||
|
local i = 1
|
||||||
|
while size > self.conversion and i < #self.units do
|
||||||
|
size = size / self.conversion
|
||||||
|
i = i + 1
|
||||||
|
end
|
||||||
|
|
||||||
|
return ('%.2f%sb '):format(size, self.units[i])
|
||||||
|
end,
|
||||||
|
static = {conversion = 1024, units = {'', 'k', 'm', 'g', 't', 'p', 'e', 'z', 'y'}},
|
||||||
|
},
|
||||||
|
}, -- }}}
|
||||||
|
|
||||||
|
{hl = {fg = MIDBAR}, LEFT_SEPARATOR},
|
||||||
|
}, -- }}}
|
||||||
|
-- }}}
|
||||||
|
|
||||||
|
-- MIDDLE {{{
|
||||||
|
{hl = {bg = MIDBAR}, ALIGN},
|
||||||
|
|
||||||
|
{ -- Diagnostics {{{
|
||||||
|
hl = {bg = MIDBAR, fg = SIDEBAR},
|
||||||
|
init = function(self)
|
||||||
|
local diagnostics = vim.diagnostic.get(0) --- @type Diagnostic[]
|
||||||
|
|
||||||
|
if #diagnostics < 1 then
|
||||||
|
self.diagnostics = nil
|
||||||
|
else
|
||||||
|
self.diagnostics = {0, 0, 0, 0}
|
||||||
|
for _, diagnostic in ipairs(diagnostics) do
|
||||||
|
self.diagnostics[diagnostic.severity] = self.diagnostics[diagnostic.severity] + 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
update = {'BufEnter', 'DiagnosticChanged'},
|
||||||
|
|
||||||
|
{
|
||||||
|
condition = function(self) return self.diagnostics end,
|
||||||
|
|
||||||
|
LEFT_SEPARATOR,
|
||||||
|
{
|
||||||
|
hl = {bg = SIDEBAR},
|
||||||
|
static =
|
||||||
|
{ -- {{{
|
||||||
|
icons = {' ', ' ', ' ', ' '},
|
||||||
|
|
||||||
|
--- @param severity 1|2|3|4
|
||||||
|
--- @return nil|string
|
||||||
|
provide = function(self, severity)
|
||||||
|
if self.diagnostics[severity] > 0 then
|
||||||
|
local str = self.icons[severity] .. self.diagnostics[severity]
|
||||||
|
|
||||||
|
for i = severity + 1, #self.diagnostics do
|
||||||
|
if self.diagnostics[i] > 0 then
|
||||||
|
str = str .. ' '
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return str
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
}, -- }}}
|
||||||
|
|
||||||
|
{hl = {fg = RED}, provider = function(self) return self:provide(vim.diagnostic.severity.ERROR) end},
|
||||||
|
{hl = {fg = ORANGE}, provider = function(self) return self:provide(vim.diagnostic.severity.WARN) end},
|
||||||
|
{hl = {fg = PINK_LIGHT}, provider = function(self) return self:provide(vim.diagnostic.severity.INFO) end},
|
||||||
|
{hl = {fg = MAGENTA}, provider = function(self) return self:provide(vim.diagnostic.severity.HINT) end},
|
||||||
|
},
|
||||||
|
|
||||||
|
RIGHT_SEPARATOR,
|
||||||
|
},
|
||||||
|
}, -- }}}
|
||||||
|
-- }}}
|
||||||
|
|
||||||
|
-- RIGHT {{{
|
||||||
|
{hl = {bg = MIDBAR}, ALIGN},
|
||||||
|
|
||||||
|
{ -- Git {{{
|
||||||
|
init = function(self) self.status = vim.b.gitsigns_status_dict end,
|
||||||
|
update = {'User', callback = redrawstatus, pattern = 'BufEnterOrGitSignsUpdate'},
|
||||||
|
|
||||||
|
{ -- Diff {{{
|
||||||
|
hl = {bg = MIDBAR},
|
||||||
|
|
||||||
|
{
|
||||||
|
condition = function(self) return self.status end,
|
||||||
|
static =
|
||||||
|
{
|
||||||
|
--- @param sign string
|
||||||
|
--- @param change string
|
||||||
|
--- @return nil|string
|
||||||
|
provide = function(self, sign, change)
|
||||||
|
local count = self.status[change] or 0
|
||||||
|
if count > 0 then return sign .. count end
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
{hl = {fg = GREEN}, provider = function(self) return self:provide('+', 'added') end},
|
||||||
|
{hl = {fg = ORANGE_LIGHT}, provider = function(self) return self:provide('~', 'changed') end},
|
||||||
|
{hl = {fg = RED_LIGHT}, provider = function(self) return self:provide('-', 'removed') end},
|
||||||
|
{provider = ' '},
|
||||||
|
},
|
||||||
|
}, -- }}}
|
||||||
|
|
||||||
|
{ -- Branch {{{
|
||||||
|
hl = {bg = GREEN_DARK},
|
||||||
|
|
||||||
|
{hl = {fg = MIDBAR}, RIGHT_SEPARATOR},
|
||||||
|
{provider = ' '},
|
||||||
|
{
|
||||||
|
condition = function(self) return self.status end,
|
||||||
|
hl = {fg = SIDEBAR, bold = true},
|
||||||
|
provider = function(self) return ' ' .. self.status.head .. ' ' end,
|
||||||
|
},
|
||||||
|
|
||||||
|
{hl = {fg = SIDEBAR}, LEFT_SEPARATOR},
|
||||||
|
}, -- }}}
|
||||||
|
}, -- }}}
|
||||||
|
|
||||||
|
-- Column Number
|
||||||
|
{hl = {fg = TEXT, bg = SIDEBAR}, provider = ' %v '},
|
||||||
|
|
||||||
|
{ -- Line Percentage {{{
|
||||||
|
hl = {bg = MAGENTA_DARK},
|
||||||
|
|
||||||
|
{hl = {fg = SIDEBAR}, RIGHT_SEPARATOR},
|
||||||
|
{hl = {fg = WHITE}, provider = ' %p%% '},
|
||||||
|
}, -- }}}
|
||||||
|
|
||||||
|
-- }}}
|
||||||
|
}})
|
||||||
|
|
50
.config/nvim/after/plugin/lsp.lua
Normal file
50
.config/nvim/after/plugin/lsp.lua
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
-- here you can setup the language servers
|
||||||
|
|
||||||
|
local lsp_zero = require('lsp-zero')
|
||||||
|
|
||||||
|
lsp_zero.on_attach(function(client, bufnr)
|
||||||
|
-- see :help lsp-zero-keybindings
|
||||||
|
-- to learn the available actions
|
||||||
|
lsp_zero.default_keymaps({buffer = bufnr})
|
||||||
|
end)
|
||||||
|
|
||||||
|
-- to learn how to use mason.nvim
|
||||||
|
-- read this: https://github.com/VonHeikemen/lsp-zero.nvim/blob/v3.x/doc/md/guide/integrate-with-mason-nvim.md
|
||||||
|
require('mason').setup({})
|
||||||
|
require('mason-lspconfig').setup({
|
||||||
|
|
||||||
|
-- https://github.com/williamboman/mason-lspconfig.nvim?tab=readme-ov-file
|
||||||
|
ensure_installed = {
|
||||||
|
"pylsp",
|
||||||
|
"pyright",
|
||||||
|
},
|
||||||
|
handlers = {
|
||||||
|
function(server_name)
|
||||||
|
require('lspconfig')[server_name].setup({})
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
require "lspconfig".pylsp.setup {
|
||||||
|
on_attach = on_attach,
|
||||||
|
settings = {
|
||||||
|
pylsp = {
|
||||||
|
plugins = {
|
||||||
|
flake8 = {
|
||||||
|
enabled = false,
|
||||||
|
maxLineLength = 119,
|
||||||
|
},
|
||||||
|
mypy = {
|
||||||
|
enabled = true,
|
||||||
|
},
|
||||||
|
pycodestyle = {
|
||||||
|
enabled = false,
|
||||||
|
},
|
||||||
|
pyflakes = {
|
||||||
|
enabled = false,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
25
.config/nvim/after/plugin/treesitter.lua
Normal file
25
.config/nvim/after/plugin/treesitter.lua
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
require'nvim-treesitter.configs'.setup {
|
||||||
|
-- A list of parser names, or "all" (the five listed parsers should always be installed)
|
||||||
|
ensure_installed = { "c", "lua", "vim", "vimdoc", "query", "javascript", "python" },
|
||||||
|
--ensure_installed = { "c", "lua", "vim", "vimdoc", "query" },
|
||||||
|
|
||||||
|
-- Install parsers synchronously (only applied to `ensure_installed`)
|
||||||
|
sync_install = false,
|
||||||
|
|
||||||
|
-- Automatically install missing parsers when entering buffer
|
||||||
|
-- Recommendation: set to false if you don't have `tree-sitter` CLI installed locally
|
||||||
|
auto_install = true,
|
||||||
|
|
||||||
|
---- If you need to change the installation directory of the parsers (see -> Advanced Setup)
|
||||||
|
-- parser_install_dir = "/some/path/to/store/parsers", -- Remember to run vim.opt.runtimepath:append("/some/path/to/store/parsers")!
|
||||||
|
|
||||||
|
highlight = {
|
||||||
|
enable = true,
|
||||||
|
|
||||||
|
-- Setting this to true will run `:h syntax` and tree-sitter at the same time.
|
||||||
|
-- Set this to `true` if you depend on 'syntax' being enabled (like for indentation).
|
||||||
|
-- Using this option may slow down your editor, and you may see some duplicate highlights.
|
||||||
|
-- Instead of true it can also be a list of languages
|
||||||
|
additional_vim_regex_highlighting = false,
|
||||||
|
},
|
||||||
|
}
|
1
.config/nvim/after/plugin/undotree.lua
Normal file
1
.config/nvim/after/plugin/undotree.lua
Normal file
|
@ -0,0 +1 @@
|
||||||
|
vim.keymap.set("n", "<leader>u", vim.cmd.UndotreeToggle)
|
1
.config/nvim/init.lua
Normal file
1
.config/nvim/init.lua
Normal file
|
@ -0,0 +1 @@
|
||||||
|
require("erik")
|
20
.config/nvim/lazy-lock.json
Normal file
20
.config/nvim/lazy-lock.json
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
{
|
||||||
|
"LuaSnip": { "branch": "master", "commit": "50fcf17db7c75af80e6b6109acfbfb4504768780" },
|
||||||
|
"cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" },
|
||||||
|
"gitsigns.nvim": { "branch": "main", "commit": "de18f6b749f6129eb9042a2038590872df4c94a9" },
|
||||||
|
"heirline.nvim": { "branch": "master", "commit": "0d797435e54645a5f98bad7ad6046aac1ef95c1e" },
|
||||||
|
"lazy.nvim": { "branch": "main", "commit": "eb4957442e3182f051b0ae11da32e06d22c190e3" },
|
||||||
|
"lsp-zero.nvim": { "branch": "v3.x", "commit": "16de3b18c5f7b6230d89b8e64ce9a4801b6f8d08" },
|
||||||
|
"mason-lspconfig.nvim": { "branch": "main", "commit": "37a336b653f8594df75c827ed589f1c91d91ff6c" },
|
||||||
|
"mason.nvim": { "branch": "main", "commit": "0950b15060067f752fde13a779a994f59516ce3d" },
|
||||||
|
"nvim-cmp": { "branch": "main", "commit": "a110e12d0b58eefcf5b771f533fc2cf3050680ac" },
|
||||||
|
"nvim-lspconfig": { "branch": "master", "commit": "4d38bece98300e3e5cd24a9aa0d0ebfea4951c16" },
|
||||||
|
"nvim-treesitter": { "branch": "master", "commit": "26171d8f105d97746371d1b6c07c8d88bf13fec2" },
|
||||||
|
"nvim-web-devicons": { "branch": "master", "commit": "c0cfc1738361b5da1cd0a962dd6f774cc444f856" },
|
||||||
|
"plenary.nvim": { "branch": "master", "commit": "a3e3bc82a3f95c5ed0d7201546d5d2c19b20d683" },
|
||||||
|
"telescope.nvim": { "branch": "master", "commit": "f12b15e1b3a33524eb06a1ae7bc852fb1fd92197" },
|
||||||
|
"tokyonight.nvim": { "branch": "main", "commit": "024621763d91bb48f2b486df529c7aaeb8d6d355" },
|
||||||
|
"undotree": { "branch": "master", "commit": "56c684a805fe948936cda0d1b19505b84ad7e065" },
|
||||||
|
"vim-better-whitespace": { "branch": "master", "commit": "029f35c783f1b504f9be086b9ea757a36059c846" },
|
||||||
|
"vim-fugitive": { "branch": "master", "commit": "4f59455d2388e113bd510e85b310d15b9228ca0d" }
|
||||||
|
}
|
38
.config/nvim/lua/erik/colorscheme.lua
Normal file
38
.config/nvim/lua/erik/colorscheme.lua
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
require("tokyonight").setup({
|
||||||
|
-- your configuration comes here
|
||||||
|
-- or leave it empty to use the default settings
|
||||||
|
style = "night", -- The theme comes in three styles, `storm`, `moon`, a darker variant `night` and `day`
|
||||||
|
light_style = "day", -- The theme is used when the background is set to light
|
||||||
|
transparent = true, -- Enable this to disable setting the background color
|
||||||
|
terminal_colors = true, -- Configure the colors used when opening a `:terminal` in [Neovim](https://github.com/neovim/neovim)
|
||||||
|
styles = {
|
||||||
|
-- Style to be applied to different syntax groups
|
||||||
|
-- Value is any valid attr-list value for `:help nvim_set_hl`
|
||||||
|
comments = { italic = true },
|
||||||
|
--keywords = { italic = true },
|
||||||
|
keywords = {},
|
||||||
|
functions = {},
|
||||||
|
variables = {},
|
||||||
|
-- Background styles. Can be "dark", "transparent" or "normal"
|
||||||
|
sidebars = "dark", -- style for sidebars, see below
|
||||||
|
floats = "dark", -- style for floating windows
|
||||||
|
},
|
||||||
|
sidebars = { "qf", "help" }, -- Set a darker background on sidebar-like windows. For example: `["qf", "vista_kind", "terminal", "packer"]`
|
||||||
|
day_brightness = 0.3, -- Adjusts the brightness of the colors of the **Day** style. Number between 0 and 1, from dull to vibrant colors
|
||||||
|
hide_inactive_statusline = false, -- Enabling this option, will hide inactive statuslines and replace them with a thin border instead. Should work with the standard **StatusLine** and **LuaLine**.
|
||||||
|
dim_inactive = false, -- dims inactive windows
|
||||||
|
lualine_bold = false, -- When `true`, section headers in the lualine theme will be bold
|
||||||
|
|
||||||
|
--- You can override specific color groups to use other groups or a hex color
|
||||||
|
--- function will be called with a ColorScheme table
|
||||||
|
---@param colors ColorScheme
|
||||||
|
on_colors = function(colors) end,
|
||||||
|
|
||||||
|
--- You can override specific highlights to use other groups or a hex color
|
||||||
|
--- function will be called with a Highlights and ColorScheme table
|
||||||
|
---@param highlights Highlights
|
||||||
|
---@param colors ColorScheme
|
||||||
|
on_highlights = function(highlights, colors) end,
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.cmd[[colorscheme tokyonight]]
|
4
.config/nvim/lua/erik/init.lua
Normal file
4
.config/nvim/lua/erik/init.lua
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
require("erik.remap")
|
||||||
|
require("erik.lazy")
|
||||||
|
require("erik.colorscheme")
|
||||||
|
require("erik.options")
|
71
.config/nvim/lua/erik/lazy.lua
Normal file
71
.config/nvim/lua/erik/lazy.lua
Normal file
|
@ -0,0 +1,71 @@
|
||||||
|
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||||
|
if not (vim.uv or vim.loop).fs_stat(lazypath) then
|
||||||
|
vim.fn.system({
|
||||||
|
"git",
|
||||||
|
"clone",
|
||||||
|
"--filter=blob:none",
|
||||||
|
"https://github.com/folke/lazy.nvim.git",
|
||||||
|
"--branch=stable", -- latest stable release
|
||||||
|
lazypath,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
vim.opt.rtp:prepend(lazypath)
|
||||||
|
|
||||||
|
--require("lazy").setup(plugins, opts)
|
||||||
|
|
||||||
|
|
||||||
|
require("lazy").setup({
|
||||||
|
{
|
||||||
|
"nvim-telescope/telescope.nvim",
|
||||||
|
lazy = false,
|
||||||
|
dependencies = { 'nvim-lua/plenary.nvim' },
|
||||||
|
config = function()
|
||||||
|
local builtin = require('telescope.builtin')
|
||||||
|
vim.keymap.set('n', '<leader>ff', builtin.find_files, {})
|
||||||
|
vim.keymap.set('n', '<leader>fg', builtin.live_grep, {})
|
||||||
|
vim.keymap.set('n', '<leader>fb', builtin.buffers, {})
|
||||||
|
vim.keymap.set('n', '<leader>\\', builtin.buffers, {})
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
{ "folke/tokyonight.nvim", lazy = false, priority = 1000, opts = {} },
|
||||||
|
|
||||||
|
{
|
||||||
|
"nvim-treesitter/nvim-treesitter",
|
||||||
|
lazy = false,
|
||||||
|
config = function()
|
||||||
|
vim.cmd('TSUpdate')
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
{ "mbbill/undotree", lazy = false },
|
||||||
|
|
||||||
|
{ "tpope/vim-fugitive", lazy = false },
|
||||||
|
|
||||||
|
{ "ntpeters/vim-better-whitespace", lazy = false },
|
||||||
|
|
||||||
|
-- { "glepnir/galaxyline.nvim", lazy = false },
|
||||||
|
{
|
||||||
|
"rebelot/heirline.nvim",
|
||||||
|
lazy = false,
|
||||||
|
dependencies = {'gitsigns.nvim', 'nvim-web-devicons'},
|
||||||
|
},
|
||||||
|
|
||||||
|
{ "lewis6991/gitsigns.nvim" },
|
||||||
|
{ "nvim-tree/nvim-web-devicons" },
|
||||||
|
|
||||||
|
-- LSP stuff
|
||||||
|
|
||||||
|
--- Uncomment the two plugins below if you want to manage the language servers from neovim
|
||||||
|
{'williamboman/mason.nvim'},
|
||||||
|
{'williamboman/mason-lspconfig.nvim'},
|
||||||
|
|
||||||
|
{'VonHeikemen/lsp-zero.nvim', branch = 'v3.x'},
|
||||||
|
{'neovim/nvim-lspconfig'},
|
||||||
|
{'hrsh7th/cmp-nvim-lsp'},
|
||||||
|
{'hrsh7th/nvim-cmp'},
|
||||||
|
{'L3MON4D3/LuaSnip'},
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
|
33
.config/nvim/lua/erik/options.lua
Normal file
33
.config/nvim/lua/erik/options.lua
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
|
||||||
|
vim.opt.incsearch = true -- show search incrementally as it's run
|
||||||
|
|
||||||
|
vim.opt.scrolloff = 8 -- try to have at least 8 rows at the bottom of the screen
|
||||||
|
|
||||||
|
vim.opt.updatetime = 50
|
||||||
|
|
||||||
|
vim.opt.signcolumn = "no" -- no no no
|
||||||
|
|
||||||
|
-- from my original vimrc
|
||||||
|
vim.opt.expandtab = true
|
||||||
|
|
||||||
|
-- formatoptions
|
||||||
|
-- https://vimdoc.sourceforge.net/htmldoc/change.html#fo-table
|
||||||
|
-- my original was cqr:
|
||||||
|
-- c: Auto-wrap comments using textwidth, inserting the current comment leader automatically.
|
||||||
|
-- q: Allow formatting of comments with "gq".
|
||||||
|
-- r: Automatically insert the current comment leader after hitting <Enter> in Insert mode.
|
||||||
|
-- default is jcroql:
|
||||||
|
-- j: (nvim) Where it makes sense, remove a comment leader when joining lines.
|
||||||
|
-- o: Automatically insert the current comment leader after hitting 'o' or 'O' in Normal mode.
|
||||||
|
-- l: Long lines are not broken in insert mode: When a line was longer than 'textwidth' when the insert command started, Vim does not automatically format it.
|
||||||
|
--
|
||||||
|
-- the defaults seem fine
|
||||||
|
|
||||||
|
vim.opt.shiftwidth = 4
|
||||||
|
vim.opt.tabstop = 4
|
||||||
|
|
||||||
|
-- -- whitespace
|
||||||
|
-- vim.opt.listchars.tab = " "
|
||||||
|
-- vim.opt.listchars.trail = " "
|
||||||
|
-- vim.opt.listchars.extends = "»"
|
||||||
|
-- vim.opt.listchars.precedes = "«"
|
15
.config/nvim/lua/erik/remap.lua
Normal file
15
.config/nvim/lua/erik/remap.lua
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
vim.g.mapleader = "\\"
|
||||||
|
vim.keymap.set("n", "<leader>ee", vim.cmd.Ex)
|
||||||
|
|
||||||
|
-- other stuff from https://github.com/ThePrimeagen/init.lua/blob/master/lua/theprimeagen/remap.lua
|
||||||
|
vim.keymap.set("n", "<leader>x", "<cmd>!chmod +x %<CR>", { silent = true }) -- x to make executable
|
||||||
|
|
||||||
|
|
||||||
|
-- from my original vimrc
|
||||||
|
vim.keymap.set("n", "<C-Z>", vim.cmd.shell)
|
||||||
|
|
||||||
|
vim.keymap.set("n", "<C-p>", vim.cmd.bprev)
|
||||||
|
vim.keymap.set("n", "<C-n>", vim.cmd.bnext)
|
||||||
|
|
||||||
|
vim.keymap.set("n", "<leader>q", vim.cmd.nohlsearch)
|
||||||
|
|
4
.config/nvim/lua/plugins/core.lua
Normal file
4
.config/nvim/lua/plugins/core.lua
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
return {
|
||||||
|
{ "folke/lazy.nvim", version = false },
|
||||||
|
{ "nvim-telescope/telescope.nvim", version=false },
|
||||||
|
}
|
0
.config/nvim/lua/plugins/telescope.lua
Normal file
0
.config/nvim/lua/plugins/telescope.lua
Normal file
|
@ -79,11 +79,14 @@ if-shell "hostname | grep -q meathook" "set -g status-left '#[bg=#1111ff,fg=colo
|
||||||
|
|
||||||
# Highlight active window
|
# Highlight active window
|
||||||
set-window-option -g window-status-current-format "#[bg=#000011,fg=#112233] #[bg=#000011,fg=#bbffbb]#I:#W #[bg=#112233,fg=#000011]"
|
set-window-option -g window-status-current-format "#[bg=#000011,fg=#112233] #[bg=#000011,fg=#bbffbb]#I:#W #[bg=#112233,fg=#000011]"
|
||||||
set-window-option -g window-status-format "#I:#W "
|
set-window-option -g window-status-format " #I:#W "
|
||||||
|
set-window-option -g window-status-separator "" # UGH this doesn't work -- tmux falls back to " "
|
||||||
|
|
||||||
# Inactive windows get low-contrast; active window sharper
|
# Inactive windows get low-contrast; active window sharper
|
||||||
set -g window-style 'fg=colour246,bg=#152030'
|
#set -g window-style 'fg=colour246,bg=#152030'
|
||||||
set -g window-active-style 'fg=colour255,bg=black'
|
set -g window-style 'fg=colour246,bg=#252731'
|
||||||
|
#set -g window-active-style 'fg=colour255,bg=black'
|
||||||
|
set -g window-active-style 'fg=colour255,bg=#1e2030'
|
||||||
|
|
||||||
# Automatically set window title
|
# Automatically set window title
|
||||||
set-option -g set-titles on
|
set-option -g set-titles on
|
||||||
|
|
Loading…
Reference in a new issue