dotfiles/.vim/vimrc

70 lines
1.8 KiB
VimL

source ~/.vim/vundlerc.vim
syntax on
filetype plugin indent on
set omnifunc=syntaxcomplete#Complete
" unset mouse
set mouse=
" Maintain undo history between sessions
if !isdirectory("/tmp/.vim-undo-dir")
call mkdir("/tmp/.vim-undo-dir", "", 0700)
endif
set undodir=/tmp/.vim-undo-dir
set undofile
" Default tab is 4 spaces
set tabstop=4
set softtabstop=4
set shiftwidth=4
set expandtab
set wildignorecase " Ignore case in command completion
set laststatus=2 " Always show statusline
" Search settings
set smartcase " If an uppercase letter is the query, be case sensitive
set incsearch " Highlight matches while typing query
set hlsearch " Highlight all search matches
" Highlight matching brackets
set showmatch
set mps+=<:> " Also, match < and >
" Use TAB to switch between buffers
noremap <tab> :bn<CR>
noremap <S-tab> :bp<CR>
" Trailing whitespace - highlight in darker red, clean buffer with Ctrl+k
highlight WhitespaceEOL ctermbg=red guibg=#ab0d0d
match WhitespaceEOL /\s\+\%#\@<!$/
nnoremap <C-k> :let _s=@/<Bar>:%s/\s\+$//e<Bar>:let @/=_s<Bar><CR>
" Much better with Tomorrow Night Bright color theme set in alacritty
set background=dark
highlight Search ctermfg=Black
highlight Comment ctermfg=Grey
highlight SignColumn ctermbg=236
highlight LineNr ctermfg=244
highlight LineNr ctermbg=232
highlight Folded ctermbg=DarkGreen
highlight Folded ctermfg=Black
" Language indents and line lengths
autocmd FileType py,rst,md set textwidth=79
autocmd FileType html,yaml,css set softtabstop=2 shiftwidth=2
" Toggles on different plugins/modes
noremap <F1> :ToggleMouse<CR>
inoremap <F1> <Esc>:ToggleMouse<CR>a
nmap <F3> :set nonumber!<CR>
nmap <F5> :NERDTreeToggle<CR>
set pastetoggle=<F2>
" Enable vimrc files per project
set exrc
" Disable unsafe commands in project vimrc
set secure