Skip to content

Instantly share code, notes, and snippets.

@GordianDziwis
Created January 31, 2020 18:44
Show Gist options
  • Save GordianDziwis/d79903355d576b9042e0e0c0569a6d8a to your computer and use it in GitHub Desktop.
Save GordianDziwis/d79903355d576b9042e0e0c0569a6d8a to your computer and use it in GitHub Desktop.
set nocompatible
filetype off
call plug#begin('~/.vim/bundle')
" show git commit message
Plug 'rhysd/git-messenger.vim'
Plug 'tpope/vim-fugitive'
" get branch ahead/behind status
Plug 'lambdalisue/gina.vim'
" ranger integration
Plug 'francoiscabrol/ranger.vim'
" depends on
Plug 'rbgrouleff/bclose.vim'
" basic support for .env and Procfile
Plug 'tpope/vim-dotenv'
" provides semantic highlighting for Python
Plug 'numirias/semshi', {'do': ':UpdateRemotePlugins'}
Plug 'neoclide/coc.nvim', {'branch': 'release'}
Plug 'honza/vim-snippets'
" Like Tagbar but with lsp
Plug 'liuchengxu/vista.vim'
Plug 'dense-analysis/ale'
Plug 'tpope/vim-surround'
" depends on
Plug 'tpope/vim-repeat'
" Comment stuff out
Plug 'tpope/vim-commentary'
" Interface
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'
Plug 'chriskempson/base16-vim'
" Destroy all buffers that are not open in any tabs or windows.
Plug 'artnez/vim-wipeout'
" One filetype plugin to rule them all
Plug 'sheerun/vim-polyglot'
Plug 'lervag/vimtex'
Plug 'plasticboy/vim-markdown'
" depends on
Plug 'godlygeek/tabular'
" Paste image to md
Plug 'ferrine/md-img-paste.vim'
" Scala
Plug 'derekwyatt/vim-scala', { 'for': 'scala' }
Plug 'gre/play2vim', { 'for': 'scala' }
"documentation
Plug 'rhysd/devdocs.vim'
" Sys Ops
Plug 'powerman/vim-plugin-AnsiEsc'
" CSV
Plug 'mechatroner/rainbow_csv'
" PlantUML
Plug 'aklt/plantuml-syntax'
" sparql
Plug 'rvesse/vim-sparql'
Plug 'niklasl/vim-rdf'
" pom
Plug 'NLKNguyen/vim-maven-syntax'
" Godot
Plug 'clktmr/vim-gdscript3'
" wiki
Plug 'fcpg/vim-waikiki'
call plug#end()
" Enable syntax highlighting
syntax on
filetype plugin indent on
" Boilerplate Vim Stuff
" Better command-line completion
set lazyredraw
set wildmenu
set wildignorecase
" Wildmenu as a row
set wop-=pum
" Show partial commands in the last line of the screen
set noshowcmd
" Shows the effects of a command incrementally, as you type.
set inccommand=nosplit
" Highlight searches
set hlsearch
" Incremental search
set incsearch
" Set <leader> binding
let g:mapleader='\'
let g:maplocalleader=' '
" When searching try to be smart about cases
set smartcase
set ignorecase
" Do not wrap inside words
set linebreak
" Better visibility for wrapped lines
let &showbreak = ' ⮡ '
" Smart tabs
set smarttab
" Space instead of tab
set expandtab
set shiftwidth=2
set softtabstop=2
" No middle click
map <MiddleMouse> <Nop>
imap <MiddleMouse> <Nop>
" All swap files in one place
set directory=~/.vim_swap//
" no welcome
set shortmess+=OtTWIcFsa
" reduce the number of prompt messages
set report=9999
set winaltkeys=no
" Neovim
let $NVIM_TUI_ENABLE_CURSOR_SHAPE=1
" Performance
autocmd BufWinLeave * call clearmatches()
" If you need to define a block in visual block mode with bounds outside the actual text (that is, past the end of lines), you can allow this with:
set virtualedit=block
" New splits in the right place
" set splitbelow
set splitright
"Fast exit
map ZZ :wqa<cr>
" Persistent undo
set undofile " Save undo's after file closes
set undodir=~/.vim_undo// " where to save undo histories
" spellfile
set spellfile=$HOME/.dotfiles/.vim-spell-en.utf-8.add
" Autocomplete with dictionary words when spell check is on
set complete+=kspell
" Spell-check Git messages
autocmd FileType gitcommit setlocal spell
" _ will be treated as a word boundary
set iskeyword-=_
" Command line completion
set wildmode=longest:full,full
" No comment character with o and O
set formatoptions-=or
" Folding
set foldmethod=syntax
" titlestring
set title
auto SessionLoadPost * let &titlestring = "Neovim " . fnamemodify(v:this_session, ':t:r')
" Fuck command history
map q: :q
command! -bar -bang Q quit<bang>
command! -bar -bang Qa quit<bang>
" Mark too long lines
au BufWinEnter * if &filetype != "" | call matchadd('ColorColumn', '\%81v.', 100)
" If in Insert, Replace or Visual mode put a message on the last line.
set noshowmode
" Obsession
set fillchars=vert:│
" set fillchars+=vert:\
" terminal colors
autocmd TermOpen * :let w:airline_disabled = 1
autocmd TermClose * :let w:airline_disabled = 0
let g:terminal_scrollback_buffer_size = 10000
let g:terminal_color_0 = '#151515'
let g:terminal_color_1 = '#FF0086'
let g:terminal_color_2 = '#00C918'
let g:terminal_color_3 = '#ABA800'
let g:terminal_color_4 = '#3777E6'
let g:terminal_color_5 = '#AD00A1'
let g:terminal_color_6 = '#1faaaa'
let g:terminal_color_7 = '#D0D0D0'
let g:terminal_color_8 = '#505050'
let g:terminal_color_9 = '#FF0086'
let g:terminal_color_10 = '#00C918'
let g:terminal_color_11 = '#ABA800'
let g:terminal_color_12 = '#3777E6'
let g:terminal_color_13 = '#AD00A1'
let g:terminal_color_14 = '#1faaaa'
let g:terminal_color_15 = '#FFFFFF'
" Show next 3 lines while scrolling.
if !&scrolloff
set scrolloff=3
endif
" Show next 5 columns while side-scrolling.
if !&sidescrolloff
endif
" Less messages
set report=99999
set guioptions-=T
set guioptions-=m
set guioptions-=r
set guioptions-=L
set guioptions-=e
set numberwidth=2
" Yank and paste to system clipboard
set clipboard=unnamed,unnamedplus
" Dont replace register when pasting
xnoremap <silent> p p:let @+=@0<cr>:let @"=@0<cr>
" Time for stuff
set updatetime=250
" Reload files changed on system
set autoread
au FocusGained,BufEnter,FileChangedShell,WinEnter * checktime
" autocmd CursorHold * if expand('%') !=# '[Command Line]' | checktime | endif
" Sessions
let g:session_dir = '~/.vim/sessions/'
" No FUCKING swap files
set noswapfile
"set tw=80
set ttyfast
set mouse=a
set mousefocus
" Fast movement between windows
nmap <silent> <C-h> :wincmd h<cr>
nmap <silent> <C-j> :wincmd j<cr>
nmap <silent> <C-k> :wincmd k<cr>
nmap <silent> <C-l> :wincmd l<cr>
tnoremap <silent> <C-h> <C-\><C-n><C-w>h
tnoremap <silent> <C-j> <C-\><C-n><C-w>j
tnoremap <silent> <C-k> <C-\><C-n><C-w>k
tnoremap <silent> <C-l> <C-\><C-n><C-w>l
" Fast movement of windows
nmap <silent> <C-w>h :wincmd H<cr>
nmap <silent> <C-w>j :wincmd J<cr>
nmap <silent> <C-w>k :wincmd K<cr>
nmap <silent> <C-w>l :wincmd L<cr>
" colorscheme stuff
" let base16colorspace=256 " Access colors present in 256 colorspace
set termguicolors
set background=dark
function! s:base16_customize() abort
call Base16hi("ColorColumn", "", g:base16_gui01, "", g:base16_cterm01, "", "")
call Base16hi("CursorLine", "", g:base16_gui02, "", g:base16_cterm02, "", "")
call Base16hi("Pmenu", "", g:base16_gui02, "", g:base16_cterm02, "", "")
call Base16hi("FoldColumn", "", g:base16_gui01, "", g:base16_cterm00, "", "")
call Base16hi("Folded", "", g:base16_gui01, "", g:base16_cterm00, "", "")
call Base16hi("SignColumn", "", g:base16_gui00, "", g:base16_cterm00, "", "")
call Base16hi("VertSplit", g:base16_gui01, g:base16_gui00, g:base16_cterm00, g:base16_cterm00, "", "")
call Base16hi("DiffAdd", g:base16_gui00, g:base16_gui0B, "", g:base16_cterm00, "", "")
call Base16hi("DiffDelete", g:base16_gui08, g:base16_gui08, "", g:base16_cterm00, "", "")
call Base16hi("DiffChange", g:base16_gui00, g:base16_gui04, "", g:base16_cterm00, "", "")
call Base16hi("DiffText", g:base16_gui0D, g:base16_gui04, "", g:base16_cterm00, "", "")
call Base16hi("CocDiffAdd", g:base16_gui0B, g:base16_gui00, "", g:base16_cterm00, "", "")
call Base16hi("CocDiffDelete", g:base16_gui08, g:base16_gui00, "", g:base16_cterm00, "", "")
call Base16hi("CocDiffChange", g:base16_gui04, g:base16_gui00, "", g:base16_cterm00, "", "")
call Base16hi("LineNr", "", g:base16_gui00, "", g:base16_cterm00, "", "")
call Base16hi("Cursor", "", "", "", "", "inverse", "")
call Base16hi("htmlBold", g:base16_gui05, "", g:base16_cterm05, "", "bold", "")
call Base16hi("htmlItalic", g:base16_gui05, "", g:base16_cterm05, "", "italic", "")
call Base16hi("Italic", "", "", "", "", "italic", "")
call Base16hi("Comment", "", "", "", "", "italic", "")
call Base16hi("StatusLineNC", "", g:base16_gui01, "", g:base16_cterm01, "", "")
call Base16hi("StatusLine", "", g:base16_gui01, "", g:base16_cterm01, "", "")
endfunction
augroup on_change_colorschema
autocmd!
autocmd ColorScheme * call s:base16_customize()
augroup END
colorscheme base16-summerfruit-dark
let g:airline_theme='base16_summerfruit'
highlight EndOfBuffer guifg=bg
" set guifont=Cousine\ for\ Powerline\ Regular\ 10
" Return to last edit position when opening files (You want this!)
autocmd BufReadPost *
\ if line("'\"") > 0 && line("'\"") <= line("$") |
\ exe "normal! g`\"" |
\ endif
" Pressing ,ss will toggle and untoggle spell checking
map <leader>ss :setlocal spell!<cr>
" Configure backspace so it acts as it should act
set backspace=eol,start,indent
" Preview window scrolls code
set splitbelow
let g:python_host_prog = '/home/XXX/.virtualenvs/neovim/bin/python'
let g:python3_host_prog = '/home/XXX/.virtualenvs/neovim3/bin/python3'
" yaml
augroup yaml
autocmd!
autocmd FileType yaml setlocal shiftwidth=2
autocmd FileType yaml setlocal tabstop=2
augroup END
" Ruby
au FileType ruby setl sw=2 sts=2 et
" Airline
let g:airline#extensions#ale#enabled = 1
let airline#extensions#ale#error_symbol = ''
let airline#extensions#ale#warning_symbol = ''
let airline#extensions#ale#show_line_numbers = 0
let airline#extensions#ale#open_lnum_symbol = '(L'
let airline#extensions#ale#close_lnum_symbol = ')'
let g:airline#extensions#disable_rtp_load = 1
let g:airline#extensions#branch#enabled = 1
let g:airline#extensions#vista#enabled = 1
let g:airline#extensions#csv#enabled = 1
let g:airline#extensions#fugitiveline#enabled = 1
let g:airline#extensions#hunks#enabled = 1
let g:airline#extensions#wordcount#enabled = 0
let g:airline#extensions#hunks#non_zero_only = 1
let g:airline#extensions#coc#enabled = 0
let g:airline#extensions#neomake#enabled = 1
let g:airline#extensions#quickfix#enabled = 1
let g:airline#extensions#syntastic#enabled = 0
let g:airline#extensions#vimagit#enabled = 1
set laststatus=0
let g:airline_exclude_preview=0
let g:airline_highlighting_cache = 1
let g:airline_powerline_fonts=1
let g:airline_section_z = '%l/%L:%c'
let g:airline_section_y = ''
let g:airline_inactive_collapse=1
let g:airline_skip_empty_sections = 1
let g:airline_right_sep=''
let g:airline_left_sep=''
let g:airline_right_alt_sep = '|'
let g:airline_left_alt_sep = '|'
let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#tabline#show_tabs = 1
let g:airline#extensions#tabline#show_splits = 0
let g:airline#extensions#tabline#show_close_button = 0
let g:airline#extensions#tabline#show_tab_nr = 0
let g:airline#extensions#tabline#fnamecollapse = 0
let g:airline#extensions#tabline#show_buffers = 0
let g:airline#extensions#tabline#show_tab_type = 0
let g:airline#extensions#tabline#tab_min_count = 2
let g:airline#extensions#tabline#fnamemod = ':t'
" let g:airline#extensions#tabline#buffer_min_count = 100
let g:airline#extensions#tabline#formatter = 'default'
let airline#extensions#tabline#disable_refresh = 0
let airline#extensions#tabline#middle_click_preserves_windows = 1
let g:airline#extensions#tabline#exclude_preview = 1
let g:airline#extensions#tabline#buffer_idx_mode = 0
let g:airline#extensions#tabline#show_tab_count = 0
" nmap <leader>1 <Plug>AirlineSelectTab1
" nmap <leader>2 <Plug>AirlineSelectTab2
" nmap <leader>3 <Plug>AirlineSelectTab3
" nmap <leader>4 <Plug>AirlineSelectTab4
" nmap <leader>5 <Plug>AirlineSelectTab5
" nmap <leader>6 <Plug>AirlineSelectTab6
" nmap <leader>7 <Plug>AirlineSelectTab7
" nmap <leader>8 <Plug>AirlineSelectTab8
" nmap <leader>9 <Plug>AirlineSelectTab9
" nmap <leader>- <Plug>AirlineSelectPrevTab
" nmap <leader>+ <Plug>AirlineSelectNextTab
let g:airline#extensions#tabline#left_sep = ''
let g:airline#extensions#tabline#left_alt_sep = ''
let g:airline#extensions#tabline#right_sep = ''
let g:airline#extensions#tabline#right_alt_sep = ''
" integrate with coc and gina
function! Get_git_traffic() abort
let string = ""
let ahead = gina#component#traffic#ahead()
let behind = gina#component#traffic#behind()
if ahead != 0
let string = " 🠅" . ahead
endif
if behind != 0
let string = string . " 🠇" . behind
endif
return string
endfunction
let g:airline_section_b = "%{trim(airline#util#wrap(get(b:,'coc_git_status',''),80) . airline#util#wrap(airline#extensions#branch#get_head(),80)) . Get_git_traffic()}"
" Hide sections on the right for inactive window, same as we do for the left sections
function! PatchInactiveStatusLine(...)
call setwinvar(a:2.winnr, 'airline_section_x', '')
call setwinvar(a:2.winnr, 'airline_section_z', '')
call setwinvar(a:2.winnr, 'airline_section_y', '')
endfunction
call airline#add_inactive_statusline_func('PatchInactiveStatusLine')
" let g:airline_section_error = '%{airline#util#wrap(airline#extensions#coc#get_error(),0)}'
" let g:airline_section_warning = '%{airline#util#wrap(airline#extensions#coc#get_warning(),0)}'
" let airline#extensions#coc#error_symbol = ''
" let airline#extensions#coc#warning_symbol = ''
let g:airline#extensions#whitespace#checks =
\ [ 'mixed-indent-file', 'conflicts' ]
if !exists('g:airline_symbols')
let g:airline_symbols = {}
endif
let g:airline_symbols.crypt = '🔒'
let g:airline_symbols.branch = ''
let g:airline_symbols.notexists = 'Ɇ'
let g:airline_symbols.dirty='*'
" fix deletion buffer ariline tabline
autocmd BufDelete * call airline#extensions#tabline#buflist#invalidate()
let g:airline#extensions#default#section_truncate_width = {
\ 'b': 71,
\ 'x': 71,
\ 'z': 45,
\ }
" Java
augroup java
autocmd!
autocmd FileType java setlocal shiftwidth=4
autocmd FileType java setlocal tabstop=4
augroup END
" Vim-tex and ocular
let g:vimtex_compiler_latexmk = {
\ 'build_dir' : './output/',
\}
let g:vimtex_quickfix_mode=0
let g:vimtex_compiler_progname='nvr'
let g:vimtex_view_general_viewer = 'zathura'
let g:vimtex_view_method = 'zathura'
let g:vimtex_viewer_general = 'zathura'
" Correct recognition of tex files
let g:tex_flavor = 'latex'
" Markdown
augroup filetype_markdown
autocmd!
autocmd FileType markdown setl concealcursor=nvic
autocmd FileType markdown setl conceallevel=3
autocmd FileType markdown setl shiftwidth=2
autocmd FileType markdown setl tabstop=2
autocmd FileType markdown setl spell
augroup END
let g:vim_markdown_follow_anchor = 1
let g:vim_markdown_new_list_item_indent = 0
let g:vim_markdown_conceal = 3
let g:vim_markdown_folding_disabled = 0
let g:vim_markdown_conceal_code_blocks = 0
let g:vim_markdown_no_extensions_in_markdown = 1
let g:vim_markdown_fenced_languages = ['sparql=sparql',
\ 'gdscript=gdscript',
\ 'html=html',
\ 'json=json',
\ 'sh=sh',
\ 'todo=todo',
\ 'help=help']
set conceallevel=2
" Markdown preview
map <silent><localleader>p :silent! !firefox % &> /dev/null<cr>
" Fix for wrong detection of js as jsx files https://github.com/sheerun/vim-polyglot/issues/162
let g:jsx_ext_required = 1
" Pandoc-syntax
let g:pandoc#syntax#codeblocks#embeds#langs = ["scala", "play2-routes"]
" tags
set tags+=.tags;/
" Pandoc
let g:pandoc#filetypes#pandoc_markdown=0
let g:pandoc#formatting#mode = "ah"
let g:pandoc#spell#default_langs = ["de_20"]
let g:pandoc#keyboard#sections#header_style = "a"
let g:pandoc#formatting#smart_autoformat_on_cursormoved=0
" let g:pandoc#modules#disabled = ["folding", "indent", "chdir"]
let g:pandoc#formatting#extra_equalprg = "--atx-headers"
" let g:pandoc#folding#fdc = 0
let g:pandoc#formatting#equalprg = "pandoc --atx-headers -t markdown+table_captions+backtick_code_blocks+tex_math_dollars+pipe_tables-simple_tables+fenced_code_attributes+inline_notes --wrap=auto --columns=79"
autocmd BufRead,BufNewFile ~/Studium/Thesis/doeet/source/*.md set filetype=pandoc
" Ranger
let g:ranger_map_keys = 0
let g:ranger_replace_netrw = 1
autocmd TermOpen * setlocal statusline=Ranger
nmap <silent>_ :RangerWorkingDirectory<cr>
nmap <silent>- :Ranger<cr>
" vim-plug
function! s:SafeUpdate()
execute 'PlugSnapshot ~/.vim/snapshot/' . localtime() . '_snapshot.vim'
PlugUpdate
endfunction
command! SafeUpdate :call s:SafeUpdate()<cr>
" Ployglot
let g:polyglot_disabled = ['latex', 'markdown']
" Godot
let g:ale_gdscript3_godotserver_executable = '~/.bin/Godot_v3.1.1-stable_linux_headless.64'
augroup filetype_gdscript
autocmd!
" autocmd FileType gdscript set tags=~/cloud/projects/slingshot/godot-ide-helper/tags
autocmd FileType gdscript3 set noexpandtab
autocmd FileType gdscript3 set shiftwidth=4
autocmd FileType gdscript3 set tabstop=4
augroup END
" XSLT
augroup filetype_xslt
autocmd!
autocmd FileType xslt set shiftwidth=4
autocmd FileType xslt set tabstop=4
autocmd FileType xslt let g:formatdef_xslt = '"tidy -q -xml --indent-attributes 1 --show-errors 0 --show-warnings 0 --force-output --indent auto --indent-spaces ".shiftwidth()." --vertical-space yes --tidy-mark no -wrap ".&textwidth'
autocmd FileType xslt let g:formatters_xslt = ['xslt']
augroup END
" Json
augroup filetype_json
autocmd!
autocmd FileType json let g:vim_json_warnings=0
autocmd FileType json syntax match Comment +\/\/.\+$+
augroup END
" Html
augroup filetype_html
autocmd!
autocmd FileType html setl shiftwidth=4
autocmd FileType html set tabstop=4
augroup END
" " Scala
" au BufRead,BufNewFile *.sbt set filetype=scala
" vim-auto-save
set autowriteall
autocmd TextChanged,InsertLeave * silent! wa
" au FocusLost * silent! wa
" au InsertLeave * silent! wa
" XML
augroup filetype_xml
autocmd!
autocmd FileType xml set shiftwidth=4
autocmd FileType xml set tabstop=4
augroup END
" SPARQL
augroup filetype_sparql
autocmd!
autocmd FileType sparql setl filetype=sparql
autocmd FileType sparql setl commentstring=#\ %s
augroup END
" Don't save hidden and unloaded buffers in sessions.
" set sessionoptions-=buffers
set sessionoptions-=help
" CPP
augroup filetype_cpp
autocmd!
autocmd FileType cpp setl shiftwidth=4
autocmd FileType cpp setl tabstop=4
augroup END
" latex
augroup filetype_tex
autocmd!
autocmd FileType tex setl shiftwidth=2
autocmd FileType tex setl tabstop=2
augroup END
" fugitive
au FileType git setl foldlevel=0
au FileType git setl foldenable
set nofoldenable
" waikiki
let g:waikiki_noauto=0
let g:waikiki_default_maps=0
let g:waikiki_wiki_roots = ['~/cloud/wiki/']
let g:waikiki_conceal_markdown_url = 0
let g:waikiki_space_replacement = ""
map <silent><localleader>ww :edit ~/cloud/wiki/index.md<cr>:cd %:p:h<cr>:pwd<cr>
function! WaikikiSetupBuffer() abort
map <buffer><cr> <Plug>(waikikiFollowLink)
map <buffer><C-]> <Plug>(waikikiFollowLink)
map <buffer><localleader>ws <Plug>(waikikiFollowLinkSplit)
map <buffer><localleader>wv <Plug>(waikikiFollowLinkVSplit)
endfun
augroup Waikiki
au!
autocmd User setup call WaikikiSetupBuffer()
augroup END
" semshi
let g:semshi#error_sign = v:false
let g:semshi#excluded_hl_groups = ['unresolved', 'local']
" coc
" Some servers have issues with backup files, see #649
set nobackup
set nowritebackup
set hidden
" use <tab> for trigger completion and navigate to next complete item
function! s:check_back_space() abort
let col = col('.') - 1
return !col || getline('.')[col - 1] =~ '\s'
endfunction
inoremap <silent><expr> <TAB>
\ pumvisible() ? "\<C-n>" :
\ <SID>check_back_space() ? "\<TAB>" :
\ coc#refresh()
inoremap <silent><expr> <S-TAB>
\ pumvisible() ? "\<C-p>" :
\ <SID>check_back_space() ? "\<s-tab>" :
\ coc#refresh()
" Close preview window when completion is done.
autocmd! CompleteDone * if pumvisible() == 0 | pclose | endif
inoremap <expr><silent><cr> coc#expandableOrJumpable() ?
\ "\<C-r>=coc#rpc#request('doKeymap', ['snippets-expand-jump',''])\<cr>" :
\ "\<cr>"
" search
nmap <silent><localleader>/d :CocList locationlist<cr>
nmap <silent><localleader>/f :CocList files<cr>
nmap <silent><localleader>/s :CocList --interactive symbols<cr>
nmap <silent><localleader>/S :CocList outline<cr>
nmap <silent><localleader>/ :CocList --interactive grep -S<cr>
" actions
nmap <silent><localleader>a <Plug>(coc-codeaction)
nmap <silent><localleader>A <Plug>(coc-codeaction-selected)
vmap <silent><localleader>A <Plug>(coc-codeaction-selected)
nmap <silent><localleader>l <Plug>(coc-codelens-action)
nmap <silent><localleader>q :CocFix<cr>
nmap <silent><localleader>n :call CocActionAsync('rename')<cr>
vmap <silent><localleader>F <Plug>(coc-format-selected)
nmap <silent><localleader>F <Plug>(coc-format-selected)
nmap <expr><localleader>f CocHasProvider("format") ? '<Plug>(coc-format)' : ':ALEFix<cr>'
" goto
nmap <silent><localleader>d <Plug>(coc-definition)
nmap <silent><localleader>D <Plug>(coc-declaration)
nmap <silent><localleader>i <Plug>(coc-implementation)
nmap <silent><localleader>r <Plug>(coc-references)
nmap <silent><localleader>t <Plug>(coc-type-definition)
" show
nmap <silent><localleader>h :call CocActionAsync('doHover')<cr>
nmap <silent><localleader>u :call CocActionAsync('highlight')<cr>
" global
nmap <silent><localleader>cc :CocList commands<cr>
nmap <silent><localleader>cl :CocList<cr>
nmap <silent><localleader>vc :CocList vimcommands<cr>
nmap <silent><localleader>vh :CocList --auto-preview helptags<cr>
nmap <silent><localleader>vm :CocList maps<cr>
nmap <silent><TAB> :CocList buffers<cr>
nmap <silent><localleader>s :CocList sessions<cr>
nmap <silent><localleader>S :call CocAction('runCommand', 'session.save')<cr>
highlight default link CocErrorSign CocDiffDelete
" highlight CocWarningSign ctermfg=9 ctermbg=10 guifg=#FD8900 guibg=#202020
highlight CocInfoSign ctermfg=12 ctermbg=10 guifg=#3777E6 guibg=#202020
highlight CocHintSign ctermfg=14 ctermbg=10 guifg=#1FAAAA guibg=#202020
highlight CocErrorHighlight cterm=underline ctermbg=1 gui=underline guisp=#FF0086
highlight CocWarningHighlight cterm=underline ctermbg=9 gui=underline guisp=#FD8900
highlight CocInfoHighlight cterm=undercurl ctermbg=12 gui=underline guisp=#3777E6
highlight CocHintHighlight cterm=undercurl ctermbg=14 gui=underline guisp=#1FAAAA
highlight CocHighlightRead ctermbg=2 ctermfg=10 guibg=#00C918 guifg=#202020
highlight CocHighlightText ctermbg=198 ctermfg=198 guibg=#ABA800 guifg=#202020
highlight CocHighlightWrite ctermbg=1 ctermfg=10 guibg=#FF0086 guifg=#202020
augroup cocgroup
autocmd!
" Setup formatexpr specified filetype(s).
autocmd FileType typescript,json setl formatexpr=CocAction('formatSelected')
" Update signature help on jump placeholder
autocmd User CocJumpPlaceholder call CocActionAsync('showSignatureHelp')
augroup end
" coc-git
nmap <silent><localleader>gh :CocCommand git.browserOpen<cr>
nmap <silent><localleader>gi <Plug>(coc-git-chunkinfo)
nmap <silent><localleader>gu :CocCommand git.chunkUndo<cr>
nmap <silent><localleader>gs :CocCommand git.chunkStage<cr>
nmap <silent><localleader>gB :Gblame<cr>
nmap <silent><localleader>gb :CocList --normal branches<cr>
nmap <silent><localleader>G :CocList --normal commits<cr>
nmap <silent><localleader>g :CocList --normal bcommits<cr>
nmap <silent><localleader>gd :Gdiff<cr>
nmap <silent><localleader>gs :Gstatus<cr>
" create text object for git chunks
omap ic <Plug>(coc-text-object-inner)
xmap ic <Plug>(coc-text-object-inner)
omap ic <Plug>(coc-text-object-outer)
xmap ic <Plug>(coc-text-object-outer)
" navigate chunks of current buffer
nmap [g <Plug>(coc-git-prevchunk)
nmap ]g <Plug>(coc-git-nextchunk)
"git-messenger
nmap <silent><localleader>gm <Plug>(git-messenger)
" ale
let g:ale_disable_lsp = 1
let g:ale_echo_cursor = 0
let g:ale_virtualtext_cursor = 0
let g:ale_echo_cursor = 1
let g:ale_sign_error = 'X'
let g:ale_sign_warning = '!'
let g:ale_sign_info = 'i'
let g:ale_sign_priority = 2000
let g:ale_fix_on_save = 0
let g:ale_warn_about_trailing_blank_lines = 0
let g:ale_warn_about_trailing_whitespace = 0
highlight link ALEErrorSign CocErrorSign
highlight link ALEError CocErrorHighlight
highlight link ALEVirtualTextError ALEErrorSign
highlight link ALEWarningSign CocWarningSign
highlight link ALEWarning CocWarningHighlight
highlight link ALEVirtualTextWarning ALEWarningSign
highlight link ALEInfoSign CocInfoSign
highlight link ALEInfo CocInfoHighlight
highlight link ALEVirtualTextInfo AleInfoSign
nmap <silent>]d <Plug>(ale_next_wrap)
nmap <silent>[d <Plug>(ale_previous_wrap)
let g:ale_fixers = {
\ '*': ['remove_trailing_lines', 'trim_whitespace'],
\ 'yaml': ['prettier'],
\ 'json': ['prettier'],
\ 'xml': ['xmllint'],
\ 'markdown': ['prettier'],
\ 'tex': ['latexindent', 'textlint'],
\}
let g:ale_xml_xmllint_indentsize=4
nnoremap <silent><localleader>cp :pc<cr>
" Clear highlights
nnoremap <silent><localleader>ch :nohl<cr>
" bufonly
nnoremap <silent><localleader>cb :Wipeout<cr>
"close tab
nmap <localleader>ct :tabclose<cr>
" Set current directory
nnoremap <localleader>cd :cd %:p:h<cr>:pwd<cr>
" devdocs
let g:devdocs_filetype_map = {
\ 'c': 'c',
\ 'cpp': 'cpp',
\ 'clojure': 'clojure',
\ 'css': 'css',
\ 'go': 'go',
\ 'gdscript3': 'godot',
\ 'haskell': 'haskell',
\ 'java': 'java',
\ 'rust': 'rust',
\ 'php': 'php',
\ 'python': 'python',
\ 'scala': 'scala',
\ 'sbt.scala': 'scala',
\ 'yaml': 'docker',
\ }
nmap <localleader>H <Plug>(devdocs-under-cursor)
" vista
nmap <silent><localleader>o :Vista!!<cr>
" How each level is indented and what to prepend.
" This could make the display more compact or more spacious.
" e.g., more compact: ["▸ ", ""]
" let g:vista_icon_indent = ["▸ ", ""]
" Executive used when opening vista sidebar without specifying it.
" See all the avaliable executives via `:echo g:vista#executives`.
let g:vista_executive_for = {
\ 'java': 'coc',
\ 'scala': 'coc',
\ 'markdown': 'toc'
\ }
let g:vista_stay_on_open = 0
let g:vista_echo_cursor_strategy = 'floating_win'
let g:vista_blink = [0, 0]
au FileType list setl nonumber
" turtle
autocmd FileType sparql setl commentstring=#\ %s
" md-img-paste
autocmd FileType markdown nmap <silent> <leader>p :call mdip#MarkdownClipboardImage()<cr>
" Trello
nmap <silent><leader>so :silent .w !xargs -d '\n' trello add-card -b "Orga" -l "Inbox"<cr>
nmap <silent><leader>sw :silent .w !xargs -d '\n' trello add-card -b "InfAI" -l "Inbox"<cr>
" .w !/usr/bin/todo -
cd ~/cloud/
function! SynStack ()
for i1 in synstack(line("."), col("."))
let i2 = synIDtrans(i1)
let n1 = synIDattr(i1, "name")
let n2 = synIDattr(i2, "name")
echo n1 "->" n2
endfor
endfunction
map gm :call SynStack()<CR>
" let $NVIM_COC_LOG_LEVEL = 'debug'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment