syntax enable filetype plugin indent on colorscheme akr set encoding=utf-8 set showcmd set nocompatible set nocursorline set number set lazyredraw set ttyfast set mouse=a set t_Co=256 set shell=/bin/sh set sessionoptions-=options set directory=~/.vim/swap//,. set undofile set undodir=~/.vim/undo set wrap set tabstop=4 shiftwidth=4 set backspace=indent,eol,start set linebreak set hlsearch set incsearch set ignorecase set smartcase set wildchar= wildmenu wildmode=full let mapleader="," map s :let @/="" map c zz map d map h q: nmap :e# nmap f za nmap F zA " disable to override default on neovim set noautoread autocmd InsertEnter * :setlocal nohlsearch autocmd InsertLeave * :setlocal hlsearch autocmd FileType scheme setlocal shiftwidth=2 tabstop=2 expandtab autocmd FileType nix setlocal shiftwidth=2 tabstop=2 expandtab autocmd FileType lisp setlocal shiftwidth=2 tabstop=2 expandtab autocmd FileType racket setlocal shiftwidth=2 tabstop=2 expandtab autocmd FileType haskell setlocal shiftwidth=2 tabstop=4 softtabstop=2 shiftround expandtab autocmd FileType pandoc setlocal nonumber autoread autocmd FileType pandoc let g:airline#extensions#whitespace#checks=['indent', 'trailing', 'long'] autocmd BufNewFile,BufRead *.tikz setlocal syntax=tex nnoremap :bnext nnoremap :bprev " select previous line on file reload, useful when cycling file extensions autocmd BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | execute "normal! g`\" zz" | endif nnoremap :CounterpointNext nnoremap :CounterpointPrevious nnoremap gT nnoremap gt nnoremap @q nnoremap J } nnoremap K { nmap << nmap >> vmap >gv nmap [e nmap ]e vmap [egv vmap ]egv nnoremap h nnoremap l nnoremap k nnoremap j set laststatus=2 let g:airline_theme = 'akr' let g:airline#extensions#tabline#enabled = 1 let g:airline#extensions#tabline#show_buffers = 1 let g:airline#extensions#tabline#show_tab_type = 1 let g:airline#extensions#tabline#fnamemod = ':t' let g:airline#extensions#tabline#formatter = 'unique_tail_improved' let g:airline#extensions#tabline#buffer_idx_mode = 0 let g:airline#extensions#tabline#show_close_button = 0 let g:airline#extensions#tabline#show_splits = 0 let g:airline#extensions#tabline#show_tab_nr = 0 let g:airline#extensions#whitespace#mixed_indent_algo = 2 let g:gitgutter_enabled = 0 let g:gitgutter_highlight_lines = 1 let g:goyo_width = 90 let g:goyo_margin_top = 1 let g:goyo_margin_bottom = 0 nnoremap :MundoToggle nnoremap :GitGutterToggle nnoremap :SignatureToggleSigns nnoremap :Goyo nnoremap :GFiles nnoremap :Buffers nnoremap :Tags nnoremap :BTags let g:undotree_SetFocusWhenToggle = 1 let g:localvimrc_sandbox = 0 let g:localvimrc_persistent = 2 let g:wordmotion_prefix = '' nmap w let g:lsp_auto_enable = 0 " spinning up a language client only makes " sense if such a client is available if executable('cquery') let g:lsp_auto_enable = 1 autocmd User lsp_setup call lsp#register_server({ \ 'name': 'cquery', \ 'cmd': {server_info->['cquery']}, \ 'root_uri': {server_info->lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), 'compile_commands.json'))}, \ 'initialization_options': { 'cacheDirectory': '/tmp/cquery' }, \ 'whitelist': ['c', 'cpp', 'cc'], \ }) nnoremap gd :LspDefinition nnoremap gt :LspTypeDefinition nnoremap gi :LspImplementation nnoremap gr :LspReferences nnoremap :LspWorkspaceSymbol nnoremap :LspDocumentSymbol autocmd FileType cpp setlocal omnifunc=lsp#complete set completeopt=longest,menuone,preview " use enter to select completion item inoremap pumvisible() ? "\" : "\u\" " improve popup and selection behavior inoremap pumvisible() ? '' : \ '=pumvisible() ? "\Down>" : ""' inoremap pumvisible() ? '' : \ '=pumvisible() ? "\Down>" : ""' " trigger omnicompletion using (compared to for plain completion) inoremap " close documentation buffer after selecting a completion item autocmd CompleteDone * silent! pclose " close quickfix buffer after selection autocmd FileType qf nnoremap :cclose endif