|
|
|
" 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<CR>
|
|
|
|
nnoremap <silent> <leader>c :call TrimWhiteSpace()<CR>
|
|
|
|
nnoremap <leader>] <c-w>g<c-]>
|
|
|
|
" }}}
|
|
|
|
|
|
|
|
" 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 <silent> <Leader><Space> :SK<CR>
|
|
|
|
" }}}
|
|
|
|
" }}}
|
|
|
|
|
|
|
|
" 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 <buffer> %s/\s\+$//e " When saving a Python file, remove tailing spaces
|
|
|
|
au FileType python nmap <silent> <Leader>a :call JumpToAlternate()<CR>
|
|
|
|
|
|
|
|
" 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 (<CR>).
|
|
|
|
" There is one thing to take care, though: <CR> is NOT <C-R>.
|
|
|
|
" <C-R> will call the function (strftime), which will insert the current
|
|
|
|
" date.
|
|
|
|
au FileType markdown iab <silent> :header +++<CR>title = ""<CR>date = <C-R>=strftime('%Y-%m-%d')<CR><CR><CR>[taxonomies]<CR>tags = [""]<CR>+++
|
|
|
|
" This abbreviation adds a modeline to set VIM to change the spell
|
|
|
|
" lang to portuguese.
|
|
|
|
au FileType markdown iab :pt <!--<CR>vim:spelllang=pt:<CR>-->
|
|
|
|
|
|
|
|
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
|
|
|
|
" }}}
|
|
|
|
" }}}
|