diff --git a/.config/nvim/after/ftplugin/markdown.lua b/.config/nvim/after/ftplugin/markdown.lua index 22e5309..94ad654 100644 --- a/.config/nvim/after/ftplugin/markdown.lua +++ b/.config/nvim/after/ftplugin/markdown.lua @@ -1,3 +1,4 @@ +local api = vim.api local optl = vim.opt_local -- options @@ -9,3 +10,18 @@ optl.expandtab = true local keymap_set = vim.keymap.set keymap_set("n", "]h", "/\\_^#.*\\ze\\n\\{2}") keymap_set("n", "[h", "?\\_^#.*\\ze\\n\\{2}") + +-- buffer completion +optl.completeopt:append("noselect") +api.nvim_create_autocmd("TextChangedI", { + group = api.nvim_create_augroup("Markdown buffer autocomplete", {}), + buffer = 0, + desc = "Buffer autocomplete on TextChangedI", + callback = function () + local col = api.nvim_win_get_cursor(0)[2] + local char = api.nvim_get_current_line():sub(col,col) + if char:match("%w") then + api.nvim_input("") + end + end +}) diff --git a/.config/nvim/colors/basic.lua b/.config/nvim/colors/basic.lua index 8a63ed3..848d161 100644 --- a/.config/nvim/colors/basic.lua +++ b/.config/nvim/colors/basic.lua @@ -48,16 +48,6 @@ end vim.opt.background = "dark" vim.g.colors_name = "basic" -if - vim.env.TERM == "linux" or - vim.env.TERM == "screen" or - vim.env.TERM == "screen.linux" -then - vim.opt.termguicolors = false -else - vim.opt.termguicolors = true -end - -- highlights ------------------------------------------------------------------ local fg = C.white local bg = C.black @@ -121,7 +111,6 @@ local menu_accent_h = { ctermfg = accent.cterm, ctermbg = fg.cterm, bg = fg.gui, reverse = true } -local test = { ctermfg, fg = 1, 2 } set_hl("Pmenu", menu_normal_h) set_hl("PmenuSel", menu_accent_h) @@ -148,17 +137,21 @@ set_hl("Question", message_accent_h) set_hl("Title", message_accent_h) -- buffer ---------------------------------------------------------------------- -local buffer_normal_h = { ctermfg = dimmed.cterm, fg = dimmed.gui } -local buffer_normal_bg_h = { ctermbg = dimmed.cterm, bg = dimmed.gui } -local buffer_accent_h = { ctermfg = accent.cterm, fg = accent.gui } +local buffer_dimmed_h = { ctermfg = dimmed.cterm, + fg = dimmed.gui } +local buffer_dimmed_reverse_h = { ctermfg = dimmed.cterm, + fg = dimmed.gui, + reverse = true } +local buffer_accent_h = { ctermfg = accent.cterm, + fg = accent.gui } -set_hl("Conceal", buffer_normal_h) -set_hl("NonText", buffer_normal_h) -set_hl("EndOfBuffer", buffer_normal_h) -set_hl("Whitespace", buffer_normal_h) -set_hl("Folded", buffer_normal_h) +set_hl("Conceal", buffer_dimmed_h) +set_hl("NonText", buffer_dimmed_h) +set_hl("EndOfBuffer", buffer_dimmed_h) +set_hl("Whitespace", buffer_dimmed_h) +set_hl("Folded", buffer_dimmed_h) set_hl("SpecialKey", buffer_accent_h) -set_hl("ColorColumn", buffer_normal_bg_h) +set_hl("ColorColumn", buffer_dimmed_reverse_h) -- cursor ---------------------------------------------------------------------- local cursor_normal_h = { reverse = true } @@ -184,7 +177,7 @@ local match_accent_h = { ctermfg = C.black.cterm, fg = C.black.gui, ctermbg = C.magenta.cterm, bg = C.magenta.gui } -local match_dimmed_h = { ctermfg = C.magenta.cterm, +local match_parens_h = { ctermfg = C.magenta.cterm, fg = C.magenta.gui, ctermbg = C.white.cterm, bg = C.white.gui } @@ -193,7 +186,7 @@ set_hl("Search", match_normal_h) set_hl("Substitute", match_normal_h) set_hl("IncSearch", match_accent_h) set_hl("CurSearch", match_accent_h) -set_hl("MatchParen", match_dimmed_h) +set_hl("MatchParen", match_parens_h) -- selection ------------------------------------------------------------------- local selection_normal_h = { ctermfg = C.black.cterm, @@ -205,10 +198,15 @@ set_hl("Visual", selection_normal_h) set_hl("Visualnos", selection_normal_h) -- diff ------------------------------------------------------------------------ -local diff_add_h = { ctermfg = C.green.cterm, fg = C.green.gui } -local diff_change_h = { ctermfg = C.orange.cterm, fg = C.orange.gui } -local diff_delete_h = { ctermfg = C.red.cterm, fg = C.red.gui } -local diff_text_h = { ctermfg = C.orange.cterm, fg = C.orange.gui, underline = true } +local diff_add_h = { ctermfg = C.green.cterm, + fg = C.green.gui } +local diff_change_h = { ctermfg = C.orange.cterm, + fg = C.orange.gui } +local diff_delete_h = { ctermfg = C.red.cterm, + fg = C.red.gui } +local diff_text_h = { ctermfg = C.orange.cterm, + fg = C.orange.gui, + underline = true } set_hl("DiffAdd", diff_add_h) set_hl("DiffChange", diff_change_h) @@ -216,8 +214,12 @@ set_hl("DiffDelete", diff_delete_h) set_hl("DiffText", diff_text_h) -- spell ----------------------------------------------------------------------- -local spell_error_h = { ctermfg = C.red.cterm, fg = C.red.gui, underline = true } -local spell_warn_h = { ctermfg = C.orange.cterm, fg = C.orange.gui, underline = true } +local spell_error_h = { ctermfg = C.red.cterm, + fg = C.red.gui, + underline = true } +local spell_warn_h = { ctermfg = C.orange.cterm, + fg = C.orange.gui, + underline = true } set_hl("SpellBad", spell_error_h) set_hl("SpellCap", spell_warn_h) @@ -225,16 +227,31 @@ set_hl("SpellLocal", spell_warn_h) set_hl("SpellRare", spell_warn_h) -- diagnostic ------------------------------------------------------------------ -local diagnostic_error_h = { ctermfg = C.red.cterm, fg = C.red.gui } -local diagnostic_warn_h = { ctermfg = C.orange.cterm, fg = C.orange.gui } -local diagnostic_info_h = { ctermfg = C.blue.cterm, fg = C.blue.gui } -local diagnostic_hint_h = { ctermfg = C.white.cterm, fg = C.white.gui } -local diagnostic_ok_h = { ctermfg = C.green.cterm, fg = C.green.gui } -local diagnostic_error_u_h = { ctermfg = C.red.cterm, fg = C.red.gui, underline = true } -local diagnostic_warn_u_h = { ctermfg = C.orange.cterm, fg = C.orange.gui, underline = true } -local diagnostic_info_u_h = { ctermfg = C.blue.cterm, fg = C.blue.gui, underline = true } -local diagnostic_hint_u_h = { ctermfg = C.white.cterm, fg = C.white.gui, underline = true } -local diagnostic_ok_u_h = { ctermfg = C.green.cterm, fg = C.green.gui, underline = true } +local diagnostic_error_h = { ctermfg = C.red.cterm, + fg = C.red.gui } +local diagnostic_warn_h = { ctermfg = C.orange.cterm, + fg = C.orange.gui } +local diagnostic_info_h = { ctermfg = C.blue.cterm, + fg = C.blue.gui } +local diagnostic_hint_h = { ctermfg = C.white.cterm, + fg = C.white.gui } +local diagnostic_ok_h = { ctermfg = C.green.cterm, + fg = C.green.gui } +local diagnostic_error_u_h = { ctermfg = C.red.cterm, + fg = C.red.gui, + underline = true } +local diagnostic_warn_u_h = { ctermfg = C.orange.cterm, + fg = C.orange.gui, + underline = true } +local diagnostic_info_u_h = { ctermfg = C.blue.cterm, + fg = C.blue.gui, + underline = true } +local diagnostic_hint_u_h = { ctermfg = C.white.cterm, + fg = C.white.gui, + underline = true } +local diagnostic_ok_u_h = { ctermfg = C.green.cterm, + fg = C.green.gui, + underline = true } set_hl("DiagnosticError", diagnostic_error_h) set_hl("DiagnosticWarn", diagnostic_warn_h) @@ -268,23 +285,36 @@ set_hl("DiagnosticUnnecessary", diagnostic_hint_u_h) set_hl("Directory", { ctermfg = C.blue.cterm, fg = C.blue.gui }) -- syntax ---------------------------------------------------------------------- -local syntax_normal_h = {} -local syntax_comment_h = { ctermfg = C.blue.cterm, fg = C.blue.gui } -local syntax_constant_h = { ctermfg = C.red.cterm, fg = C.red.gui } +local syntax_normal_h = {} +local syntax_comment_h = { ctermfg = C.blue.cterm, + fg = C.blue.gui } +local syntax_constant_h = { ctermfg = C.red.cterm, + fg = C.red.gui } local syntax_identifier_h = {} -local syntax_statement_h = { ctermfg = C.orange.cterm, fg = C.orange.gui } -local syntax_preproc_h = { ctermfg = C.magenta.cterm, fg = C.magenta.gui } -local syntax_type_h = { ctermfg = C.green.cterm, fg = C.green.gui } -local syntax_special_h = { ctermfg = C.orange.cterm, fg = C.orange.gui } -local syntax_underline_h = { underline = true } -local syntax_ignore_h = { ctermfg = C.black.cterm, fg = C.black.gui } -local syntax_error_h = { ctermfg = C.black.cterm, fg = C.black.gui, ctermbg = C.red.cterm, bg = C.red.gui } -local syntax_warn_h = { ctermfg = C.black.cterm, fg = C.black.gui, ctermbg = C.orange.cterm, bg = C.orange.gui } - -local syntax_italic_h = { italic = true } -local syntax_bold_h = { bold = true } -local syntax_bolditalic_h = { bold = true, italic = true } -local syntax_strike_h = { strikethrough = true } +local syntax_statement_h = { ctermfg = C.orange.cterm, + fg = C.orange.gui } +local syntax_preproc_h = { ctermfg = C.magenta.cterm, + fg = C.magenta.gui } +local syntax_type_h = { ctermfg = C.green.cterm, + fg = C.green.gui } +local syntax_special_h = { ctermfg = C.orange.cterm, + fg = C.orange.gui } +local syntax_underline_h = { underline = true } +local syntax_ignore_h = { ctermfg = C.black.cterm, + fg = C.black.gui } +local syntax_error_h = { ctermfg = C.black.cterm, + fg = C.black.gui, + ctermbg = C.red.cterm, + bg = C.red.gui } +local syntax_warn_h = { ctermfg = C.black.cterm, + fg = C.black.gui, + ctermbg = C.orange.cterm, + bg = C.orange.gui } +local syntax_italic_h = { italic = true } +local syntax_bold_h = { bold = true } +local syntax_bolditalic_h = { bold = true, + italic = true } +local syntax_strike_h = { strikethrough = true } set_hl("Comment", syntax_comment_h) set_hl("Constant", syntax_constant_h) @@ -328,9 +358,13 @@ set_hl("BoldItalic", syntax_bolditalic_h) set_hl("Strike", syntax_strike_h) -- markdown -------------------------------------------------------------------- -local markdown_label_h = { ctermfg = C.magenta.cterm, fg = C.magenta.gui } -local markdown_delimiter_h = { ctermfg = C.blue.cterm, fg = C.blue.gui } -local markdown_underline_h = { ctermfg = C.blue.cterm, fg = C.blue.gui, underline = true } +local markdown_label_h = { ctermfg = C.magenta.cterm, + fg = C.magenta.gui } +local markdown_delimiter_h = { ctermfg = C.blue.cterm, + fg = C.blue.gui } +local markdown_underline_h = { ctermfg = C.blue.cterm, + fg = C.blue.gui, + underline = true } set_hl("markdownLabel", markdown_label_h) set_hl("markdownHeadingDelimiter", markdown_delimiter_h) @@ -343,5 +377,6 @@ set_hl("markdownLinkTextDelimiter", markdown_delimiter_h) set_hl("markdownLinkDelimiter", markdown_delimiter_h) set_hl("markdownUrl", markdown_delimiter_h) +-- yaml ------------------------------------------------------------------------ set_hl("yamlBlockMappingKey", syntax_comment_h) set_hl("yamlPlainScalar", syntax_constant_h) diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua index 84929ef..fb54497 100644 --- a/.config/nvim/init.lua +++ b/.config/nvim/init.lua @@ -2,31 +2,42 @@ local opt, api, cmd = vim.opt, vim.api, vim.cmd local fn, ui = vim.fn, vim.ui -- colorscheme ----------------------------------------------------------------- + cmd.colorscheme("basic") -- options --------------------------------------------------------------------- + opt.undofile = true opt.backup = false opt.writebackup = false opt.mouse = "nvi" opt.title = true - opt.shortmess:append({ I = true }) opt.number = true opt.relativenumber = true opt.signcolumn = "number" opt.textwidth = 80 opt.colorcolumn = "+1" - opt.expandtab = true opt.tabstop = 4 opt.shiftwidth = 4 opt.softtabstop = -1 opt.smarttab = true - opt.showtabline = 2 opt.winbar = "%f%( %h%m%r%y%)" opt.laststatus = 3 +opt.ignorecase = true +opt.infercase = true +opt.smartcase = true +opt.smartindent = true +opt.clipboard = "unnamedplus" +opt.wildoptions = { "fuzzy" } +opt.wildignorecase = true +opt.path = ".,,**" +opt.completeopt = { "menuone", "preview" } +opt.scrolloff = 10 + +-- statusline ------------------------------------------------------------------ function _G.statusline() local wordcount = fn.wordcount() @@ -40,39 +51,21 @@ function _G.statusline() end opt.statusline = "%!v:lua.statusline()" -opt.ignorecase = true -opt.infercase = true -opt.smartcase = true -opt.smartindent = true -opt.clipboard = "unnamedplus" -opt.wildoptions = { "fuzzy" } -opt.wildignorecase = true - - -opt.path = ".,,**" - -opt.completeopt = { "menuone", "preview", } -- keymaps --------------------------------------------------------------------- + local keymap_set = vim.keymap.set keymap_set("n", "", "nohlsearch") - keymap_set("c", "", "") keymap_set("c", "", "") - keymap_set("n", "f", ":find ") keymap_set("n", "b", ":buffer ") keymap_set("n", "h", ":help ") keymap_set("n", "g", ":vimgrep /") - keymap_set("n", "s", ":set spell!") - keymap_set("n", "m", "make") - -keymap_set("n", "d", "enewbdelete#") -keymap_set("n", "D", "bdelete") - +keymap_set("n", "d", "bdelete") keymap_set("n", "]b", "bnext") keymap_set("n", "[b", "bprev") keymap_set("n", "]B", "blast") @@ -85,15 +78,10 @@ keymap_set("n", "]q", "cnextzz") keymap_set("n", "[q", "cprevzz") keymap_set("n", "]Q", "clastzz") keymap_set("n", "[Q", "cfirstzz") - keymap_set("n", "co", "copen") keymap_set("n", "cc", "cclose") - -keymap_set("i", "", "") - keymap_set("n", "", "h") keymap_set("n", "", "j") keymap_set("n", "", "k") keymap_set("n", "", "l") - keymap_set("n", ".", "e.")