From d06714a6795d02e905bd4c1bafefdc2ad2649a67 Mon Sep 17 00:00:00 2001 From: speedie Date: Thu, 18 Jan 2024 22:04:54 +0100 Subject: [PATCH] speedie-nvim | Add new config --- .config/nvim/config | 95 --------------------------------- .config/nvim/init.lua | 120 ++++++++++++++++++++++++++++++++++++++++++ .config/nvim/init.vim | 1 - commit.sh | 2 +- 4 files changed, 121 insertions(+), 97 deletions(-) delete mode 100644 .config/nvim/config create mode 100644 .config/nvim/init.lua delete mode 100644 .config/nvim/init.vim diff --git a/.config/nvim/config b/.config/nvim/config deleted file mode 100644 index 11f99a2..0000000 --- a/.config/nvim/config +++ /dev/null @@ -1,95 +0,0 @@ -" speedie's neovim configuration -" purely for productivity, no bloat - -syntax on - -set rnu -set mouse=a -set clipboard=unnamedplus -set title -set hidden -set smarttab -set autoindent -set expandtab -set noswapfile -set nocursorline -set laststatus=0 -set undolevels=10000 -set softtabstop=4 -set shiftwidth=4 -set tabstop=4 -set spelllang=en_us -set spellsuggest=best,5 -set foldmethod=indent -set laststatus=0 - -set termguicolors -set t_Co=256 -set t_ut= -set background=dark -colorscheme elflord - -fu! SaveSession() - execute 'mksession! ' . getcwd() . '/.session.nvim' -endfunction - -fu! RestoreSession() - if argc() == 0 - if filereadable(getcwd() . '/.session.nvim') - execute 'so ' . getcwd() . '/.session.nvim' - if bufexists(1) - for l in range(1, bufnr('$')) - if zufwinnr(l) == -1 - exec 'sbuffer ' . l - endif - endfor - endif - - silent execute '!rm -f ' . getcwd() . '/.session.nvim' - endif - endif -endfunction - -autocmd BufReadPre *.md set spell -autocmd BufWritePre * %s/\s\+$//e -autocmd BufWritePre * %s/\t/ /e -autocmd BufWritePre Makefile %s/ /\t/e -autocmd VimLeave * call SaveSession() -autocmd VimEnter * nested call RestoreSession() - -highlight Normal ctermfg=grey ctermbg=lightgray guifg=#ffffff guibg=#222222 -highlight Folded ctermfg=grey ctermbg=lightgray guifg=#afeeee guibg=#333333 -highlight SpellBad guisp=red gui=undercurl guifg=none guibg=none ctermfg=none ctermbg=none term=underline cterm=undercurl -highlight SpellCap guisp=yellow gui=undercurl guifg=none guibg=none ctermfg=none ctermbg=none term=underline cterm=undercurl - -filetype plugin indent on - -nnoremap h -nnoremap j -nnoremap k -nnoremap l -nnoremap :split -nnoremap :vsplit -nnoremap :only -nnoremap :term - -nnoremap :set spell! -nnoremap :set spelllang=en_us -nnoremap :set spelllang=sv_se -nnoremap :silent execute '!setxkbmap us' -nnoremap :silent execute '!setxkbmap se' -nnoremap [s1z= -nnoremap 1z= - -nnoremap H :vertical resize -10 -nnoremap J :resize -10 -nnoremap K :resize +10 -nnoremap L :vertical resize +10 - -nnoremap d "_d -xnoremap d "_d -xnoremap p "_dP -nnoremap c "_c - -let &t_8f = "\[38;2;%lu;%lu;%lum" -let &t_8b = "\[48;2;%lu;%lu;%lum" diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua new file mode 100644 index 0000000..94cf8b4 --- /dev/null +++ b/.config/nvim/init.lua @@ -0,0 +1,120 @@ +--[[ + speedie's neovim configuration + -- https://git.speedie.site/speedie/speedie-nvim -- +]]-- + +local cmd = vim.cmd +local opt = vim.opt +local o = vim.o +local api = vim.api +local keymap = vim.api.nvim_set_keymap +local autocmd = vim.api.nvim_create_autocmd +local sessionFile = vim.fn.expand('~/.config/nvim/.session.nvim') + +opt.title = true -- Display title +opt.spelllang = 'en_us' -- Use English (United States) as spellcheck language by default +opt.relativenumber = true -- Show relative line numbers +opt.mouse = 'a' -- Enable mouse +opt.clipboard = 'unnamedplus' -- Use system clipboard +opt.hidden = true -- Hides buffers +opt.smarttab = true -- Enable smart tab +opt.ignorecase = true -- Enable case insensitivity when searching +opt.smartcase = true -- Pretty much same for this one +opt.hlsearch = false -- Don't highlight searches +opt.smartindent = true -- Automatically indent the next line +opt.autoindent = true -- Pretty much same for this one +opt.expandtab = true -- Replace tabs with spaces automatically +opt.swapfile = false -- Don't use a swapfile +opt.cursorline = false -- Don't show the cursor line +opt.undolevels = 10000 -- Allow up to 10000 undos +opt.tabstop = 4 -- Display a tab (\t) as 4 spaces +opt.softtabstop = 4 -- Display a tab (\t) as 4 spaces +opt.shiftwidth = 4 -- Indents for << or >> +opt.spellsuggest = 'best,5' -- Prefer the best suggestions +opt.foldmethod = 'indent' -- Fold based on indents +opt.laststatus = 0 -- Don't display file information +opt.termguicolors = true -- Enable true color +opt.autochdir = true -- Automatically change directory to the file we're editing +opt.background = 'dark' -- Set background to dark + +o.t_8f = '\27[38;2;%lu;%lu;%lum' -- To be honest, I don't know what this does but if I remember correctly it's something good. +o.t_8b = '\27[48;2;%lu;%lu;%lum' -- To be honest, I don't know what this does but if I remember correctly it's something good. + +cmd([[ + colorscheme elflord + highlight Normal ctermfg=grey ctermbg=lightgray guifg=#ffffff guibg=#222222 + highlight Folded ctermfg=grey ctermbg=lightgray guifg=#afeeee guibg=#333333 + highlight SpellBad guisp=red gui=undercurl guifg=none guibg=none ctermfg=none ctermbg=none term=underline cterm=undercurl + highlight SpellCap guisp=yellow gui=undercurl guifg=none guibg=none ctermfg=none ctermbg=none term=underline cterm=undercurl + filetype plugin indent on +]]) + +keymap('n', '', 'h', { noremap = true }) +keymap('n', '', 'j', { noremap = true }) +keymap('n', '', 'k', { noremap = true }) +keymap('n', '', 'l', { noremap = true }) +keymap('n', '', ':split', { noremap = true }) +keymap('n', '', ':vsplit', { noremap = true }) +keymap('n', '', ':only', { noremap = true }) +keymap('n', '', ':term', { noremap = true }) +keymap('n', '', ':set spell!', { noremap = true }) +keymap('n', '', ':set spelllang=en_us', { noremap = true }) +keymap('n', '', ':set spelllang=sv_se', { noremap = true }) +keymap('n', '', ':silent execute "!setxkbmap us"', { noremap = true }) +keymap('n', '', ':silent execute "!setxkbmap se"', { noremap = true }) +keymap('n', '', '[s1z=', { noremap = true }) +keymap('n', '', '1z=', { noremap = true }) +keymap('n', '', ':!ninja -C build', { noremap = true }) +keymap('n', 'H', ':vertical resize -10', { noremap = true }) +keymap('n', 'J', ':resize -10', { noremap = true }) +keymap('n', 'K', ':resize +10', { noremap = true }) +keymap('n', 'L', ':vertical resize +10', { noremap = true }) +keymap('n', 'd', '"_d', { noremap = true }) +keymap('x', 'd', '"_d', { noremap = true }) +keymap('x', 'p', '"_dP', { noremap = true }) +keymap('n', 'c', '"_c', { noremap = true }) +keymap('n', '', 'v/{%', { noremap = true }) + +function saveSession() -- Save the current session + vim.cmd('mksession! ' .. sessionFile) +end + +function restoreSession() -- Restore the last session + if vim.fn.argc() == 0 then + if vim.fn.filereadable(sessionFile) == 1 then + vim.cmd('source ' .. sessionFile) + vim.cmd("filetype detect") + end + end +end + +autocmd('BufWritePre', { -- Remove trailing spaces + pattern = { '*' }, + callback = function() + vim.cmd("%s/\\s\\+$//e") + end, +}) +autocmd('BufReadPre', { -- Enable spell check for all Markdown files + pattern = { '*.md' }, + callback = function() + vim.cmd("set spell") + end, +}) +autocmd('BufWritePre', { -- Replace four spaces with tabs in Makefiles + pattern = { 'Makefile' }, + callback = function() + vim.cmd("autocmd BufWritePre Makefile %s/ /\t/e") + end, +}) +autocmd('VimEnter', { -- Restore session on load + pattern = { '*' }, + callback = function() + restoreSession() + end, +}) +autocmd('VimLeave', { -- Save session on exit + pattern = { '*' }, + callback = function() + saveSession() + end, +}) diff --git a/.config/nvim/init.vim b/.config/nvim/init.vim deleted file mode 100644 index 4f040d6..0000000 --- a/.config/nvim/init.vim +++ /dev/null @@ -1 +0,0 @@ -source $HOME/.config/nvim/config diff --git a/commit.sh b/commit.sh index a8aa323..8090429 100755 --- a/commit.sh +++ b/commit.sh @@ -4,7 +4,7 @@ if [ -e "$HOME/.config/nvim" ]; then rm -rf .config/nvim mkdir -p .config cp -r $HOME/.config/nvim .config/ - rm -rf .config/nvim/vimdata .config/nvim/.session.nvim + rm -rf .config/nvim/.session.nvim git add .config/* commit.sh install.sh git commit -a -m "speedie-nvim | Add new config"