Files
nvim/init.lua

235 lines
8.2 KiB
Lua
Raw Normal View History

2025-04-12 23:49:02 +01:00
-- Set <space> as the leader key
-- See `:help mapleader`
-- NOTE: Must happen before plugins are loaded (otherwise wrong leader will be used)
vim.g.mapleader = ','
vim.g.maplocalleader = ','
-- Set to true if you have a Nerd Font installed and selected in the terminal
vim.g.have_nerd_font = true
require 'opt'
require 'keymap'
require 'autocmd'
require 'lazy_init'
-- " Run the Code Lens action on the current line
-- nmap <leader>cl <Plug>(coc-codelens-action)
--
-- " Map function and class text objects
-- " NOTE: Requires 'textDocument.documentSymbol' support from the language server
-- xmap if <Plug>(coc-funcobj-i)
-- omap if <Plug>(coc-funcobj-i)
-- xmap af <Plug>(coc-funcobj-a)
-- omap af <Plug>(coc-funcobj-a)
-- xmap ic <Plug>(coc-classobj-i)
-- omap ic <Plug>(coc-classobj-i)
-- xmap ac <Plug>(coc-classobj-a)
-- omap ac <Plug>(coc-classobj-a)
--
-- " Remap <C-f> and <C-b> to scroll float windows/popups
-- " if has('nvim-0.4.0') || has('patch-8.2.0750')
-- " nnoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#scroll(1) : "\<C-f>"
-- " nnoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#scroll(0) : "\<C-b>"
-- " inoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? "\<c-r>=coc#float#scroll(1)\<cr>" : "\<Right>"
-- " inoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? "\<c-r>=coc#float#scroll(0)\<cr>" : "\<Left>"
-- " vnoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#scroll(1) : "\<C-f>"
-- " vnoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#scroll(0) : "\<C-b>"
-- " endif
--
-- " Use CTRL-S for selections ranges
-- " Requires 'textDocument/selectionRange' support of language server
-- nmap <silent> <C-s> <Plug>(coc-range-select)
-- xmap <silent> <C-s> <Plug>(coc-range-select)
--
-- " Add `:Format` command to format current buffer
-- command! -nargs=0 Format :call CocActionAsync('format')
--
-- " Add `:Fold` command to fold current buffer
-- command! -nargs=? Fold :call CocAction('fold', <f-args>)
--
-- " Add `:OR` command for organize imports of the current buffer
-- command! -nargs=0 OR :call CocActionAsync('runCommand', 'editor.action.organizeImport')
--
-- " Add (Neo)Vim's native statusline support
-- " NOTE: Please see `:h coc-status` for integrations with external plugins that
-- " provide custom statusline: lightline.vim, vim-airline
-- set statusline^=%{coc#status()}%{get(b:,'coc_current_function','')}
--
--
-- " Mappings for CoCList
-- " Show all diagnostics
-- nnoremap <silent><nowait> <space>a :<C-u>CocList diagnostics<cr>
-- " Manage extensions
-- nnoremap <silent><nowait> <space>e :<C-u>CocList extensions<cr>
-- " Show commands
-- nnoremap <silent><nowait> <space>c :<C-u>CocList commands<cr>
-- " Find symbol of current document
-- nnoremap <silent><nowait> <space>o :<C-u>CocList outline<cr>
-- " Search workspace symbols
-- nnoremap <silent><nowait> <space>s :<C-u>CocList -I symbols<cr>
-- " Do default action for next item
-- nnoremap <silent><nowait> <space>j :<C-u>CocNext<CR>
-- " Do default action for previous item
-- nnoremap <silent><nowait> <space>k :<C-u>CocPrev<CR>
-- " Resume latest coc list
-- nnoremap <silent><nowait> <space>p :<C-u>CocListResume<CR>
--
-- " }}}
--
-- " Emmet --- {{{
-- " Toggle emmet completion using <Tab> with <Leader>em
-- let g:emmet_completion = 0
-- function ToggleEmmet()
-- if g:emmet_completion
-- echo "Emmet completion off!"
-- let g:user_emmet_expandabbr_key=','
-- iunmap <Tab>
-- let g:emmet_completion = 0
-- else
-- echo "Emmet completion on!"
-- let g:user_emmet_expandabbr_key='<Tab>'
-- imap <Expr> <Tab> emmet#expandAbbrIntelligent("\<Tab>")
-- let g:emmet_completion = 1
-- endif
-- endfunction
-- nnoremap <Leader>em :call ToggleEmmet()<CR>
-- " }}}
--
-- " Markdown --- {{{
-- " Conceal markdown text
-- set conceallevel=3
-- " }}}
--
-- " AutoPairs --- {{{
-- let g:AutoPairsFlyMode = 0
-- let g:AutoPairsShortcutBackInsert = '<M-b>' " Use <M-B> to insert the closing parentheses if it jumped ahead by mistake
-- " }}}
--
-- " CHADTree --- {{{
-- let g:chadtree_settings = {
-- \ 'theme': {
-- \ 'icon_glyph_set': 'devicons',
-- \ 'text_colour_set': 'env',
-- \ 'icon_colour_set': 'github',
-- \ "discrete_colour_map": {
-- \ "black": "#21222c",
-- \ "red": "#ff5555",
-- \ "green": "#50fa7b",
-- \ "yellow": "#f1fa8c",
-- \ "blue": "#bd93f9",
-- \ "magenta": "#ff79c6",
-- \ "cyan": "#8be9fd",
-- \ "white": "#f8f8f2",
-- \ "bright_black": "#6272a4",
-- \ "bright_red": "#ff6e6e",
-- \ "bright_green": "#69ff94",
-- \ "bright_yellow": "#ffffa5",
-- \ "bright_blue": "#d6acff",
-- \ "bright_magenta": "#ff92df",
-- \ "bright_cyan": "#a4ffff",
-- \ "bright_white": "#ffffff"
-- \ }
-- \ }
-- \ }
-- " }}}
--
-- " Commentary --- {{{
-- " function s:set_commentary_format()
-- " echo "running command"
-- " if &filetype =~ 'vue\|html\|svelte'
-- " if searchpair('<\(script\|style\)', '', '</\(script\|style\)>', 'Wn')
-- " let b:commentary_format="// %s"
-- " else
-- " let b:commentary_format=&commentstring
-- " endif
-- " endif
-- " endfunction
--
-- " xnoremap gc :call <SID>set_commentary_format()<CR><Plug>Commentary
-- " nnoremap gc :call <SID>set_commentary_format()<CR><Plug>Commentary
-- " onoremap gc :call <SID>set_commentary_format()<CR><Plug>Commentary
-- " nnoremap gcc :call <SID>set_commentary_format()<CR><Plug>Commentary
-- " nnoremap cgc :call <SID>set_commentary_format()<CR><Plug>Commentary
-- " nnoremap cgu :call <SID>set_commentary_format()<CR><Plug>Commentary<Plug>Commentary
-- " }}}
--
-- " Easymotion --- {{{
-- let g:EasyMotion_do_mapping = 0 " Disable default mappings
--
-- map <Leader> <Plug>(easymotion-prefix)
-- " Jump to anywhere you want with minimal keystrokes, with just one key binding.
-- " `s{char}{label}
-- nmap s <Plug>(easymotion-overwin-f)
--
-- " Turn on case-insensitive feature
-- let g:EasyMotion_smartcase = 1
--
-- " JK motions: Line motions
-- map <Leader>j <Plug>(easymotion-j)
-- map <Leader>k <Plug>(easymotion-k)
-- " }}}
--
-- " }}}
--
-- " PHP --- {{{
-- " function! RunPHPUnitTest()
-- " cd %:p:h
-- " normal! T yw
-- " let result = system("phpunit --filter " . @" . " " . bufname("%"))
-- " split __PHPUnit_Result__
-- " normal! ggdG
-- " setlocal buftype=nofile
-- " call append(0, split(result, '\v\n'))
-- " cd -
-- " endfunction
--
-- " nnoremap <F12> :call RunPHPUnitTest()<cr>
-- " }}}
--
-- " Moving around --- {{{
-- "Use capital H and L to move to the start and end of lines
-- nnoremap H ^
-- nnoremap L $
--
-- " }}}
--
-- " Operator mappings --- {{{
-- onoremap in( :<C-U>normal! f(vi(<CR>
-- onoremap il( :<C-U>normal! F)vi(<CR>
-- onoremap an( :<C-U>normal! f(va(<CR>
-- onoremap al( :<C-U>normal! F)va(<CR>
-- onoremap an{ :<C-U>normal! f{vi{<CR>
-- onoremap al{ :<C-U>normal! F}vi<CR>
-- " }}}
--
-- " Abbreviations --- {{{
-- iabbrev adn and
-- iabbrev waht what
-- iabbrev tehn then
-- iabbrev tihs this
-- iabbrev teh the
-- iabbrev Teh The
-- " }}}
--
-- " Auto-Commands --- {{{
--
-- augroup modes
-- autocmd!
-- autocmd FocusLost * call feedkeys("\<Esc>") "Go to normal mode when moving away
-- autocmd BufNewFile * call feedkeys("i") "Go to insert mode when starting a new file
-- augroup END
--
-- "Recompile suckless software when updating config
-- augroup suckless
-- autocmd BufWritePost ~/.local/src/dwmblocks/config.h !cd ~/.local/src/dwmblocks/; doas make install && { killall -q dwmblocks;setsid -f dwmblocks }
-- autocmd BufWritePost ~/.local/src/dwm/config.h !cd ~/.local/src/dwm/; doas make clean install
-- autocmd BufWritePost ~/.local/src/st/config.h !cd ~/.local/src/st/; doas make clean install
-- " }}}
--
-- " Notes and tips
-- " - press 'zz' to instantly center the line where the cursor is located.
-- " - You can increment numbers with <c-a>.
-- " - To operate on multiple lines use <c-v> to select the lines, <c-i> to go to
-- " insert mode, perform edit, press <esc>.
-- " - Use the command :r to paste the output of a command to the buffer.