" vim: ts=2:sw=2:et:tw=99 let g:mapleader = ' ' " key to let g:maplocalleader = '\' runtime general.vim " runtime plug.vim lua require'init' " hi CursorLine cterm=NONE ctermbg=darkred ctermfg=white guibg=darkred guifg=white " hi CursorLine cterm=NONE ctermbg=darkred ctermfg=white guibg=darkred guifg=white " nnoremap cl :set cursorline! " nnoremap cc :set cursorcolumn! " looks {{{ let g:daymode = 0 let g:daymode_colorscheme_day = 'ayu' let g:daymode_colorscheme_night = 'PaperColor' " let g:daymode_lightline_colorscheme_day = 'ayu_light' " let g:daymode_lightline_colorscheme_night = 'papercolor_dim' let g:ayucolor="light" let g:PaperColor_Theme_Options = { \ 'theme': { \ 'default.dark': { \ 'allow_bold': 1, \ 'allow_italic': 1, \ 'transparent_background': 1, \ } \ } \ } colorscheme PaperColor augroup Colors au! au ColorScheme * runtime colors/PaperColor_ext.vim " NOTE: this is necessary for to fix the guibg when transparent_background " is enabled au ColorScheme * hi! clear SignColumn " TODO: this breaks colorizer highlighting " au VimEnter * if exists('g:daymode') && g:daymode " \ | call daymode#switch(0) " \ | else " \ | call daymode#switch(1) " \ | endif augroup END " Make comments italic, no matter what the colorscheme does hi Comment gui=italic " Fix ugly looking grey when transparent_background=1 hi SignColumn guibg=none ctermbg=none " }}} " key bindings {{{ " speed noremap j gj noremap k gk " because this is annoying noreabbrev W w cnoreabbrev E e cnoreabbrev Q q nnoremap Q :q " Buffer commands nmap gb :bnext nmap gB :bprevious " quickfix jumping " nnoremap cn :cnext " nnoremap cp :cprevious " loclist jumping " nnoremap ln :lnext " nnoremap lp :lprevious " escape terminal mode with tnoremap tnoremap qq :bdelete! " delete and don't remember... " nnoremap s "_d " nnoremap ss "_dd " vnoremap s "_d " replace word under cursor nmap riw :%s/\<\>/ nmap ga EasyAlign vmap EasyAlign " nmap gm GitMessenger nmap gm GitMessenger nmap v :Vista!! nmap nt :call numbertoggle#switch() nmap tn :rightbelow Tnew nmap gF :lua require'misc'.open_under_cursor() noremap gx :lua require'misc'.open_under_cursor('url-launcher') augroup netrw_maps au! au BufEnter * nnoremap gx :lua require'misc'.open_under_cursor('url-launcher') augroup END " }}} " alternate -> plugin/alternate.vim " daymode -> plugin/daymode.vim " fasd -> plugin/fasd.vim " fuzzy -> plugin/fuzz.vim " hardmode -> plugin/hard.vim " numbertoggle -> plugin/numbertoggle.vim " writing -> after/plugin/writing.vim " filetype configs -> after/ftplugin " neomake -> after/plugin/neomake.vim " lightline -> plugin/line.vim " let g:netrw_browsex_viewer = 'url-launcher' " plugin config {{{ " let g:easy_align_ignore_groups = [] " obsession {{{2 let g:session_extension = ".vim-session" let g:session_autosave = "no" let g:session_autoload = "no" let g:session_autosave_periodic = 5 let g:session_command_aliases = 1 " }}}2 let g:echodoc_enable_at_startup = 1 " matchtagalways {{{2 let g:mta_use_matchparen_group = 1 let g:mta_filetypes = { \ 'html' : 1, \ 'xhtml' : 1, \ 'xml' : 1, \ 'jinja' : 1, \ 'vue' : 1 \} " }}}2 " emmet let g:user_emmet_leader_key = g:maplocalleader " followed by , " let g:user_emmet_mode = 'a' " indentguides {{{2 let g:indent_guides_enable_on_vim_startup = 1 let g:indent_guides_start_level = 2 let g:indent_guides_color_change_percent = 2 let g:indent_guides_guide_size = 1 " }}}2 " indentline {{{2 " let g:indentLine_char = '▏' " let g:indentLine_enabled = 1 " let g:indentLine_conceallevel = 1 " :set list lcs=tab:\▏\ " }}}2 " signify {{{2 " let g:signify_sign_add = '▎' " let g:signify_sign_delete = '▎' " let g:signify_sign_delete_first_line = '▀' let g:signify_sign_change = '~' " let g:signify_sign_changedelete = g:signify_sign_change " let g:signify_sign_show_text = 0 hi SignifySignChange guibg=NONE ctermbg=NONE hi SignifySignAdd guibg=NONE ctermbg=NONE hi SignifySignDelete guibg=NONE ctermbg=NONE nmap ]h SignifyJumpToNextHunk nmap [h SignifyJumpToPrevHunk " }}}2 let g:vue_disable_pre_processors = 1 let g:vim_json_syntax_conceal = 1 let g:qs_highlight_on_keys = ['f', 'F', 't', 'T'] " quickscope let g:utl_cfg_hdl_scm_http = 'silent !xdg-open %u' let g:sneak#label = 1 " vista {{{2 let g:vista_icon_indent = ['> ', '* '] let g:vista_default_executive = 'ctags' let g:vista_go_executive = 'nvim_lsp' let g:vista_rust_executive = 'nvim_lsp' let g:vista_ctags_cmd = { \ 'vimwiki': $HOME . '/.vim/vwtags.py markdown', \ } let g:vista#renderer#enable_icon = 0 let g:vista#renderer#icons = { \ 'func': "f", \ 'function': "f", \ 'functions': "fs", \ 'var': "v", \ 'variable': "v", \ 'variables': "vs", \ 'const': "c", \ 'constant': "c", \ 'method': "m", \ 'package': "p", \ 'packages': "ps", \ 'enum': "e", \ 'enumerator': "E", \ 'module': "m", \ 'modules': "ms", \ 'type': "t", \ 'typedef': "t", \ 'types': "ts", \ 'field': "fd", \ 'fields': "fds", \ 'macro': "mc", \ 'macros': "mcs", \ 'map': "mp", \ 'class': "cl", \ 'augroup': "au", \ 'struct': "st", \ 'union': "u", \ 'member': "mb", \ 'target': "ta", \ 'property': "pr", \ 'interface': "if", \ 'namespace': "ns", \ 'subroutine': "sr", \ 'implementation': "im", \ 'typeParameter': "tp", \ 'default': "_" \ } " }}}2 " vim-markdown {{{2 let g:vim_markdown_folding_disabled = 1 let g:vim_markdown_math = 1 let g:vim_markdown_frontmatter = 1 let g:vim_markdown_json_frontmatter = 1 let g:vim_markdown_toml_frontmatter = 1 let g:vim_markdown_folding_level = 2 let g:vim_markdown_strikethrough = 1 let g:vim_markdown_auto_insert_bullets = 1 let g:vim_markdown_new_list_item_indent = 0 " }}}2 " let g:git_messenger_include_diff = v:false let g:git_messenger_always_into_popup = v:true let g:git_messenger_close_on_cursor_moved = v:true " Neoformat {{{2 let g:neoformat_basic_format_align = 0 let g:neoformat_basic_format_retab = 0 let g:neoformat_basic_format_trim = 0 let g:neoformat_only_msg_on_error = 1 " }}}2 " Clap {{{2 " " let g:clap_insert_mode_only = v:true " let g:clap_popup_border = 'sharp' " let g:clap_layout = {} " " let g:clap_layout.relative = 'editor' " " let g:clap_layout.row = '5%' " " let g:clap_layout.col = '0%' " " let g:clap_layout.width = '100%' " " let g:clap_layout.height = '33%' " let g:clap_multi_selection_warning_silent = 1 " let g:clap_selected_sign = { 'text': '* ', 'texthl': "WarningMsg", "linehl": "ClapSelected" } " nnoremap cc :Clap " nnoremap cg :Clap grep2 " nnoremap cb :Clap buffers " nnoremap cf :Clap files " nnoremap cl :Clap quickfix " nnoremap ll :Clap loclist " }}}2 let g:neoterm_size = 20 let g:neoterm_autoinsert = 1 let g:UltiSnipsExpandTrigger = "" " let g:UltiSnipsListSnippets = "" let g:UltiSnipsJumpForwardTrigger = "" let g:UltiSnipsJumpBackwardTrigger = "" let g:vimwiki_main = {} let g:vimwiki_main.path = '~/wiki/' let g:vimwiki_main.syntax = 'markdown' let g:vimwiki_main.ext = '.md' let g:vimwiki_main.name = 'wiki' let g:vimwiki_main.index = '_index' let g:vimwiki_list = [vimwiki_main] let g:vimwiki_folding = 'list' let g:tex_flavor = 'latex' let g:vimtex_compiler_enabled = 1 let g:vimtex_compiler_method = 'tectonic' let g:vimtex_compiler_tectonic = { \ 'executable': 'tectonic', \ } let g:vimtex_view_method = 'zathura' " let g:vimtex_view_zathura_check_libsynctex = 0 " let g:vimtex_view_use_temp_files = 1 " let g:vimtex_view_forward_search_on_start = 0 " }}}1 " lua stuff {{{1 set complete=.,w,b,u set completeopt=menuone,noinsert,noselect " set completeopt-=preview set shortmess+=c let g:completion_enable_auto_popup = 1 let g:completion_enable_auto_signature = 1 let g:completion_enable_auto_paren = 0 let g:completion_confirm_key = "\" let g:completion_enable_snippet = 'UltiSnips' let g:completion_auto_change_source = 1 let g:completion_chain_complete_list = [ \ {'complete_items': ['lsp']}, \ {'complete_items': ['snippet']}, \ {'complete_items': ['buffers']}, \ {'complete_items': ['path']}, \ {'complete_items': ['wiki']}, \ {'complete_items': ['ts']}, \ {'mode': 'file'}, \ ] inoremap \ pumvisible() ? "\" : completion#trigger_completion() inoremap \ pumvisible() ? "\" : completion#trigger_completion() imap lua require'completion.source'.nextCompletion() imap lua require'completion.source'.prevCompletion() augroup Compl au! au BufEnter * lua require'completion'.on_attach() augroup END " }}}1 " gui extra config {{{ " probably obsolete... if exists('veonim') " set linespace=5 set guifont=Iosevka\ R:h17 runtime init_veonim.vim endif " }}} function! s:fmt() abort if exists('g:nofmt') || exists('b:nofmt') return endif try undojoin Neoformat catch " hmm echo 'not formatted' endtry endfunction augroup DoFmt au! au BufWritePre * :call fmt() augroup END " autogroups {{{ augroup SpecialBuffers au! " au FileType vista,fzf,skim set laststatus=0 noshowmode noruler " \| au BufLeave set laststatus=2 ruler au FileType fzf,skim tnoremap au FileType gitmessengerpopup nmap GitMessengerClose au FileType vista nmap :wincmd p au FileType help,qf,vista nmap q " au FileType vimwiki call vista#sidebar#ToggleFocus() augroup END " augroup AutoSaveFolds " autocmd! " autocmd BufWinLeave * mkview " autocmd BufWinEnter * silent loadview " augroup END augroup Init au! " au VimEnter * call vista#RunForNearestMethodOrFunction() " au VimEnter * Vista!! " vim was opened as diff tool, load the 'diff' ftplugin conf au VimEnter * if &diff | runtime after/ftplugin/diff.vim | endif au BufEnter,BufLeave,BufWritePost * rshada|wshada " au FileType dirvish call fugitive#detect(@%) au BufReadPost * \ if line("'\"") > 1 && line("'\"") <= line("$") && &ft !~# 'commit' \ | exe "normal! g`\"" \ | endif augroup END augroup YankHighlight au! au TextYankPost * silent! lua require'vim.highlight'.on_yank() augroup END augroup Diagnostic au! " au CursorHold * lua vim.lsp.util.show_line_diagnostics() augroup END " }}} command! SortLine call setline('.', join(sort(split(getline('.'), ' ')), " ")) command! -bang DayMode call daymode#switch(0) command! NumberToggle call numbertoggle#switch() command! Alternate call alternate#alternate() command! InsertTS r!now command! BalenaDiagnosticsFold call balena_diagnostics_fold#apply() command! -range=% -nargs=0 Tab2Space execute ',s#^\t\+#\=repeat(" ", len(submatch(0))*' . &ts . ')' command! -range=% -nargs=0 Space2Tab execute ',s#^\( \{'.&ts.'\}\)\+#\=repeat("\t", len(submatch(0))/' . &ts . ')' " WARNING! roadwork ahead " lua << EOF " if vim.env.SNIPPETS then " vim.snippet = require 'snippet' " end " EOF