" ########## General ########## {{{ syntax on colorscheme elflord let g:airline_theme='atomic' set encoding=utf-8 set fileencoding=utf-8 set wildmenu set autoindent set smartindent set incsearch set hlsearch set smarttab set ignorecase set smartcase set number relativenumber set so=7 set tabstop=4 shiftwidth=4 set expandtab let mapleader = "," let maplocalleader = "\\" " }}} " ########## Highlighting ########## {{{ highlight ExtraWhitespace ctermbg=red guibg=red match ExtraWhitespace /\s\+$/ augroup trailingwhitespace autocmd! autocmd Syntax * syn match ExtraWhitespace /\s\+$\| \+\ze\t/ augroup END " Tabs set list set listchars=tab:\|\ , " }}} " ########## Keybinds ########## {{{ nnoremap ev :vsplit $MYVIMRC nnoremap sv :source $MYVIMRC nnoremap f :FZF nnoremap gs :Gstatus nnoremap gc :Gcommit nnoremap gr :Git rebase -i noremap c :w! \| !compiler % noremap p :!opout % nnoremap u :!ctags -R . nnoremap :set nohlsearch " Local (scope) replace nnoremap gr gd[{V%::s////gc " Global replace nnoremap gR gD:%s////gc nnoremap Y y$ nnoremap H ^ nnoremap L $ vnoremap H ^ vnoremap L $ inoremap jk inoremap inoremap inoremap inoremap inoremap " Dragvisuals keybinds vmap DVB_Drag('left') vmap DVB_Drag('right') vmap DVB_Drag('down') vmap DVB_Drag('up') vmap D DVB_Duplicate() " Remove any introduced trailing whitespace after moving... let g:DVB_TrimWS = 1 " }}} " ########## Abbreviations ########## {{{ iabbrev ret return iabbrev @@ frans@tankernn.eu iabbrev ssig -- Frans Bergmanfrans@tankernn.eu " }}} " ########## File-specific settings ########## {{{ autocmd FileType gitcommit,groff :set spell autocmd FileType vim :set foldmethod=marker autocmd BufNewFile,BufRead *.ms,*.me,*.mom,*.man set filetype=groff " }}} " ########## Plugins ########## {{{ call plug#begin() Plug 'tpope/vim-fugitive' Plug 'bling/vim-airline' Plug 'vim-airline/vim-airline-themes' Plug 'mkitt/tabline.vim' Plug 'tpope/vim-surround' Plug 'tpope/vim-repeat' Plug 'raimondi/delimitmate' Plug 'neomake/neomake' Plug 'fisadev/dragvisuals.vim' Plug 'maralla/completor.vim' Plug 'junegunn/fzf' call plug#end() " }}} " ########## Plugin Settings ########## {{{ autocmd FileType java setlocal omnifunc=javacomplete#Complete call neomake#configure#automake('nrwi', 500) let g:completor_racer_binary = '~/.cargo/bin/racer' " Use TAB to complete when typing words, else inserts TABs as usual. Uses " dictionary, source files, and completor to find matching words to complete. " Note: usual completion is on but more trouble to press all the time. " Never type the same word twice and maybe learn a new spellings! " Use the Linux dictionary when spelling is in doubt. function! Tab_Or_Complete() abort " If completor is already open the `tab` cycles through suggested completions. if pumvisible() return "\" " If completor is not open and we are in the middle of typing a word then " `tab` opens completor menu. elseif col('.')>1 && strpart( getline('.'), col('.')-2, 3 ) =~ '^[[:keyword:][:ident:]]' return "\=completor#do('complete')\" else " If we aren't typing a word and we press `tab` simply do the normal `tab` " action. return "\" endif endfunction " Use `tab` key to select completions. Default is arrow keys. inoremap pumvisible() ? "\" : "\" inoremap pumvisible() ? "\" : "\" " Use tab to trigger auto completion. inoremap Tab_Or_Complete() " }}}