" Colors {{{ color molokai let g:rehash256 = 1 " }}} " Functions {{{ " Removes trailing spaces {{{ function TrimWhiteSpace() %s/\s\+$// '' endfunction " }}} " Jump to alternate file {{{ function JumpToAlternate() let l:curr_path = expand("%:h") let l:basename = expand("%:t") if stridx(basename, "test_") == 0 let l:new_file = l:basename[5:strlen(l:basename)] else let l:new_file = "test_" . l:basename endif let l:new_file = l:curr_path . '/' . l:new_file " WARN: Unixism let l:buffer = bufnr(l:new_file) if l:buffer == -1 exe 'tabe ' .l:new_file else call win_gotoid(get(win_findbuf(l:buffer), 0)) endif endfunction " }}} " }}} " Settings for all files {{{ set cursorline " highlight the line in which the cursor is set foldmethod=marker " folding will use markers set nowrap " instead of wrapping the text to the next line, scroll left and right set laststatus=2 " Always display the status line set showtabline=2 " Always display the tab bar let mapleader = " " " Leader (special character for plugins) is Space " }}} " Mappings {{{ nnoremap - :Ex map c :call TrimWhiteSpace() " }}} " Plugin configuration {{{ " Airline {{{ let g:airline_theme='minimalist' let g:airline#extensions#tabline#enabled = 1 let g:airline#extensions#tabline#show_buffers = 0 let g:airline#extensions#tabline#show_close_button = 0 let g:airline#extensions#tabline#formatter = 'unique_tail' " }}} " Skim {{{ nmap :SK " }}} " }}} " Filetype specific configurations {{{ " Vim files {{{ augroup vim au FileType vim setlocal noexpandtab " use real tabs au FileType vim setlocal tabstop=4 " display tabs as 4 spaces au FileType vim setlocal shiftwidth=4 " Use 4 spaces when auto-indenting augroup END " }}} " Python {{{ augroup python au FileType python setlocal number " show line numbers au FileType python setlocal expandtab " use spaces instead of tabs au FileType python setlocal tabstop=4 " number of spaces to use for indentation au FileType python setlocal shiftwidth=4 " number of spaces to use for auto-indentation au FileType python setlocal softtabstop=4 " when deleting characters, consider 4 spaces as a tab au FileType python setlocal textwidth=79 " max line size au FileType python setlocal colorcolumn=80 " put a margin indicator au FileType python au BufWritePre %s/\s\+$//e " When saving a Python file, remove tailing spaces au FileType python nmap a :call JumpToAlternate() " Shortcut to add pylint disables au FileType python iab lint # pylint: disable augroup END " }}} " CSV files {{{ augroup csv au FileType csv setlocal list " Display special characters, like tabs (for TSV files) augroup END " }}} " Rust {{{ " Apply `rustfmt` when saving the file. Because this is related to the syntax " file and not something on the buffer itself, we can set it globally. let g:rustfmt_autosave = 1 " }}} " Markdown {{{ augroup markdown au FileType markdown setlocal iskeyword+=: " this is kinda of a "hack" to make abbr accept ":" in them " This is a long abbreviation, but: " Most of it is simply text, with linebreaks (). " There is one thing to take care, though: is NOT . " will call the function (strftime), which will insert the current " date. au FileType markdown iab :header +++title = ""date = =strftime('%Y-%m-%d')[taxonomies]tags = [""]+++ " This abbreviation adds a modeline to set VIM to change the spell " lang to portuguese. au FileType markdown iab :pt au FileType markdown setlocal spell " enable spell checking au FileType markdown setlocal textwidth=79 " max line size au FileType markdown setlocal expandtab " use spaces instead of tabs augroup END " }}} " Shell {{{ augroup shell au FileType sh setlocal tabstop=4 " display tabs as 4 spaces au FileType sh setlocal shiftwidth=4 " number of spaces to use for auto-indentation au FileType sh setlocal softtabstop=4 " when deleting characters, consider 4 spaces as a tab augroup END " }}} " }}}