Created
January 31, 2020 18:44
-
-
Save GordianDziwis/d79903355d576b9042e0e0c0569a6d8a to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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