summary refs log tree commit diff
path: root/.vim/init.vim
diff options
context:
space:
mode:
Diffstat (limited to '.vim/init.vim')
-rw-r--r--.vim/init.vim286
1 files changed, 286 insertions, 0 deletions
diff --git a/.vim/init.vim b/.vim/init.vim
new file mode 100644
index 0000000..879753a
--- /dev/null
+++ b/.vim/init.vim
@@ -0,0 +1,286 @@
+let g:mapleader = ' ' " <leader> key to <space>
+let g:maplocalleader = '\'
+
+runtime general.vim
+runtime plug.vim
+
+" 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 <Leader>cl :set cursorline!<CR>
+" nnoremap <Leader>cc :set cursorcolumn!<CR>
+
+" looks {{{
+set background=dark
+let g:PaperColor_Theme_Options = {
+\   'theme': {
+\     'default.dark': {
+\       'allow_bold': 1,
+\       'allow_italic': 1,
+\       'transparent_background': 1,
+\     }
+\   }
+\ }
+colorscheme PaperColor
+let g:day_mode_colorscheme = 'PaperColor'
+
+" 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
+cnoreabbrev W w
+cnoreabbrev E e
+cnoreabbrev Q q
+" Buffer commands
+nmap <silent> gb :bnext<CR>
+nmap <silent> gB :bprevious<CR>
+" quickfix jumping
+nnoremap <leader>cn :cnext<CR>
+nnoremap <leader>cp :cprevious<CR>
+nnoremap <leader>cl :clist<CR>
+" loclist jumping
+nnoremap <leader>ln :lnext<CR>
+nnoremap <leader>lp :lprevious<CR>
+nnoremap <leader>ll :llist<CR>
+" escape terminal mode with <esc>
+tnoremap <esc> <C-\><C-n>
+tnoremap <leader>qq <C-\><C-n>:bdelete!<CR>
+" delete and don't remember...
+" nnoremap s "_d
+" nnoremap ss "_dd
+" vnoremap s "_d
+" replace word under cursor
+nmap <silent> riw :%s/\<<C-r><C-w>\>/
+
+nmap <silent> ga <Plug>(EasyAlign)
+vmap <silent> <Enter> <Plug>(EasyAlign)
+nmap <silent> gl <Plug>(OrgHyperlinkFollow)
+nmap <leader>gm <Plug>(git-messenger)
+nmap <leader>v :Vista!!<CR>
+nmap <leader>nt :call numbertoggle#switch()<CR>
+nmap <leader>tn :rightbelow Tnew<CR>
+vmap rt :call retab#do()<CR>
+" }}}
+
+" 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/tagbar.vim
+" filetype configs -> after/ftplugin
+" coc -> after/plugin/coc.vim
+" neomake -> after/plugin/neomake.vim
+" tagbar -> after/plugin/tagbar.vim
+" lightline -> plugin/line.vim
+
+" plugin config {{{
+"
+" 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 <silent> ]h <Plug>(signify-next-hunk)
+nmap <silent> [h <Plug>(signify-prev-hunk)
+" }}}2
+
+let g:polyglot_disabled = ['markdown', 'org', 'latex', 'tex', 'vue']
+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_executive_for = {
+" \ 'javascript': 'coc',
+" \ 'python': 'coc',
+" \ }
+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
+
+" bufferline {{{2
+let g:bufferline_echo = 0
+let g:bufferline_show_bufnr = 0
+" let g:bufferline_separator = ' '
+let g:bufferline_active_buffer_left = ''
+let g:bufferline_active_buffer_right = ''
+" let g:bufferline_unamed_buffer = '[no name]'
+let g:bufferline_fname_mod = ':t:s?^$?[no name]?'
+" }}}2
+
+" Enable color highlighting for all filetypes
+let g:Hexokinase_ftAutoload = ['*']
+let $SKIM_DEFAULT_COMMAND = ''
+
+" 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
+
+let g:neoterm_size = 20
+let g:neoterm_autoinsert = 1
+
+let g:UltiSnipsExpandTrigger = "<tab>"
+let g:UltiSnipsJumpForwardTrigger = "<c-n>"
+let g:UltiSnipsJumpBackwardTrigger = "<c-p>"
+" }}}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 /^Vim\%((\a\+)\)\=:E790/ | finally | silent Neoformat | endtry
+endfunction
+
+" autogroups {{{
+augroup SpecialBuffers
+  au!
+  " au  FileType vista,fzf,skim set laststatus=0 noshowmode noruler
+        " \| au BufLeave <buffer> set laststatus=2 ruler
+  au FileType fzf,skim tnoremap <buffer><esc> <c-c>
+  au FileType gitmessengerpopup nmap <buffer><esc> <Plug>(git-messenger-close)
+  au FileType vista nmap <buffer><space> :wincmd p<CR>
+  au FileType help,qf nmap <buffer>q <c-w><c-q>
+augroup END
+
+augroup init
+  au!
+  au VimEnter * set iskeyword-=-
+  " 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 BufWritePre * :call <SID>fmt()
+  " au FileType dirvish call fugitive#detect(@%)
+  au BufReadPost *
+	\ if line("'\"") > 1 && line("'\"") <= line("$") && &ft !~# 'commit'
+	\ |   exe "normal! g`\""
+	\ | endif
+augroup END
+" }}}
+
+command! -bang DayMode call daymode#switch(<bang>0)
+command! -range Retab <line1>,<line2>call retab#do()
+command! NumberToggle call numbertoggle#switch()
+command! Alternate call alternate#alternate()
+command! -nargs=* Zet call zettel#edit(<f-args>)