diff --git a/vimrc b/vimrc index a5f5241..6b8ed20 100644 --- a/vimrc +++ b/vimrc @@ -1,276 +1,106 @@ " #plugins {{{ -if empty(glob('~/.vim/autoload/plug.vim')) +if empty(glob('~/.vim/autoload/plug.vim'))"{{{ silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim autocmd VimEnter * PlugInstall --sync | source $MYVIMRC endif +"}}} + call plug#begin('~/.vim/bundle') -"css3-syntax +" #css3-syntax{{{ Plug 'hail2u/vim-css3-syntax' +"}}} -"scss-syntax +" #scss-syntax{{{ Plug 'cakebaker/scss-syntax.vim' +"}}} -"tagbar -Plug 'majutsushi/tagbar' - -"vim-surround -Plug 'tpope/vim-surround' - -"undotree -Plug 'mbbill/undotree' - -" Ctrlp -Plug 'ctrlpvim/ctrlp.vim' -" -" Obsession -Plug 'tpope/vim-obsession' - -" vim-css-color -" Plug 'ap/vim-css-color' -" vim-javascript -Plug 'pangloss/vim-javascript' - -" ultisnips -" https://github.com/sirver/UltiSnips -Plug 'SirVer/ultisnips' -" and some snippets -" https://github.com/honza/vim-snippets -" Plug 'honza/vim-snippets' - -" ALE -" https://github.com/w0rp/ale -Plug 'w0rp/ale' - -" MatchTag -" https://github.com/gregsexton/MatchTag -" DISABLED DUE TO KNOWN ISSUE - https://github.com/gregsexton/MatchTag/issues/40 -" Plug 'gregsexton/MatchTag' - -" phpcomplete.vim -" https://github.com/shawncplus/phpcomplete.vim -Plug 'shawncplus/phpcomplete.vim' -" https://github.com/dsawardekar/wordpress.vim -" For up to date Wordpress Files see: -" https://github.com/joseluis/wordpress.vim-generator - -"Plug 'dsawardekar/wordpress.vim' -" disabled - doesn't support universal ctags? - -" vim-vue +" #vim-vue {{{ " https://github.com/posva/vim-vue Plug 'posva/vim-vue' -" vim-commentary -" https://github.com/tpope/vim-commentary -Plug 'tpope/vim-commentary' - -" vim-repeat -" https://github.com/tpope/vim-repeat -Plug 'tpope/vim-repeat' - -" https://github.com/mattn/emmet-vim -Plug 'mattn/emmet-vim' - -" vimwiki -" https://github.com/vimwiki/vimwiki -Plug 'vimwiki/vimwiki' - -" gitgutter -" https://github.com/airblade/vim-gitgutter/blob/master/README.mkd -Plug 'airblade/vim-gitgutter' - -" vim-gutentags -" https://github.com/ludovicchabant/vim-gutentags -Plug 'ludovicchabant/vim-gutentags' - -" vim-qlist -" https://github.com/romainl/vim-qlist/ -" Plug 'romainl/vim-qlist' - -" fugitive-vim -" https://github.com/tpope/vim-fugitive/blob/master/README.markdown -Plug 'tpope/vim-fugitive' - -" vim-dispatch -" https://github.com/tpope/vim-dispatch -Plug 'tpope/vim-dispatch' - -" colorV -" original: -" https://github.com/gu-fan/colorv.vim -" Plug 'gu-fan/colorv.vim' -" custom fork: -" https://github.com/studio-vx/colorv.vim -Plug 'studio-vx/colorv.vim' - -" vim switch -"https://github.com/AndrewRadev/switch.vim -Plug 'AndrewRadev/switch.vim' - -" gitv -" https://github.com/gregsexton/gitv -Plug 'gregsexton/gitv' - -" wakarime -" https://wakatime.com/vim -Plug 'wakatime/vim-wakatime' - -" vim-easy-align -" https://github.com/junegunn/vim-easy-align -Plug 'junegunn/vim-easy-align' - -" vim-instant-markdown -" https://github.com/suan/vim-instant-markdown -" Plug 'suan/vim-instant-markdown' - -" asyncomplete.vim -" https://github.com/prabirshrestha/asyncomplete.vim -" Plug 'prabirshrestha/asyncomplete.vim' -" Plug 'yami-beta/asyncomplete-omni.vim' -" Plug 'prabirshrestha/asyncomplete-ultisnips.vim' -" Plug 'prabirshrestha/asyncomplete-file.vim' -" Plug 'prabirshrestha/asyncomplete-buffer.vim' -" Plug 'prabirshrestha/asyncomplete-tags.vim' -" Plug 'prabirshrestha/asyncomplete-lsp.vim' -" Plug 'Shougo/neco-vim' -" Plug 'prabirshrestha/asyncomplete-necovim.vim' - -" vim-lsp -" https://github.com/prabirshrestha/vim-lsp -Plug 'prabirshrestha/async.vim' -Plug 'prabirshrestha/vim-lsp' - -" inline_edit.vim -" https://github.com/AndrewRadev/inline_edit.vim -Plug 'AndrewRadev/inline_edit.vim' - -" Activity Watch -" https://github.com/ActivityWatch/aw-watcher-vim -Plug 'ActivityWatch/aw-watcher-vim' - -call plug#end() - -runtime macros/matchit.vim - -"}}} - -"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" - -" #plugin settings {{{ - -" inline_edit.vim{{{ -let g:inline_edit_patterns = [{ - \ 'main_filetype': '*html', - \ 'sub_filetype': 'scss', - \ 'indent_adjustment': 1, - \ 'start': '[^>]*lang=.scss[^>]*>', - \ 'end': '' - \ }] - -let g:inline_edit_autowrite = 1 -let g:inline_edit_proxy_type = 'tempfile' -let g:inline_edit_new_buffer_command ='tabedit' -let g:inline_edit_modify_statusline = 0 - -nnoremap ie :InlineEdit -"}}} - -" vim-lsp{{{ -let g:lsp_signs_enabled = 1 -let g:lsp_signs_error = {'text': '>>'} -let g:lsp_signs_warning = {'text': '>'} -let g:lsp_signs_information = {'text': '--'} -let g:lsp_signs_hint = {'text': '--'} -let g:lsp_diagnostics_echo_cursor = 1 -let g:lsp_diagnostics_echo_delay = 0 -nnoremap \l :LspDocumentDiagnostics -nnoremap \h :LspHover -nnoremap \d :LspDefinition -nnoremap \r :LspReferences -nnoremap \n :LspRename -nnoremap \s :LspDocumentSymbol -nnoremap \w :LspWorkspaceSymbol -nnoremap \ff :LspDocumentFormat -nnoremap \fr :LspDocumentRangeFormat -augroup User lsp_setup +" disable preprocessor checking for vue files - increases speed +let g:vue_disable_pre_processors=0 +" set custom syntax highlighting +augroup fixhighlighting autocmd! - if executable('vls') - autocmd User lsp_setup call lsp#register_server({ - \ 'name': 'vue', - \ 'cmd': {server_info->['vls']}, - \ 'whitelist': ['vue'], - \ }) - endif - - if executable('pyls') - autocmd User lsp_setup call lsp#register_server({ - \ 'name': 'pyls', - \ 'cmd': {server_info->['pyls']}, - \ 'whitelist': ['python'], - \ }) - endif - - if executable('typescript-language-server') - au User lsp_setup call lsp#register_server({ - \ 'name': 'typescript-language-server', - \ 'cmd': { server_info->[&shell, &shellcmdflag, 'typescript-language-server --stdio']}, - \ 'root_uri': { server_info->lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_directory(lsp#utils#get_buffer_path(), '.git/..'))}, - \ 'whitelist': ['typescript', 'javascript', 'javascript.jsx'] - \ }) - endif + autocmd BufNewFile,BufRead *.vue syntax sync fromstart augroup END + + " #vim-yaml + " https://github.com/stephpy/vim-yaml + Plug 'stephpy/vim-yaml' + + " #python-syntax + " https://github.com/vim-python/python-syntax + Plug 'vim-python/python-syntax' + let g:python_highlight_all = 1 + "}}} -" ALE {{{ -nnoremap ne :lnext -nnoremap pe :lprev +" #php.vim +" https://github.com/StanAngeloff/php.vim -let g:ale_sign_error = '>>' -let g:ale_sign_warning = '>' -let g:ale_sign_column_always = 1 -let g:ale_open_list = 0 +" #tagbar {{{ +Plug 'majutsushi/tagbar' -" let g:ale_linters = {'scss': ['stylelint'], 'javascript': ['eslint'], 'php':['php'], 'html':['htmlhint'], 'python': [], 'vue': []} -let g:ale_linters = {'scss': ['stylelint'], 'javascript': [], 'php':['php'], 'html':['htmlhint'], 'python': [], 'vue': []} -" let g:ale_linters_explicit = 1 -let g:ale_html_htmlhint_options = '-c ~/.htmlhintrc --format=unix' -let g:ale_fixers = {'javascript': ['eslint']} -"}}} +nnoremap tb :TagbarOpen fj +nnoremap ] :tag /[.#@]=expand('') +let g:tagbar_autoclose = 1 +" let g:tagbar_autopreview = 1 +" let g:tagbar_previewwin_pos = '' -" vim-easy-align {{{ +let g:tagbar_type_css = { +\ 'ctagstype' : 'css', +\ 'kinds' : [ +\ 'c:classes', +\ 'i:ids', +\ 't:tags', +\ 'm:medias' +\ ] +\} -xmap ga (EasyAlign) -nmap ga (EasyAlign) -"}}} +let g:tagbar_type_scss = { +\ 'ctagstype' : 'scss', +\ 'kinds' : [ +\ 'v:variables', +\ 'c:classes', +\ 'i:ids', +\ 't:tags', +\ 'd:medias', +\ 'm:mixins', +\ 'f:functions' +\ ] +\} -" switch.vim{{{ - -let g:switch_mapping = '-' -let g:switch_custom_definitions = [ - \ ['0', '1'], - \ ['ease-in', 'ease-out'], - \ ['auto', 'none'], - \ ['left', 'right'], - \ ['top', 'bottom'], - \ ['relative', 'absolute', 'fixed'] +let g:tagbar_type_vue = { +\ 'ctagstype' : 'vue', +\ 'kinds' : [ +\ 'o:objects', +\ 'f:functions', +\ 'a:array', +\ 's:string', +\ 'b:boolean', +\ 'n:number', +\ 'v:variable' \ ] +\ } "}}} -" gitgutter{{{ - -nmap ]h GitGutterNextHunk -nmap [h GitGutterPrevHunk -omap ih GitGutterTextObjectInnerPending -omap ah GitGutterTextObjectOuterPending -xmap ih GitGutterTextObjectInnerVisual -xmap ah GitGutterTextObjectOuterVisual +" #vim-surround{{{ +Plug 'tpope/vim-surround' "}}} -" ctrlp {{{ +" #undotree {{{ +Plug 'mbbill/undotree' + +"}}} + +" #Ctrlp {{{ +Plug 'ctrlpvim/ctrlp.vim' " :h ctrlp-commands " :h ctrlp-extensions @@ -288,32 +118,20 @@ if executable('ag') endif "}}} -"vim-wiki{{{ -let g:vimwiki_list = [{'path': '~/vimwiki/', 'path_html': '~/vimwiki_html/'}] +" #Obsession{{{ +Plug 'tpope/vim-obsession' "}}} -" emmet {{{ -let g:user_emmet_leader_key=',,' -let g:user_emmet_settings = { -\ 'indentation': ' ', -\ 'html': { -\ 'indentation': ' ', -\ } -\} +" vim-javascript{{{ +Plug 'pangloss/vim-javascript' "}}} -" vue-vim{{{ - -" disable preprocessor checking for vue files - increases speed -let g:vue_disable_pre_processors=0 -" set custom syntax highlighting -augroup fixhighlighting - autocmd! - autocmd BufNewFile,BufRead *.vue syntax sync fromstart -augroup END -"}}} - -" ultisnips{{{ +" #ultisnips {{{ +" https://github.com/sirver/UltiSnips +Plug 'SirVer/ultisnips' +" and some snippets +" https://github.com/honza/vim-snippets +" Plug 'honza/vim-snippets' nnoremap ul :call ListUltisnips() inoremap jkul :call ListUltisnips() @@ -361,70 +179,94 @@ set completefunc=CompleteSnippets "}}} -" Netrw{{{ +" #ALE {{{ +" https://github.com/w0rp/ale +Plug 'w0rp/ale' -let g:netrw_liststyle=3 -let g:netrw_list_hide='^\..*' -let g:netrw_preview = 0 +nnoremap ne :lnext +nnoremap pe :lprev + +let g:ale_sign_error = '>>' +let g:ale_sign_warning = '>' +let g:ale_sign_column_always = 1 +let g:ale_open_list = 0 + +" let g:ale_linters = {'scss': ['stylelint'], 'javascript': ['eslint'], 'php':['php'], 'html':['htmlhint'], 'python': [], 'vue': []} +let g:ale_linters = {'scss': ['stylelint'], 'javascript': [], 'php':['php'], 'html':['htmlhint'], 'python': [], 'vue': []} +" let g:ale_linters_explicit = 1 +let g:ale_html_htmlhint_options = '-c ~/.htmlhintrc --format=unix' +let g:ale_fixers = {'javascript': ['eslint']} "}}} -" undotree{{{ - -nnoremap ut :UndotreeToggle +" #MatchTagAlways{{{ +" https://github.com/Valloric/MatchTagAlways +Plug 'Valloric/MatchTagAlways' "}}} -" TagBar{{{ +" #phpcomplete.vim{{{ +" https://github.com/shawncplus/phpcomplete.vim +Plug 'shawncplus/phpcomplete.vim' +" https://github.com/dsawardekar/wordpress.vim +" For up to date Wordpress Files see: +" https://github.com/joseluis/wordpress.vim-generator +"}}} -nnoremap tb :TagbarOpen fj -nnoremap ] :tag /[.#@]=expand('') -let g:tagbar_autoclose = 1 -" let g:tagbar_autopreview = 1 -" let g:tagbar_previewwin_pos = '' +" #Plug 'dsawardekar/wordpress.vim' +" disabled - doesn't support universal ctags? -let g:tagbar_type_css = { -\ 'ctagstype' : 'css', -\ 'kinds' : [ -\ 'c:classes', -\ 'i:ids', -\ 't:tags', -\ 'm:medias' -\ ] +" #vim-commentary{{{ +" https://github.com/tpope/vim-commentary +Plug 'tpope/vim-commentary' +"}}} + +" #vim-repeat{{{ +" https://github.com/tpope/vim-repeat +Plug 'tpope/vim-repeat' +"}}} + +" #emmet-vim {{{ +" https://github.com/mattn/emmet-vim +Plug 'mattn/emmet-vim' +let g:user_emmet_leader_key=',,' +let g:user_emmet_settings = { +\ 'indentation': ' ', +\ 'html': { +\ 'indentation': ' ', +\ } \} - -let g:tagbar_type_scss = { -\ 'ctagstype' : 'scss', -\ 'kinds' : [ -\ 'v:variables', -\ 'c:classes', -\ 'i:ids', -\ 't:tags', -\ 'd:medias', -\ 'm:mixins', -\ 'f:functions' -\ ] -\} - -let g:tagbar_type_vue = { -\ 'ctagstype' : 'vue', -\ 'kinds' : [ -\ 'o:objects', -\ 'f:functions', -\ 'a:array', -\ 's:string', -\ 'b:boolean', -\ 'n:number', -\ 'v:variable' -\ ] -\ } "}}} -" gutentags{{{ +" #vimwiki {{{ +" https://github.com/vimwiki/vimwiki +Plug 'vimwiki/vimwiki' +let g:vimwiki_list = [{'path': '~/vimwiki/', 'path_html': '~/vimwiki_html/'}] +"}}} + +" #vim-gutentags {{{ +" https://github.com/ludovicchabant/vim-gutentags +Plug 'ludovicchabant/vim-gutentags' let g:gutentags_ctags_tagfile = '.tags' let g:gutentags_ctags_exclude = ['package.json', 'Session.vim', 'package-lock.json', 'TODO.txt'] "}}} -" colorV{{{ +" #vim-qlist +" https://github.com/romainl/vim-qlist/ +" Plug 'romainl/vim-qlist' + +" #vim-dispatch{{{ +" https://github.com/tpope/vim-dispatch +Plug 'tpope/vim-dispatch' +"}}} + +" #colorV {{{ +" original: +" https://github.com/gu-fan/colorv.vim +" Plug 'gu-fan/colorv.vim' +" custom fork: +" https://github.com/studio-vx/colorv.vim +Plug 'studio-vx/colorv.vim' + let g:ColorVForceGuiColors = 1 let g:colorv_no_global_map = 1 @@ -452,11 +294,147 @@ endfunction "}}} "}}} -" vim-instant-markdown{{{ -" this doesn't work - issue is open in guthub -let g:instant_markdown_open_to_the_world = 1 +" #switch {{{ +"https://github.com/AndrewRadev/switch.vim +Plug 'AndrewRadev/switch.vim' + +let g:switch_mapping = '-' +let g:switch_custom_definitions = [ + \ ['0', '1'], + \ ['ease-in', 'ease-out'], + \ ['auto', 'none'], + \ ['left', 'right'], + \ ['top', 'bottom'], + \ ['relative', 'absolute', 'fixed'] +\ ] "}}} +" #gitgutter {{{ +" https://github.com/airblade/vim-gitgutter/blob/master/README.mkd +Plug 'airblade/vim-gitgutter' + +nmap ]h GitGutterNextHunk +nmap [h GitGutterPrevHunk +omap ih GitGutterTextObjectInnerPending +omap ah GitGutterTextObjectOuterPending +xmap ih GitGutterTextObjectInnerVisual +xmap ah GitGutterTextObjectOuterVisual +"}}} + +" #fugitive-vim{{{ +" https://github.com/tpope/vim-fugitive/blob/master/README.markdown +Plug 'tpope/vim-fugitive' +"}}} + +" #vim-git{{{ +" https://github.com/tpope/vim-git +Plug 'tpope/vim-git' +"}}} + +" #gitv{{{ +" https://github.com/gregsexton/gitv +Plug 'gregsexton/gitv' +"}}} + +" #wakatime{{{ +" https://wakatime.com/vim +Plug 'wakatime/vim-wakatime' +"}}} + +" #vim-easy-align {{{ +" https://github.com/junegunn/vim-easy-align +Plug 'junegunn/vim-easy-align' + +xmap ga (EasyAlign) +nmap ga (EasyAlign) +"}}} + +" #vim-lsp {{{ +" https://github.com/prabirshrestha/vim-lsp +Plug 'prabirshrestha/async.vim' +Plug 'prabirshrestha/vim-lsp' + +let g:lsp_signs_enabled = 1 +let g:lsp_signs_error = {'text': '>>'} +let g:lsp_signs_warning = {'text': '>'} +let g:lsp_signs_information = {'text': '--'} +let g:lsp_signs_hint = {'text': '--'} +let g:lsp_diagnostics_echo_cursor = 1 +let g:lsp_diagnostics_echo_delay = 0 +nnoremap \l :LspDocumentDiagnostics +nnoremap \h :LspHover +nnoremap \d :LspDefinition +nnoremap \r :LspReferences +nnoremap \n :LspRename +nnoremap \s :LspDocumentSymbol +nnoremap \w :LspWorkspaceSymbol +nnoremap \ff :LspDocumentFormat +nnoremap \fr :LspDocumentRangeFormat +augroup User lsp_setup + autocmd! + if executable('vls') + autocmd User lsp_setup call lsp#register_server({ + \ 'name': 'vue', + \ 'cmd': {server_info->['vls']}, + \ 'whitelist': ['vue'], + \ }) + endif + + if executable('pyls') + autocmd User lsp_setup call lsp#register_server({ + \ 'name': 'pyls', + \ 'cmd': {server_info->['pyls']}, + \ 'whitelist': ['python'], + \ }) + endif + + if executable('typescript-language-server') + au User lsp_setup call lsp#register_server({ + \ 'name': 'typescript-language-server', + \ 'cmd': { server_info->[&shell, &shellcmdflag, 'typescript-language-server --stdio']}, + \ 'root_uri': { server_info->lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_directory(lsp#utils#get_buffer_path(), '.git/..'))}, + \ 'whitelist': ['typescript', 'javascript', 'javascript.jsx'] + \ }) + endif +augroup END +"}}} + +" #inline_edit.vim {{{ +" https://github.com/AndrewRadev/inline_edit.vim +Plug 'AndrewRadev/inline_edit.vim' + +let g:inline_edit_patterns = [{ + \ 'main_filetype': '*html', + \ 'sub_filetype': 'scss', + \ 'indent_adjustment': 1, + \ 'start': '[^>]*lang=.scss[^>]*>', + \ 'end': '' + \ }] + +let g:inline_edit_autowrite = 1 +let g:inline_edit_proxy_type = 'tempfile' +let g:inline_edit_new_buffer_command ='tabedit' +let g:inline_edit_modify_statusline = 0 + +nnoremap ie :InlineEdit +"}}} + +" Netrw {{{ + +let g:netrw_liststyle=3 +let g:netrw_list_hide='^\..*' +let g:netrw_preview = 0 +"}}} + +" #Activity Watch #aw-watcher-vim{{{ +" https://github.com/ActivityWatch/aw-watcher-vim +Plug 'ActivityWatch/aw-watcher-vim' +"}}} + +call plug#end() + +runtime macros/matchit.vim + "}}} """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" @@ -889,8 +867,6 @@ set tags+=./.tags,.tags;/home/ray/ set undodir=/home/ray/.vim/undodir set undofile -set clipboard=unnamedplus - set viewoptions-=options set ignorecase @@ -963,7 +939,11 @@ set laststatus=2 set shortmess=aoOT set cmdheight=3 -set foldmethod=manual +if &filetype ==? 'vim' + set foldmethod=marker +else + set foldmethod=manual +endif set showmode @@ -983,6 +963,8 @@ set foldtext=MyFoldText() " #mappings {{{ let g:mapleader = ' ' +nnoremap ut :UndotreeToggle + " miscallaneous {{{ nnoremap : :setlocal norelativenumber: nnoremap rc :so $MYVIMRC @@ -1546,4 +1528,4 @@ let g:pymode_syntax_slow_sync = 1 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" vim: foldmethod=marker +" vim: set foldmethod=marker: