Compare commits
10 commits
332ff948ed
...
0beaaf14b7
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0beaaf14b7 | ||
|
|
bb94a399de | ||
|
|
c28dd3e9a9 | ||
|
|
cc99d55125 | ||
|
|
92bd99d8ea | ||
|
|
d9ac8b2bd1 | ||
|
|
5519206fdd | ||
|
|
91f7e6f47f | ||
|
|
6aa535a54b | ||
|
|
150e21702e |
25 changed files with 734 additions and 264 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -1,2 +1,2 @@
|
||||||
/plugin/
|
lazy-lock.json
|
||||||
|
|
||||||
|
|
|
||||||
4
after/ftplugin/norg.lua
Normal file
4
after/ftplugin/norg.lua
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
vim.opt.tabstop = 2
|
||||||
|
vim.opt.softtabstop = 2
|
||||||
|
vim.opt.shiftwidth = 2
|
||||||
|
|
||||||
|
|
@ -1,98 +1,110 @@
|
||||||
local palette = {
|
|
||||||
none = "NONE",
|
|
||||||
fg = "#E1E1E1",
|
|
||||||
bg = "#151515",
|
|
||||||
alt_bg = "#171717",
|
|
||||||
accent = "#202020",
|
|
||||||
white = "#E1E1E1",
|
|
||||||
gray = "#373737",
|
|
||||||
medium_gray = "#727272",
|
|
||||||
light_gray = "#AFAFAF",
|
|
||||||
blue = "#BAD7FF",
|
|
||||||
gray_blue = "#7E97AB",
|
|
||||||
medium_gray_blue = "#A2B5C1",
|
|
||||||
cyan = "#88afa2",
|
|
||||||
red = "#b46958",
|
|
||||||
green = "#90A959",
|
|
||||||
yellow = "#F4BF75",
|
|
||||||
orange = "#FFA557",
|
|
||||||
purple = "#AA749F",
|
|
||||||
magenta = "#AA759F",
|
|
||||||
cursor_fg = "#151515",
|
|
||||||
cursor_bg = "#D0D0D0",
|
|
||||||
sign_add = "#586935",
|
|
||||||
sign_change = "#51657B",
|
|
||||||
sign_delete = "#984936",
|
|
||||||
error = "#984936",
|
|
||||||
warning = "#ab8550",
|
|
||||||
info = "#ab8550",
|
|
||||||
hint = "#576f82",
|
|
||||||
neogit_light_green = "#2A2E19",
|
|
||||||
neogit_blue = "#1B1F27",
|
|
||||||
neogit_green = "#212513",
|
|
||||||
neogit_light_red = "#402020",
|
|
||||||
neogit_red = "#351D1D",
|
|
||||||
}
|
|
||||||
|
|
||||||
require("no-clown-fiesta").setup({
|
require("no-clown-fiesta").setup({
|
||||||
transparent = true,
|
transparent = true,
|
||||||
})
|
})
|
||||||
|
|
||||||
vim.cmd[[
|
require('rose-pine').setup({
|
||||||
let s:base03 = [ '#151513', 233 ]
|
--- @usage 'auto'|'main'|'moon'|'dawn'
|
||||||
let s:base02 = [ '#202020', 236 ]
|
variant = 'auto',
|
||||||
let s:base01 = [ '#373737', 239 ]
|
--- @usage 'main'|'moon'|'dawn'
|
||||||
let s:base00 = [ '#727272', 242 ]
|
dark_variant = 'main',
|
||||||
let s:base0 = [ '#808070', 244 ]
|
bold_vert_split = false,
|
||||||
let s:base1 = [ '#949484', 246 ]
|
dim_nc_background = false,
|
||||||
let s:base2 = [ '#a8a897', 248 ]
|
disable_background = true,
|
||||||
let s:base3 = [ '#E1E1E1', 253 ]
|
disable_float_background = false,
|
||||||
let s:yellow = [ '#F4BF75', 3 ]
|
disable_italics = true,
|
||||||
let s:orange = [ '#FFA557', 216 ]
|
|
||||||
let s:red = [ '#B46958', 131 ]
|
|
||||||
let s:purple = [ '#AA749F', 181 ]
|
|
||||||
let s:blue = [ '#7E97AB', 109 ]
|
|
||||||
let s:cyan = [ '#BAD7FF', 23 ]
|
|
||||||
let s:green = [ '#90A959', 108 ]
|
|
||||||
let s:white = [ '#AFAFAF', 252 ]
|
|
||||||
|
|
||||||
let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}}
|
--- @usage string hex value or named color from rosepinetheme.com/palette
|
||||||
let s:p.normal.left = [ [ s:base02, s:green ], [ s:base3, s:base01 ] ]
|
groups = {
|
||||||
let s:p.normal.right = [ [ s:base02, s:base1 ], [ s:base2, s:base01 ] ]
|
background = 'base',
|
||||||
let s:p.inactive.right = [ [ s:base02, s:base00 ], [ s:base0, s:base02 ] ]
|
background_nc = '_experimental_nc',
|
||||||
let s:p.inactive.left = [ [ s:base0, s:base02 ], [ s:base00, s:base02 ] ]
|
panel = 'surface',
|
||||||
let s:p.insert.left = [ [ s:base02, s:blue ], [ s:base3, s:base01 ] ]
|
panel_nc = 'base',
|
||||||
let s:p.replace.left = [ [ s:base02, s:purple ], [ s:base3, s:base01 ] ]
|
border = 'highlight_med',
|
||||||
let s:p.visual.left = [ [ s:base02, s:red ], [ s:base3, s:base01 ] ]
|
comment = 'muted',
|
||||||
let s:p.normal.middle = [ [ s:base0, s:base02 ] ]
|
link = 'iris',
|
||||||
let s:p.inactive.middle = [ [ s:base00, s:base02 ] ]
|
punctuation = 'subtle',
|
||||||
let s:p.tabline.left = [ [ s:base3, s:base00 ] ]
|
|
||||||
let s:p.tabline.tabsel = [ [ s:base3, s:base02 ] ]
|
|
||||||
let s:p.tabline.middle = [ [ s:base01, s:base1 ] ]
|
|
||||||
let s:p.tabline.right = copy(s:p.normal.right)
|
|
||||||
let s:p.normal.error = [ [ s:red, s:base02 ] ]
|
|
||||||
let s:p.normal.warning = [ [ s:yellow, s:base01 ] ]
|
|
||||||
|
|
||||||
let g:lightline#colorscheme#mycolors#palette = lightline#colorscheme#flatten(s:p)
|
error = 'love',
|
||||||
let g:lightline = {
|
hint = 'iris',
|
||||||
\ 'colorscheme': 'mycolors',
|
info = 'foam',
|
||||||
\ }
|
warn = 'gold',
|
||||||
|
|
||||||
" Don't need to see mode if lightline is installed
|
headings = {
|
||||||
set noshowmode
|
h1 = 'iris',
|
||||||
]]
|
h2 = 'foam',
|
||||||
|
h3 = 'rose',
|
||||||
|
h4 = 'gold',
|
||||||
|
h5 = 'pine',
|
||||||
|
h6 = 'foam',
|
||||||
|
}
|
||||||
|
-- or set all headings at once
|
||||||
|
-- headings = 'subtle'
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Change specific vim highlight groups
|
||||||
|
-- https://github.com/rose-pine/neovim/wiki/Recipes
|
||||||
|
highlight_groups = {
|
||||||
|
ColorColumn = { bg = 'rose' },
|
||||||
|
|
||||||
|
-- Blend colours against the "base" background
|
||||||
|
CursorLine = { bg = 'foam', blend = 10 },
|
||||||
|
StatusLine = { fg = 'love', bg = 'love', blend = 10 },
|
||||||
|
|
||||||
|
-- By default each group adds to the existing config.
|
||||||
|
-- If you only want to set what is written in this config exactly,
|
||||||
|
-- you can set the inherit option:
|
||||||
|
Search = { bg = 'gold', inherit = false },
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
require("gruvbox").setup({
|
||||||
|
undercurl = true,
|
||||||
|
underline = true,
|
||||||
|
bold = true,
|
||||||
|
italic = {
|
||||||
|
strings = true,
|
||||||
|
comments = true,
|
||||||
|
operators = false,
|
||||||
|
folds = true,
|
||||||
|
},
|
||||||
|
strikethrough = true,
|
||||||
|
invert_selection = false,
|
||||||
|
invert_signs = false,
|
||||||
|
invert_tabline = false,
|
||||||
|
invert_intend_guides = false,
|
||||||
|
inverse = true, -- invert background for search, diffs, statuslines and errors
|
||||||
|
contrast = "", -- can be "hard", "soft" or empty string
|
||||||
|
palette_overrides = {},
|
||||||
|
overrides = {},
|
||||||
|
dim_inactive = false,
|
||||||
|
transparent_mode = true,
|
||||||
|
})
|
||||||
|
|
||||||
|
local c = require('vscode.colors').get_colors()
|
||||||
|
require('vscode').setup({
|
||||||
|
-- Alternatively set style in setup
|
||||||
|
-- style = 'light'
|
||||||
|
|
||||||
|
-- Enable transparent background
|
||||||
|
transparent = true,
|
||||||
|
|
||||||
|
-- Enable italic comment
|
||||||
|
italic_comments = true,
|
||||||
|
|
||||||
|
-- Disable nvim-tree background color
|
||||||
|
disable_nvimtree_bg = true,
|
||||||
|
|
||||||
|
-- Override colors (see ./lua/vscode/colors.lua)
|
||||||
|
color_overrides = {
|
||||||
|
-- vscLineNumber = '#FFFFFF',
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Override highlight groups (see ./lua/vscode/theme.lua)
|
||||||
|
group_overrides = {
|
||||||
|
-- this supports the same val table as vim.api.nvim_set_hl
|
||||||
|
-- use colors from this colorscheme by requiring vscode.colors!
|
||||||
|
Cursor = { fg=c.vscDarkBlue, bg=c.vscLightGreen, bold=true },
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
vim.cmd[[colorscheme no-clown-fiesta]]
|
vim.cmd[[colorscheme no-clown-fiesta]]
|
||||||
|
|
||||||
-- My own color overrides
|
|
||||||
local hl = vim.api.nvim_set_hl
|
|
||||||
hl(0, 'TSConstant', { fg = palette.yellow })
|
|
||||||
hl(0, 'EndOfBuffer', { fg = palette.medium_gray })
|
|
||||||
hl(0, 'ErrorMsg', { fg = palette.yellow })
|
|
||||||
hl(0, 'LineNr', { fg = palette.medium_gray })
|
|
||||||
hl(0, 'MasonNormal', { bg = palette.gray })
|
|
||||||
hl(0, 'NvimTreeCursorLine', { fg = palette.yellow })
|
|
||||||
hl(0, 'NvimTreeEndOfBuffer', { fg = palette.medium_gray })
|
|
||||||
hl(0, 'NvimTreeIndentMarker', { fg = palette.medium_gray })
|
|
||||||
hl(0, 'NvimTreeFolderIcon', { fg = palette.yellow })
|
|
||||||
|
|
||||||
|
|
|
||||||
10
after/plugin/compile-mode.lua
Normal file
10
after/plugin/compile-mode.lua
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
require("compile-mode")
|
||||||
|
|
||||||
|
vim.g.compile_mode = {
|
||||||
|
beleia_setup = true
|
||||||
|
}
|
||||||
|
|
||||||
|
vim.keymap.set("n", "<leader>cC", vim.cmd.Compile, {desc = "Compile"})
|
||||||
|
vim.keymap.set("n", "<leader>cc", vim.cmd.Recompile, {desc = "Recompile"})
|
||||||
|
|
||||||
|
|
||||||
50
after/plugin/dashboard.lua
Normal file
50
after/plugin/dashboard.lua
Normal file
|
|
@ -0,0 +1,50 @@
|
||||||
|
local alpha = require("alpha")
|
||||||
|
local dashboard = require("alpha.themes.dashboard")
|
||||||
|
|
||||||
|
local function footer()
|
||||||
|
local total_plugins = #require("lazy").plugins()
|
||||||
|
local version = vim.version()
|
||||||
|
local nvim_version_info = " NVIM v" .. version.major .. "." .. version.minor .. "." .. version.patch
|
||||||
|
return nvim_version_info .. " " .. total_plugins .. " plugins"
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Set header
|
||||||
|
dashboard.section.header.val = {
|
||||||
|
" ⣴⣶⣤⡤⠦⣤⣀⣤⠆ ⣈⣭⣭⣿⣶⣿⣦⣼⣆ ",
|
||||||
|
" ⠉⠻⢿⣿⠿⣿⣿⣶⣦⠤⠄⡠⢾⣿⣿⡿⠋⠉⠉⠻⣿⣿⡛⣦ ",
|
||||||
|
" ⠈ ⠈⢿⣿⣟⠦⠄⣾⣿⣿⣷ ⠻⠿⢿⣿⣧⣄ ",
|
||||||
|
" ⣸⣿⣿⢧⠄⢻⠻⣿⣿⣷⣄⣀⠄⠢⣀⡀⠈⠙⠿⠄ ",
|
||||||
|
" ⢠⣿⣿⣿⠈ ⠡⠌⣻⣿⣿⣿⣿⣿⣿⣿⣛⣳⣤⣀⣀ ",
|
||||||
|
" ⢠⣧⣶⣥⡤⢄ ⣸⣿⣿⠘ ⢀⣴⣿⣿⡿⠛⣿⣿⣧⠈⢿⠿⠟⠛⠻⠿ ",
|
||||||
|
" ⣰⣿⣿⠛⠻⣿⣿⡦⢹⣿⣷⠄ ⢊⣿⣿⡏ ⢸⣿⣿⡇ ⢀⣠⣄⣾⠄ ",
|
||||||
|
"⣠⣿⠿⠛ ⢀⣿⣿⣷⠘⢿⣿⣦⡀ ⢸⢿⣿⣿⣄ ⣸⣿⣿⡇⣪⣿⡿⠿⣿⣷⡄ ",
|
||||||
|
"⠙⠃ ⣼⣿⡟⠌ ⠈⠻⣿⣿⣦⣌⡇⠻⣿⣿⣷⣿⣿⣿⠐⣿⣿⡇ ⠛⠻⢷⣄",
|
||||||
|
" ⢻⣿⣿⣄ ⠈⠻⣿⣿⣿⣷⣿⣿⣿⣿⣿⡟ ⠫⢿⣿⡆ ⠁",
|
||||||
|
" ⠻⣿⣿⣿⣿⣶⣶⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣀⣤⣾⡿⠃ ",
|
||||||
|
"⢀⣀⠀⣠⣀⣠⣾⣿⣿⡿⠛⠋⠉⠉⠉ ⠉⠉⠉⠉⠛⠻⣿⣿⣷⣄⣀⢿⡽⢻⣦",
|
||||||
|
"⠻⠶⠾⠿⠿⠿⠋⠉ N E O V I M ⠉⠻⠿⠿⠿⠿⠿⠋",
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Set menu
|
||||||
|
dashboard.section.buttons.val = {
|
||||||
|
dashboard.button( "e", " New file" , ":ene <BAR> startinsert <CR>"),
|
||||||
|
dashboard.button( "q", " Quit NVIM", ":qa<CR>"),
|
||||||
|
}
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd("VimEnter", {
|
||||||
|
once = true,
|
||||||
|
callback = function()
|
||||||
|
math.randomseed(os.time())
|
||||||
|
local fg_color = tostring(math.random(0, 12))
|
||||||
|
local hi_setter = "hi AlphaHeader ctermfg="
|
||||||
|
vim.cmd(hi_setter .. fg_color)
|
||||||
|
end
|
||||||
|
})
|
||||||
|
|
||||||
|
dashboard.section.footer.val = footer()
|
||||||
|
|
||||||
|
dashboard.section.header.opts.hl = "Include"
|
||||||
|
dashboard.section.footer.opts.hl = "String"
|
||||||
|
|
||||||
|
alpha.setup(dashboard.opts)
|
||||||
|
|
||||||
|
|
@ -7,7 +7,7 @@ vim.g.firenvim_config = {
|
||||||
priority = 0,
|
priority = 0,
|
||||||
selector = "textarea",
|
selector = "textarea",
|
||||||
takeover = "never"
|
takeover = "never"
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -16,3 +16,8 @@ if vim.g.started_by_firenvim == true then
|
||||||
vim.opt.scrolloff = 0
|
vim.opt.scrolloff = 0
|
||||||
end
|
end
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd({'BufEnter'}, {
|
||||||
|
pattern = "localhost_*.txt",
|
||||||
|
command = "set filetype=python"
|
||||||
|
})
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,2 +1,4 @@
|
||||||
vim.keymap.set("n", "<leader>gs", vim.cmd.Git)
|
local wk = require("which-key")
|
||||||
|
|
||||||
|
-- wk.add({g = { name = "git" }, prefix = "<leader>"})
|
||||||
|
vim.keymap.set("n", "<leader>gs", vim.cmd.Git, { desc = "Git status" })
|
||||||
|
|
|
||||||
4
after/plugin/lf.lua
Normal file
4
after/plugin/lf.lua
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
-- vim.keymap.set("n", "<leader>e", function ()
|
||||||
|
-- vim.cmd("Lf")
|
||||||
|
-- end)
|
||||||
|
|
||||||
|
|
@ -1,64 +1,108 @@
|
||||||
local lsp = require('lsp-zero')
|
-- LANGUAGE SERVERS
|
||||||
lsp.preset('recommended')
|
local lsp_zero = require('lsp-zero')
|
||||||
|
local lsp_capabilities = require("cmp_nvim_lsp").default_capabilities()
|
||||||
|
|
||||||
lsp.ensure_installed({
|
lsp_zero.on_attach(function(client, bufnr)
|
||||||
"lua_ls", -- Lua
|
-- see :help lsp-zero-keybindings
|
||||||
"rust_analyzer", -- Rust
|
-- to learn the available actions
|
||||||
"pyright", -- Python
|
lsp_zero.default_keymaps({buffer = bufnr})
|
||||||
"texlab", -- Latex
|
end)
|
||||||
"clangd", -- C
|
|
||||||
"jdtls", -- Java
|
|
||||||
"html", -- Html
|
|
||||||
"bashls", -- Bash
|
|
||||||
})
|
|
||||||
|
|
||||||
local ensure_installed_extras = {
|
-- LUA
|
||||||
}
|
vim.lsp.config('lua_ls', {
|
||||||
|
settings = {
|
||||||
local cmp = require("cmp")
|
Lua = {
|
||||||
local cmp_select = {behavior = cmp.SelectBehavior.Select}
|
diagnostics = {
|
||||||
local cmp_mappings = lsp.defaults.cmp_mappings({
|
-- Making sure that lua recognizes the global variable 'vim'
|
||||||
["<C-p>"] = cmp.mapping.select_prev_item(cmp_select),
|
globals = { 'vim', 'xplr' },
|
||||||
["<C-n>"] = cmp.mapping.select_next_item(cmp_select),
|
},
|
||||||
["<C-y>"] = cmp.mapping.confirm({ select = true }),
|
|
||||||
})
|
|
||||||
|
|
||||||
lsp.set_preferences({
|
|
||||||
sign_icons = { }
|
|
||||||
})
|
|
||||||
|
|
||||||
lsp.setup_nvim_cmp({
|
|
||||||
mapping = cmp_mappings
|
|
||||||
})
|
|
||||||
|
|
||||||
lsp.configure('lua_ls', {
|
|
||||||
settings = {
|
|
||||||
Lua = {
|
|
||||||
diagnostics = {
|
|
||||||
-- Making sure that lua recognizes the global variable 'vim'
|
|
||||||
globals = { 'vim' },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
vim.lsp.enable('lua_ls')
|
||||||
|
|
||||||
lsp.configure('pyright', {
|
vim.g.zig_fmt_autosave = 0
|
||||||
settings = {
|
|
||||||
python = {
|
-- RUST
|
||||||
analysis = {
|
-- Must run `rustup default stable` and then `rustup component add rust-analyzer`
|
||||||
typeCheckingMode = "off",
|
-- upon first install
|
||||||
},
|
vim.lsp.config('rust_analyzer', {})
|
||||||
},
|
vim.lsp.enable('rust_analyzer')
|
||||||
|
|
||||||
|
vim.lsp.config('clangd', {
|
||||||
|
capabilities = lsp_capabilities,
|
||||||
|
})
|
||||||
|
vim.lsp.enable('clangd')
|
||||||
|
|
||||||
|
vim.lsp.config('gopls', {
|
||||||
|
settings = {
|
||||||
|
gopls = {
|
||||||
|
analyses = {
|
||||||
|
unusedparams = true,
|
||||||
|
},
|
||||||
|
staticcheck = true,
|
||||||
|
gofumpt = true,
|
||||||
},
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
vim.lsp.enable('gopls')
|
||||||
|
|
||||||
|
vim.lsp.config('pylsp', {
|
||||||
|
settings = {
|
||||||
|
pylsp = {
|
||||||
|
pylint = { enabled = true, executable = "pylint" },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
vim.lsp.enable('pylsp')
|
||||||
|
|
||||||
|
vim.keymap.set("n", "<leader>gf", ":GoFmt<CR>",
|
||||||
|
{ noremap = true, silent = true, desc = "Go Format" }
|
||||||
|
)
|
||||||
|
|
||||||
|
-- AUTOCOMPLETION
|
||||||
|
|
||||||
|
local cmp = require('cmp')
|
||||||
|
local cmp_action = require('lsp-zero').cmp_action()
|
||||||
|
|
||||||
|
cmp.setup({
|
||||||
|
sources = {
|
||||||
|
{ name = "luasnip", option = { show_autosnippets = true } },
|
||||||
|
{ name = "nvim_lua" },
|
||||||
|
{ name = "nvim_lsp" },
|
||||||
|
{ name = "path" }, -- Auto complete paths
|
||||||
|
},
|
||||||
|
mapping = {
|
||||||
|
-- Navigate between completion item
|
||||||
|
['<M-k>'] = cmp.mapping.select_prev_item(),
|
||||||
|
['<M-j>'] = cmp.mapping.select_next_item(),
|
||||||
|
|
||||||
|
-- toggle completion
|
||||||
|
['<M-u>'] = cmp_action.toggle_completion(),
|
||||||
|
|
||||||
|
-- navigate between snippet placeholder
|
||||||
|
['<C-a>'] = cmp_action.luasnip_jump_backward(),
|
||||||
|
['<C-d>'] = cmp_action.luasnip_jump_forward(),
|
||||||
|
|
||||||
|
-- Confirm item
|
||||||
|
['<Tab>'] = cmp.mapping.confirm({select = true}),
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
lsp.setup()
|
-- Show all diagnostics on current line in floating window
|
||||||
|
vim.keymap.set("n", "gl", ":lua vim.diagnostic.open_float()<CR>",
|
||||||
|
{ noremap = true, silent = true })
|
||||||
|
|
||||||
-- Install extra packages (linters, formatters, et c)
|
vim.keymap.set("n", "<leader>le", ":LspStop<CR>",
|
||||||
local registry = require("mason-registry")
|
{ desc = "LSP Stop" })
|
||||||
for _, extra in ipairs(ensure_installed_extras) do
|
|
||||||
if not registry.is_installed(extra) then
|
vim.keymap.set("n", "<leader>ls", ":LspStart<CR>",
|
||||||
vim.cmd(string.format("MasonInstall %s", extra))
|
{ desc = "LSP Start" })
|
||||||
end
|
|
||||||
end
|
vim.keymap.set("n", "gd", function() vim.lsp.buf.definition() end,
|
||||||
|
{ desc = "Jump to definition" })
|
||||||
|
vim.keymap.set("n", "gD", function() vim.lsp.buf.declaration() end,
|
||||||
|
{ desc = "Jump to declaration" })
|
||||||
|
vim.keymap.set("n", "gt", function() vim.lsp.buf.type_definition() end,
|
||||||
|
{ desc = "Jump to type definition" })
|
||||||
|
|
||||||
|
|
|
||||||
14
after/plugin/lualine.lua
Normal file
14
after/plugin/lualine.lua
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
require("lualine").setup({
|
||||||
|
sections = {
|
||||||
|
lualine_a = {'mode'},
|
||||||
|
lualine_b = {'tabs', 'filename'},
|
||||||
|
lualine_c = {'branch', 'diff', 'diagnostics'},
|
||||||
|
lualine_x = {'encoding', 'filetype'},
|
||||||
|
lualine_y = {'progress'},
|
||||||
|
lualine_z = {'location'}
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.cmd[[set showtabline=0]]
|
||||||
|
vim.cmd[[set noshowmode]]
|
||||||
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
vim.cmd([[
|
vim.keymap.set("n", "<leader>mp", "<Plug>MarkdownPreview",
|
||||||
|
{ desc = "Markdown prewview" })
|
||||||
|
|
||||||
nmap <leader>mp <Plug>MarkdownPreview
|
vim.cmd([[
|
||||||
|
|
||||||
" set to 1, nvim will open the preview window after entering the markdown buffer
|
" set to 1, nvim will open the preview window after entering the markdown buffer
|
||||||
" default: 0
|
" default: 0
|
||||||
|
|
@ -38,7 +39,7 @@ let g:mkdp_open_ip = ''
|
||||||
" valid: `/path/with\ space/xxx`
|
" valid: `/path/with\ space/xxx`
|
||||||
" invalid: `/path/with\\ space/xxx`
|
" invalid: `/path/with\\ space/xxx`
|
||||||
" default: ''
|
" default: ''
|
||||||
let g:mkdp_browser = 'thorium-browser'
|
let g:mkdp_browser = 'zen'
|
||||||
|
|
||||||
" set to 1, echo preview page url in command line when open preview page
|
" set to 1, echo preview page url in command line when open preview page
|
||||||
" default is 0
|
" default is 0
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
-- set termguicolors to enable highlight groups
|
-- -- set termguicolors to enable highlight groups
|
||||||
vim.opt.termguicolors = true
|
-- vim.opt.termguicolors = true
|
||||||
|
--
|
||||||
require("nvim-tree").setup()
|
-- require("nvim-tree").setup()
|
||||||
|
--
|
||||||
vim.keymap.set("n", "<leader>pt", ":NvimTreeToggle<CR>")
|
-- vim.keymap.set("n", "<leader>pt", vim.cmd.NvimTreeToggle)
|
||||||
|
--
|
||||||
-- sets transparent background
|
-- -- sets transparent background
|
||||||
vim.cmd[[hi NvimTreeNormal guibg=NONE ctermbg=NONE]]
|
-- vim.cmd[[hi NvimTreeNormal guibg=NONE ctermbg=NONE]]
|
||||||
|
--
|
||||||
|
|
|
||||||
9
after/plugin/possession.lua
Normal file
9
after/plugin/possession.lua
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
require("possession").setup({})
|
||||||
|
|
||||||
|
require('telescope').load_extension('possession')
|
||||||
|
vim.keymap.set("n", "<leader>pp", ":Telescope possession list<CR>",
|
||||||
|
{ desc = "List neovim sessions" })
|
||||||
|
|
||||||
|
vim.keymap.set("n", "<leader>ss", ":PossessionSave<CR>",
|
||||||
|
{ desc = "Save session" })
|
||||||
|
|
||||||
|
|
@ -1,8 +1,4 @@
|
||||||
local builtin = require("telescope.builtin")
|
local builtin = require("telescope.builtin")
|
||||||
vim.keymap.set("n", "<leader>pf", builtin.find_files, {})
|
|
||||||
vim.keymap.set("n", "<leader>ps", function()
|
|
||||||
builtin.grep_string({ search = vim.fn.input("Grep > ") })
|
|
||||||
end)
|
|
||||||
|
|
||||||
require("telescope").setup{
|
require("telescope").setup{
|
||||||
defaults = {
|
defaults = {
|
||||||
|
|
@ -10,3 +6,24 @@ require("telescope").setup{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
vim.keymap.set("n", "<leader>p", "<noop>", {desc = "Project"})
|
||||||
|
vim.keymap.set("n", "<leader>pf", ":Telescope find_files no_ignore=true <CR>", {desc = "Project find"})
|
||||||
|
vim.keymap.set("n", "<leader>.", builtin.find_files, {desc = "Project find (.gitignore)"})
|
||||||
|
vim.keymap.set("n", "<leader>ps",
|
||||||
|
function ()
|
||||||
|
builtin.grep_string({ search = vim.fn.input("Grep > "), no_ignore = true })
|
||||||
|
end,
|
||||||
|
{ desc = "Project search" })
|
||||||
|
|
||||||
|
-- <leader> f
|
||||||
|
-- wk.add({f = { name = "find" }, prefix = "<leader>"})
|
||||||
|
vim.keymap.set("n", "<leader>fr", builtin.oldfiles, { desc = "Find recent" })
|
||||||
|
|
||||||
|
-- <leader> h
|
||||||
|
-- wk.add({h = { name = "help" }, prefix = "<leader>"})
|
||||||
|
vim.keymap.set("n", "<leader>ht", builtin.colorscheme, { desc = "Load theme" })
|
||||||
|
vim.keymap.set("n", "<leader>hf", builtin.commands , { desc = "Describe function" })
|
||||||
|
vim.keymap.set("n", "<leader>hk", builtin.keymaps , { desc = "Describe key" })
|
||||||
|
vim.keymap.set("n", "<leader>hv", builtin.vim_options, { desc = "Describe variable" })
|
||||||
|
vim.keymap.set("n", "<leader>hh", builtin.help_tags , { desc = "Search local wiki" })
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,22 @@
|
||||||
require'nvim-treesitter.configs'.setup {
|
require'nvim-treesitter.configs'.setup {
|
||||||
ensure_installed = { "rust", "vim", "javascript", "html", "css", "python", "java", "lua", "perl", "php", "c", "json" },
|
ensure_installed = {
|
||||||
|
"c",
|
||||||
|
"css",
|
||||||
|
"glsl",
|
||||||
|
"go",
|
||||||
|
"html",
|
||||||
|
"java",
|
||||||
|
"javascript",
|
||||||
|
"json",
|
||||||
|
"lua",
|
||||||
|
"perl",
|
||||||
|
"php",
|
||||||
|
"python",
|
||||||
|
"rust",
|
||||||
|
"typst",
|
||||||
|
"vim",
|
||||||
|
"vimdoc",
|
||||||
|
},
|
||||||
|
|
||||||
ignore_install = { "latex", "markdown", "htmldjango" },
|
ignore_install = { "latex", "markdown", "htmldjango" },
|
||||||
|
|
||||||
|
|
@ -14,3 +31,10 @@ require'nvim-treesitter.configs'.setup {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd({"BufRead", "BufNewFile"}, {
|
||||||
|
pattern = {"*.vert", "*.frag"},
|
||||||
|
callback = function()
|
||||||
|
vim.bo.filetype = "glsl"
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
|
|
||||||
2
after/plugin/undotree.lua
Normal file
2
after/plugin/undotree.lua
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
vim.keymap.set("n", "<leader>ut", vim.cmd.UndotreeToggle)
|
||||||
|
|
||||||
17
after/plugin/whichkey.lua
Normal file
17
after/plugin/whichkey.lua
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
require("which-key").setup({
|
||||||
|
win = {
|
||||||
|
border = "single", -- none, single, double, shadow
|
||||||
|
padding = { 0, 0, 0, 0 }, -- extra window padding [top, right, bottom, left]
|
||||||
|
zindex = 1000, -- positive value to position WhichKey above other floating windows.
|
||||||
|
wo = {
|
||||||
|
winblend = 0, -- value between 0-100 0 for fully opaque and 100 for fully transparent
|
||||||
|
},
|
||||||
|
},
|
||||||
|
layout = {
|
||||||
|
height = { min = 4, max = 25 }, -- min and max height of the columns
|
||||||
|
width = { min = 20, max = 50 }, -- min and max width of the columns
|
||||||
|
spacing = 3, -- spacing between columns
|
||||||
|
align = "left", -- align columns left, center or right
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
4
after/plugin/yazi.lua
Normal file
4
after/plugin/yazi.lua
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
vim.keymap.set("n", "<leader>e", function ()
|
||||||
|
vim.cmd("Yazi")
|
||||||
|
end)
|
||||||
|
|
||||||
62
after/plugin/zenmode.lua
Normal file
62
after/plugin/zenmode.lua
Normal file
|
|
@ -0,0 +1,62 @@
|
||||||
|
require('zen-mode').setup {
|
||||||
|
window = {
|
||||||
|
backdrop = 0.95, -- shade the backdrop of the Zen window. Set to 1 to keep the same as Normal
|
||||||
|
-- height and width can be:
|
||||||
|
-- * an absolute number of cells when > 1
|
||||||
|
-- * a percentage of the width / height of the editor when <= 1
|
||||||
|
-- * a function that returns the width or the height
|
||||||
|
width = 120, -- width of the Zen window
|
||||||
|
height = 1, -- height of the Zen window
|
||||||
|
-- by default, no options are changed for the Zen window
|
||||||
|
-- uncomment any of the options below, or add other vim.wo options you want to apply
|
||||||
|
options = {
|
||||||
|
signcolumn = "no", -- disable signcolumn
|
||||||
|
number = false, -- disable number column
|
||||||
|
relativenumber = false, -- disable relative numbers
|
||||||
|
cursorline = false, -- disable cursorline
|
||||||
|
cursorcolumn = false, -- disable cursor column
|
||||||
|
foldcolumn = "0", -- disable fold column
|
||||||
|
-- list = false, -- disable whitespace characters
|
||||||
|
},
|
||||||
|
},
|
||||||
|
plugins = {
|
||||||
|
-- disable some global vim options (vim.o...)
|
||||||
|
-- comment the lines to not apply the options
|
||||||
|
options = {
|
||||||
|
enabled = true,
|
||||||
|
ruler = false, -- disables the ruler text in the cmd line area
|
||||||
|
showcmd = false, -- disables the command in the last line of the screen
|
||||||
|
},
|
||||||
|
twilight = { enabled = true }, -- enable to start Twilight when zen mode opens
|
||||||
|
gitsigns = { enabled = false }, -- disables git signs
|
||||||
|
tmux = { enabled = false }, -- disables the tmux statusline
|
||||||
|
-- this will change the font size on kitty when in zen mode
|
||||||
|
-- to make this work, you need to set the following kitty options:
|
||||||
|
-- - allow_remote_control socket-only
|
||||||
|
-- - listen_on unix:/tmp/kitty
|
||||||
|
kitty = {
|
||||||
|
enabled = false,
|
||||||
|
font = "+4", -- font size increment
|
||||||
|
},
|
||||||
|
-- this will change the font size on alacritty when in zen mode
|
||||||
|
-- requires Alacritty Version 0.10.0 or higher
|
||||||
|
-- uses `alacritty msg` subcommand to change font size
|
||||||
|
alacritty = {
|
||||||
|
enabled = false,
|
||||||
|
font = "14", -- font size
|
||||||
|
},
|
||||||
|
-- this will change the font size on wezterm when in zen mode
|
||||||
|
-- See alse also the Plugins/Wezterm section in this projects README
|
||||||
|
wezterm = {
|
||||||
|
enabled = false,
|
||||||
|
-- can be either an absolute font size or the number of incremental steps
|
||||||
|
font = "+4", -- (10% increase per step)
|
||||||
|
},
|
||||||
|
},
|
||||||
|
-- callback where you can add custom code when the Zen window opens
|
||||||
|
on_open = function(win)
|
||||||
|
end,
|
||||||
|
-- callback where you can add custom code when the Zen window closes
|
||||||
|
on_close = function()
|
||||||
|
end,
|
||||||
|
}
|
||||||
0
init.lua
Executable file → Normal file
0
init.lua
Executable file → Normal file
|
|
@ -1,4 +1,4 @@
|
||||||
require("andrew.remap")
|
require("andrew.remap")
|
||||||
require("andrew.packer")
|
require("andrew.lazy")
|
||||||
require("andrew.set")
|
require("andrew.set")
|
||||||
|
|
||||||
|
|
|
||||||
156
lua/andrew/lazy.lua
Normal file
156
lua/andrew/lazy.lua
Normal file
|
|
@ -0,0 +1,156 @@
|
||||||
|
-- Bootstrap lazy.nvim
|
||||||
|
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||||
|
if not (vim.uv or vim.loop).fs_stat(lazypath) then
|
||||||
|
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
|
||||||
|
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
|
||||||
|
if vim.v.shell_error ~= 0 then
|
||||||
|
vim.api.nvim_echo({
|
||||||
|
{ "Failed to clone lazy.nvim:\n", "ErrorMsg" },
|
||||||
|
{ out, "WarningMsg" },
|
||||||
|
{ "\nPress any key to exit..." },
|
||||||
|
}, true, {})
|
||||||
|
vim.fn.getchar()
|
||||||
|
os.exit(1)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
vim.opt.rtp:prepend(lazypath)
|
||||||
|
|
||||||
|
-- Make sure to setup `mapleader` and `maplocalleader` before
|
||||||
|
-- loading lazy.nvim so that mappings are correct.
|
||||||
|
-- This is also a good place to setup other settings (vim.opt)
|
||||||
|
vim.g.mapleader = " "
|
||||||
|
vim.g.maplocalleader = "\\"
|
||||||
|
|
||||||
|
-- Setup lazy.nvim
|
||||||
|
require("lazy").setup({
|
||||||
|
-- Terminal file manager support
|
||||||
|
-- "DreamMaoMao/yazi.nvim",
|
||||||
|
{
|
||||||
|
"mikavilpas/yazi.nvim",
|
||||||
|
event = "VeryLazy",
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Markdown preview
|
||||||
|
{
|
||||||
|
"iamcco/markdown-preview.nvim",
|
||||||
|
cmd = { 'MarkdownPreviewToggle', 'MarkdownPreview', 'MarkdownPreviewStop' },
|
||||||
|
ft = { 'markdown' },
|
||||||
|
build = function()
|
||||||
|
vim.cmd [[Lazy load markdown-preview.nvim]]
|
||||||
|
vim.fn['mkdp#util#install']()
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Dashboard buffer
|
||||||
|
{
|
||||||
|
"goolord/alpha-nvim",
|
||||||
|
-- dependencies = { 'echasnovski/mini.icons' },
|
||||||
|
dependencies = { 'nvim-tree/nvim-web-devicons' },
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Compile mode
|
||||||
|
{
|
||||||
|
"ej-shafran/compile-mode.nvim",
|
||||||
|
-- tag = "v5.*",
|
||||||
|
-- you can just use the latest version:
|
||||||
|
branch = "latest",
|
||||||
|
-- or the most up-to-date updates:
|
||||||
|
-- branch = "nightly",
|
||||||
|
dependencies = {
|
||||||
|
"nvim-lua/plenary.nvim",
|
||||||
|
{ "m00qek/baleia.nvim", tag = "v1.3.0" },
|
||||||
|
},
|
||||||
|
config = function()
|
||||||
|
vim.g.compile_mode = {
|
||||||
|
baleia_setup = true,
|
||||||
|
}
|
||||||
|
end
|
||||||
|
};
|
||||||
|
|
||||||
|
-- Zen mode
|
||||||
|
"folke/zen-mode.nvim",
|
||||||
|
|
||||||
|
-- Show valid keys mid key chord
|
||||||
|
"folke/which-key.nvim",
|
||||||
|
-- config = function()
|
||||||
|
-- vim.o.timeout = true
|
||||||
|
-- vim.o.timeoutlen = 300
|
||||||
|
-- end
|
||||||
|
|
||||||
|
-- Find files and strings
|
||||||
|
{
|
||||||
|
'nvim-telescope/telescope.nvim', tag = '0.1.8',
|
||||||
|
dependencies = { 'nvim-lua/plenary.nvim' },
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"nvim-treesitter/nvim-treesitter",
|
||||||
|
run = ":TSUpdate"
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Themes
|
||||||
|
"aktersnurra/no-clown-fiesta.nvim",
|
||||||
|
"ellisonleao/gruvbox.nvim",
|
||||||
|
{ 'rose-pine/neovim', as = 'rose-pine' },
|
||||||
|
'Mofiqul/vscode.nvim',
|
||||||
|
|
||||||
|
-- Referencing a hex code highlights it in that color
|
||||||
|
"norcalli/nvim-colorizer.lua",
|
||||||
|
|
||||||
|
-- Relative line numbers disappear when not actively in buffer
|
||||||
|
"jeffkreeftmeijer/vim-numbertoggle",
|
||||||
|
|
||||||
|
-- History visualizer
|
||||||
|
"mbbill/undotree",
|
||||||
|
|
||||||
|
-- See function signatures when typing them
|
||||||
|
{
|
||||||
|
-- "ray-x/lsp_signature.nvim",
|
||||||
|
-- event = "VeryLazy",
|
||||||
|
-- opts = {},
|
||||||
|
-- config = function(_, opts) require'lsp_signature'.setup(opts) end
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Left-side file tree dispaly
|
||||||
|
{
|
||||||
|
"nvim-tree/nvim-tree.lua",
|
||||||
|
requires = {
|
||||||
|
"nvim-tree/nvim-web-devicons", -- for file icons
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
'nvim-lualine/lualine.nvim',
|
||||||
|
dependencies = { 'nvim-tree/nvim-web-devicons' },
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
'jedrzejboczar/possession.nvim',
|
||||||
|
requires = { 'nvim-lua/plenary.nvim' },
|
||||||
|
},
|
||||||
|
|
||||||
|
-- LSP
|
||||||
|
{'VonHeikemen/lsp-zero.nvim', branch = 'v4.x'},
|
||||||
|
{'neovim/nvim-lspconfig'},
|
||||||
|
{'hrsh7th/cmp-nvim-lsp'},
|
||||||
|
{'hrsh7th/nvim-cmp'},
|
||||||
|
|
||||||
|
-- Better diagnostics
|
||||||
|
{
|
||||||
|
"folke/trouble.nvim",
|
||||||
|
dependencies = { "nvim-tree/nvim-web-devicons" },
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Linting
|
||||||
|
"jose-elias-alvarez/null-ls.nvim",
|
||||||
|
|
||||||
|
-- Git wrapper
|
||||||
|
"tpope/vim-fugitive",
|
||||||
|
|
||||||
|
-- Latex editing in vim
|
||||||
|
"lervag/vimtex",
|
||||||
|
|
||||||
|
-- Auto comment
|
||||||
|
"numToStr/Comment.nvim",
|
||||||
|
})
|
||||||
|
|
||||||
|
|
@ -1,94 +0,0 @@
|
||||||
vim.cmd.packadd("packer.nvim")
|
|
||||||
|
|
||||||
return require("packer").startup(function(use)
|
|
||||||
use "wbthomason/packer.nvim"
|
|
||||||
|
|
||||||
-- Org mode
|
|
||||||
use {
|
|
||||||
"nvim-neorg/neorg",
|
|
||||||
run = ":Neorg sync-parsers",
|
|
||||||
}
|
|
||||||
|
|
||||||
-- Find files and strings
|
|
||||||
use {
|
|
||||||
"nvim-telescope/telescope.nvim", tag = "0.1.0",
|
|
||||||
requires = { {"nvim-lua/plenary.nvim"} }
|
|
||||||
}
|
|
||||||
|
|
||||||
-- Treesitter
|
|
||||||
use({"nvim-treesitter/nvim-treesitter", run = ":TSUpdate"})
|
|
||||||
|
|
||||||
-- Themes
|
|
||||||
use "aktersnurra/no-clown-fiesta.nvim"
|
|
||||||
|
|
||||||
-- Referencing a hex code highlights it in that color
|
|
||||||
use "lilydjwg/colorizer"
|
|
||||||
|
|
||||||
-- Relative line numbers disappear when not actively in buffer
|
|
||||||
use "jeffkreeftmeijer/vim-numbertoggle"
|
|
||||||
|
|
||||||
-- See function signatures when typing them
|
|
||||||
use "ray-x/lsp_signature.nvim"
|
|
||||||
require "lsp_signature".setup({})
|
|
||||||
|
|
||||||
-- Left-side file tree dispaly
|
|
||||||
use {
|
|
||||||
"nvim-tree/nvim-tree.lua",
|
|
||||||
requires = {
|
|
||||||
"nvim-tree/nvim-web-devicons", -- for file icons
|
|
||||||
},
|
|
||||||
tag = "nightly" -- optional, updated every week
|
|
||||||
}
|
|
||||||
|
|
||||||
-- Shows current mode on bottom of screen
|
|
||||||
use "itchyny/lightline.vim"
|
|
||||||
|
|
||||||
-- LSP
|
|
||||||
use {
|
|
||||||
'VonHeikemen/lsp-zero.nvim',
|
|
||||||
branch = 'v1.x',
|
|
||||||
requires = {
|
|
||||||
-- LSP Support
|
|
||||||
{'neovim/nvim-lspconfig'}, -- Required
|
|
||||||
{'williamboman/mason.nvim'}, -- Optional
|
|
||||||
{'williamboman/mason-lspconfig.nvim'}, -- Optional
|
|
||||||
|
|
||||||
-- Autocompletion
|
|
||||||
{'hrsh7th/nvim-cmp'}, -- Required
|
|
||||||
{'hrsh7th/cmp-nvim-lsp'}, -- Required
|
|
||||||
{'hrsh7th/cmp-buffer'}, -- Optional
|
|
||||||
{'hrsh7th/cmp-path'}, -- Optional
|
|
||||||
{'saadparwaiz1/cmp_luasnip'}, -- Optional
|
|
||||||
{'hrsh7th/cmp-nvim-lua'}, -- Optional
|
|
||||||
|
|
||||||
-- Snippets
|
|
||||||
{'L3MON4D3/LuaSnip'}, -- Required
|
|
||||||
{'rafamadriz/friendly-snippets'}, -- Optional
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
-- Linting
|
|
||||||
use "jose-elias-alvarez/null-ls.nvim"
|
|
||||||
|
|
||||||
-- Git wrapper
|
|
||||||
use("tpope/vim-fugitive")
|
|
||||||
|
|
||||||
-- Latex editing in vim
|
|
||||||
use "lervag/vimtex"
|
|
||||||
|
|
||||||
-- Auto comment
|
|
||||||
use "numToStr/Comment.nvim"
|
|
||||||
|
|
||||||
-- Markdown
|
|
||||||
use({
|
|
||||||
"agryphus/markdown-preview.nvim",
|
|
||||||
run = function() vim.fn["mkdp#util#install"]() end,
|
|
||||||
})
|
|
||||||
|
|
||||||
-- Jupyter notebook integration
|
|
||||||
use {
|
|
||||||
"glacambre/firenvim",
|
|
||||||
run = function() vim.fn["firenvim#install"](0) end
|
|
||||||
}
|
|
||||||
end)
|
|
||||||
|
|
||||||
|
|
@ -10,14 +10,23 @@ vim.keymap.set("n", "J", "mzJ`z")
|
||||||
vim.keymap.set("n", "n", "nzzzv")
|
vim.keymap.set("n", "n", "nzzzv")
|
||||||
vim.keymap.set("n", "N", "Nzzzv")
|
vim.keymap.set("n", "N", "Nzzzv")
|
||||||
|
|
||||||
|
-- step through visual lines by default
|
||||||
|
vim.keymap.set("n", "j", "gj")
|
||||||
|
vim.keymap.set("n", "gj", "j")
|
||||||
|
vim.keymap.set("n", "k", "gk")
|
||||||
|
vim.keymap.set("n", "gk", "k")
|
||||||
|
vim.keymap.set("v", "j", "gj")
|
||||||
|
vim.keymap.set("v", "gj", "j")
|
||||||
|
vim.keymap.set("v", "k", "gk")
|
||||||
|
vim.keymap.set("v", "gk", "k")
|
||||||
|
|
||||||
-- easier escape back to normal mode
|
-- easier escape back to normal mode
|
||||||
vim.keymap.set("i", "<C-c>", "<Esc>")
|
vim.keymap.set("i", "<C-c>", "<Esc>")
|
||||||
|
|
||||||
-- lol
|
|
||||||
vim.keymap.set("n", "Q", "<nop>")
|
vim.keymap.set("n", "Q", "<nop>")
|
||||||
|
|
||||||
-- universal find and replace
|
-- universal find and replace
|
||||||
vim.keymap.set("n", "<leader>s", [[:%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>]])
|
vim.keymap.set("n", "<leader>r", [[:%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>]])
|
||||||
|
|
||||||
-- moving highlighted text
|
-- moving highlighted text
|
||||||
vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv")
|
vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv")
|
||||||
|
|
@ -35,3 +44,87 @@ vim.keymap.set("n", "<leader>y", "\"+y")
|
||||||
vim.keymap.set("n", "<leader>d", "\"_d")
|
vim.keymap.set("n", "<leader>d", "\"_d")
|
||||||
vim.keymap.set("v", "<leader>d", "\"_d")
|
vim.keymap.set("v", "<leader>d", "\"_d")
|
||||||
|
|
||||||
|
vim.keymap.set("n", "<leader>tc",
|
||||||
|
function ()
|
||||||
|
local col = "78"
|
||||||
|
print(vim.o.cc)
|
||||||
|
if vim.o.cc == col then
|
||||||
|
vim.o.cc = ""
|
||||||
|
else
|
||||||
|
vim.o.cc = col
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
{desc = "Toggle color column"})
|
||||||
|
|
||||||
|
vim.keymap.set("n", "<leader>t", "<noop>", {desc = "Toggle"})
|
||||||
|
vim.keymap.set("n", "<leader>tl",
|
||||||
|
function ()
|
||||||
|
if vim.wo.number == false and vim.wo.relativenumber == false then
|
||||||
|
vim.wo.number = true
|
||||||
|
print("absolute numbers")
|
||||||
|
elseif vim.wo.number == true and vim.wo.relativenumber == false then
|
||||||
|
vim.wo.relativenumber = true
|
||||||
|
print("relative line numbers")
|
||||||
|
else
|
||||||
|
vim.wo.number = false
|
||||||
|
vim.wo.relativenumber = false
|
||||||
|
print("no line numbers")
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
{desc = "Toggle line numbers"})
|
||||||
|
|
||||||
|
vim.keymap.set("n", "<leader>tw",
|
||||||
|
function ()
|
||||||
|
if vim.wo.wrap then
|
||||||
|
vim.wo.wrap = false
|
||||||
|
print("nowrap")
|
||||||
|
else
|
||||||
|
vim.wo.wrap = true
|
||||||
|
print("wrap")
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
{desc = "Toggle line wrapping"})
|
||||||
|
|
||||||
|
-- case insensitive search
|
||||||
|
vim.keymap.set("n", "<leader>/", "/\\c")
|
||||||
|
vim.keymap.set("n", "<leader>?", "?\\c")
|
||||||
|
|
||||||
|
vim.keymap.set("n", "<leader>hF",
|
||||||
|
function()
|
||||||
|
local result = vim.treesitter.get_captures_at_cursor(0)
|
||||||
|
print(vim.inspect(result))
|
||||||
|
end,
|
||||||
|
{ noremap = true, silent = false, desc = "Describe face" }
|
||||||
|
)
|
||||||
|
|
||||||
|
local str = string.format
|
||||||
|
|
||||||
|
for i = 1, 9 do
|
||||||
|
vim.keymap.set("n", str("<A-%s>", i), str("%sgt", i), { desc = str("Goto tab %s", i) })
|
||||||
|
vim.keymap.set("t", str("<A-%s>", i), str("<C-\\><C-n>%sgt", i), { desc = str("Goto tab %s", i) })
|
||||||
|
end
|
||||||
|
|
||||||
|
vim.keymap.set("n", "<A-n>", "<CMD>tabnew<CR>", { desc = "Create a new tab" })
|
||||||
|
vim.keymap.set("n", "<A-CR>", "<CMD>tabnew<CR><CMD>term<CR>i", { desc = "Create a new tab with a terminal" })
|
||||||
|
vim.keymap.set("n", "<A-q>", "<CMD>tabclose<CR>", { desc = "Close current tab" })
|
||||||
|
vim.keymap.set("n", "<A-0>", "<CMD>tablast<CR>", { desc = "Goto last tab" })
|
||||||
|
vim.keymap.set("n", "<A-]>", "<CMD>tabnext<CR>", { desc = "Goto next tab" })
|
||||||
|
vim.keymap.set("n", "<A-[>", "<CMD>tabprevious<CR>", { desc = "Goto prev tab" })
|
||||||
|
vim.keymap.set("n", "<A-->", "<CMD>tabm-<CR>", { desc = "Move tab to the left" })
|
||||||
|
vim.keymap.set("n", "<A-=>", "<CMD>tabm+<CR>", { desc = "Move tab to the right" })
|
||||||
|
vim.keymap.set("n", "<A-'>", "<CMD>tab split<CR>", { desc = "Clone window in new tab" })
|
||||||
|
|
||||||
|
vim.keymap.set("n", "<C-w><CR>", "<CMD>term<CR>i", { desc = "Terminal" })
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd("TabEnter", {
|
||||||
|
callback = function()
|
||||||
|
local bufnr = vim.api.nvim_get_current_buf()
|
||||||
|
local buftype = vim.api.nvim_buf_get_option(bufnr, "buftype")
|
||||||
|
|
||||||
|
if buftype == "terminal" then
|
||||||
|
-- Enter Terminal-Job mode
|
||||||
|
vim.api.nvim_feedkeys("i", "n", false)
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,3 @@
|
||||||
vim.opt.guicursor = ""
|
|
||||||
|
|
||||||
vim.opt.nu = true
|
vim.opt.nu = true
|
||||||
vim.opt.relativenumber = true
|
vim.opt.relativenumber = true
|
||||||
|
|
||||||
|
|
@ -9,13 +7,49 @@ vim.opt.shiftwidth = 4
|
||||||
vim.opt.expandtab = true
|
vim.opt.expandtab = true
|
||||||
|
|
||||||
vim.opt.smartindent = true
|
vim.opt.smartindent = true
|
||||||
|
vim.opt.linebreak = true
|
||||||
|
|
||||||
|
local autocmd = vim.api.nvim_create_autocmd
|
||||||
|
autocmd("bufenter", {
|
||||||
|
pattern = "*",
|
||||||
|
callback = function()
|
||||||
|
if vim.bo.ft ~= "terminal" then
|
||||||
|
vim.opt.laststatus = 2
|
||||||
|
else
|
||||||
|
vim.opt.laststatus = 0
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
-- You can then map it to a key or create a command:
|
||||||
|
vim.api.nvim_create_user_command('GoFmt', function()
|
||||||
|
local filename = vim.fn.expand('%')
|
||||||
|
vim.fn.system('gofmt -e -w ' .. filename)
|
||||||
|
vim.cmd('edit!')
|
||||||
|
end, {})
|
||||||
|
|
||||||
|
vim.filetype.add({
|
||||||
|
extension = {
|
||||||
|
typ = 'typst'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Only search with case if capital letter is typed
|
||||||
|
vim.opt.ignorecase = true
|
||||||
|
vim.opt.smartcase = true
|
||||||
vim.opt.wrap = true
|
vim.opt.wrap = true
|
||||||
|
|
||||||
|
vim.opt.splitbelow = true
|
||||||
|
|
||||||
vim.opt.scrolloff = 8
|
vim.opt.scrolloff = 8
|
||||||
vim.opt.signcolumn = "auto"
|
vim.opt.signcolumn = "auto"
|
||||||
|
|
||||||
vim.o.shell = "/usr/bin/zsh"
|
vim.o.shell = "zsh"
|
||||||
|
|
||||||
|
vim.o.title = true
|
||||||
|
|
||||||
|
-- Do not map q to :q in man mode
|
||||||
|
vim.g.no_man_maps = true;
|
||||||
|
|
||||||
-- Local settings for when in :terminal mode
|
-- Local settings for when in :terminal mode
|
||||||
-- I don't believe this functionality has been ported to lua.
|
-- I don't believe this functionality has been ported to lua.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue