dotfiles/dot_vimrc
2019-12-01 12:03:57 +01:00

168 lines
5.4 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

set nocompatible " be iMproved, required
filetype off " required
" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" alternatively, pass a path where Vundle should install plugins
"call vundle#begin('~/some/path/here')
" let Vundle manage Vundle, required
Plugin 'VundleVim/Vundle.vim'
" The following are examples of different formats supported.
" Keep Plugin commands between vundle#begin/end.
" Git plugin not hosted on GitHub
Plugin 'git://git.wincent.com/command-t.git'
" git repos on your local machine (i.e. when working on your own plugin)
" Plugin "file:///$HOME/Code/"
" The sparkup vim script is in a subdirectory of this repo called vim.
" Pass the path to set the runtimepath properly.
Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}
" Install L9 and avoid a Naming conflict if you've already installed a
" different version somewhere else.
Plugin 'ascenator/L9', {'name': 'newL9'}
" Check syntax in Vim asynchronously and fix files, with Language Server Protocol (LSP) support
Plugin 'dense-analysis/ale'
" A Vim plugin for visually displaying indent levels in code
Plugin 'nathanaelkane/vim-indent-guides'
Plugin 'gmarik/vundle'
" Syntastic is a syntax checking plugin
Plugin 'scrooloose/syntastic'
" A vim plugin to access cheat.sh sheets
Plugin 'dbeniamine/cheat.sh-vim'
" basic vim/terraform integration
Plugin 'hashivim/vim-terraform'
" A solid language pack for Vim. support for kotlin, terraform, groovy, ...
Plugin 'sheerun/vim-polyglot'
" A code-completion engine for Vim
Plugin 'Valloric/YouCompleteMe'
" lean & mean status/tabline for vim that's light as air
Plugin 'vim-airline/vim-airline'
" fugitive.vim: A Git wrapper so awesome, it should be illegal
Plugin 'tpope/vim-fugitive'
" A tree explorer plugin for vim.
Plugin 'scrooloose/nerdtree'
" A Vim plugin which shows a git diff in the gutter (sign column) and stages/undoes hunks and partial hunks.
Plugin 'airblade/vim-gitgutter'
" A plugin of NERDTree showing git status
Plugin 'Xuyuanp/nerdtree-git-plugin'
" All of your Plugins must be added before the following line
call vundle#end()
filetype plugin indent on " required
" To ignore plugin indent changes, instead use:
"filetype plugin on
"
" Brief help
" :PluginList - lists configured plugins
" :PluginInstall - installs plugins; append `!` to update or just :PluginUpdate
" :PluginSearch foo - searches for foo; append `!` to refresh local cache
" :PluginClean - confirms removal of unused plugins; append `!` to auto-approve removal
"
" see :h vundle for more details or wiki for FAQ
" Put your non-Plugin stuff after this line
" nerdtree options
let NERDTreeMinimalUI = 1
let NERDTreeDirArrows = 1
" vim-airline options
let g:airline_powerline_fonts = 1
" vim-gitgutter options
set updatetime=100
" have indent guides enabled by default by vim-indent-guides plugin
let g:indent_guides_enable_on_vim_startup = 1
let g:indent_guides_start_level = 2
let g:indent_guides_guide_size = 1
" vim-terraform options
let g:terraform_fmt_on_save=1
" dense-analysis/ale options
let g:ale_history_log_output = 1
let g:ale_use_global_executables = 1
let g:ale_fix_on_save = 1
let g:ale_completion_enabled = 1
let g:ale_fixers = {
\ '*': ['remove_trailing_lines', 'trim_whitespace'],
\ 'python': ['black'],
\ 'rust': ['rustfmt'],
\}
" Enable syntax highlighting
syntax on
" Enable line numbers
set number
" Enable desert theme
colorscheme desert
" Always show status line
set laststatus=2
" Highlight unwanted spaces :
" 1. highlight trailing whitespace in red
" 2. have this highlighting not appear whilst you are typing in insert mode
" 3. have the highlighting of whitespace apply when you open new buffers
highlight ExtraWhitespace ctermbg=red guibg=red
match ExtraWhitespace /\s\+$/
autocmd BufWinEnter * match ExtraWhitespace /\s\+$/
autocmd InsertEnter * match ExtraWhitespace /\s\+\%#\@<!$/
autocmd InsertLeave * match ExtraWhitespace /\s\+$/
autocmd BufWinLeave * call clearmatches()
" Dont create backups when editing files in certain directories
set backupskip=/tmp/*,/private/tmp/*
" Ignore case of searches
set ignorecase
" Highlight current line
set cursorline
" Highlight dynamically as pattern is typed
set incsearch
" Highlight searches
set hlsearch
" Disable error bells
set noerrorbells
" Dont show the intro message when starting Vim
set shortmess=atI
" Show the filename in the window titlebar
set title
" Start scrolling three lines before the horizontal window border
set scrolloff=3
" Enable auto indent
set autoindent
" show existing tab with 4 spaces width
set tabstop=4
" when indenting with '>', use 4 spaces width
set shiftwidth=4
" On pressing tab, insert 4 spaces
set expandtab
" Default colors for highlighting search result
hi Search ctermfg=White
hi Search ctermbg=DarkMagenta
" test cheat.sh integration with VIM
let mapleader=" "
" map a specific key or shortcut to open NERDTree
map <C-n> :NERDTreeToggle<CR>
let g:syntastic_javascript_checkers = [ 'jshint' ]
let g:syntastic_ocaml_checkers = ['merlin']
let g:syntastic_python_checkers = ['pylint']
let g:syntastic_shell_checkers = ['shellcheck']
set statusline+=%#warningmsg#
set statusline+=%{SyntasticStatuslineFlag()}
set statusline+=%*
let g:syntastic_always_populate_loc_list = 1
let g:syntastic_auto_loc_list = 1
let g:syntastic_check_on_open = 1
let g:syntastic_check_on_wq = 0
au BufNewFile,BufRead Jenkinsfile setf groovy