dotfiles/vimrc

192 lines
4.1 KiB
VimL

" VIM Configuration - Geoffrey FROGEYE
"
set nocompatible
filetype off
""" PLUGINS MANAGEMENT """
" NOTE 18-06-24 Got rid of Vundle in favor of vim-plug (why: more recent, supports
" Neovim, simpler). Commented out plugins that seemed useless, feel free to
" uncomment them again if you need to
" Auto-install vim-plug
if empty(glob('~/.vim/autoload/plug.vim'))
silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs
\ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
autocmd VimEnter * PlugInstall --sync | source $MYVIMRC
endif
" Plugin definition
call plug#begin()
" Plug 'L9'
" Plug 'rstacruz/sparkup', {'rtp': 'vim/'}
Plug 'tomasr/molokai'
" Plug 'tpope/vim-surround'
" Plug 'tpope/vim-fugitive'
" Plug 'tpope/vim-repeat'
" Plug 'tpope/tpope-vim-abolish'
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'
Plug 'airblade/vim-gitgutter'
Plug 'mbbill/undotree'
Plug 'xolox/vim-misc' " Required for 'xolox/vim-easytags'
Plug 'xolox/vim-easytags'
Plug 'majutsushi/tagbar'
" Plug 'wellle/targets.vim'
Plug 'Chiel92/vim-autoformat'
Plug 'tomtom/tcomment_vim'
" Plug 'Shougo/denite.nvim'
" Plug 'tomlion/vim-solidity'
" Plug 'godlygeek/tabular'
" Plug 'jrozner/vim-antlr'
Plug 'maralla/completor.vim'
Plug 'python-mode/python-mode', { 'branch': 'develop' }
Plug 'junegunn/fzf', {'do': './install --bin'}
Plug 'junegunn/fzf.vim'
call plug#end()
""" UNDOTREE """
nmap <F7> :UndotreeToggle<CR>
""" TAGBAR """
nmap <F8> :TagbarToggle<CR>
""" VIM-AIRLINE """
set noshowmode
set laststatus=2
let g:airline_powerline_fonts = 1
" let g:airline#extensions#syntastic#enabled = 1
let g:airline#extensions#tabline#enabled = 1
let g:airline_section_a = airline#section#create(['mode'])
let g:airline_section_b = airline#section#create(['branch', 'hunks'])
let g:airline_section_z = airline#section#create(['%B', '@', '%l', ':', '%c'])
let g:airline_theme = 'wombat'
""" AUTOFORMAT """
nmap <F3> :Autoformat<CR>
""" PYMODE """
" let g:pymode_lint_ignore = ["C901"]
let g:pymode_lint_cwindow = 0
""" FZF """
let g:fzf_layout = { 'down': '~100%' }
let g:fzf_colors =
\ { 'fg': ['fg', 'Normal'],
\ 'bg': ['bg', 'Normal'],
\ 'hl': ['fg', 'Comment'],
\ 'fg+': ['fg', 'CursorLine', 'CursorColumn', 'Normal'],
\ 'bg+': ['bg', 'CursorLine', 'CursorColumn'],
\ 'hl+': ['fg', 'Statement'],
\ 'info': ['fg', 'PreProc'],
\ 'border': ['fg', 'Ignore'],
\ 'prompt': ['fg', 'Conditional'],
\ 'pointer': ['fg', 'Exception'],
\ 'marker': ['fg', 'Keyword'],
\ 'spinner': ['fg', 'Label'],
\ 'header': ['fg', 'Comment'] }
nmap gF :Files<CR>
nmap gf :GFiles<CR>
nmap gb :Buffers<CR>
nmap gL :Lines<CR>
nmap gl :BLines<CR>
nmap gT :Tags<CR>
nmap gt :BTags<CR>
nmap gm :Marks<CR>
nmap gw :Windows<CR>
nmap gh :History<CR>
nmap gH :History:<CR>
nmap gS :History/<CR>
nmap gs :Snippets<CR>
""" VIM SETTINGS """
set encoding=utf-8
set title
set number
set ruler
set wrap
set scrolloff=5
set ignorecase
set smartcase
set incsearch
set hlsearch
set tabstop=4
set shiftwidth=4
set expandtab
set visualbell
set noerrorbells
set backspace=indent,eol,start
set hidden
set updatetime=250
set cursorcolumn
syntax enable
set background=dark
colorscheme molokai
let g:molokai_original = 1
" From http://stackoverflow.com/a/5004785/2766106
set list
set listchars=tab:╾╌,trail,extends:↦,precedes:↤,nbsp:_
set showbreak=
filetype on
filetype plugin on
filetype indent on
set wildmode=longest,list
set showcmd
" Put plugins and dictionaries in this dir (also on Windows)
let vimDir = '$HOME/.vim'
let &runtimepath.=','.vimDir
" Keep undo history across sessions by storing it in a file
if has('persistent_undo')
let myUndoDir = expand(vimDir . '/undodir')
" Create dirs
call system('mkdir ' . vimDir)
call system('mkdir ' . myUndoDir)
let &undodir = myUndoDir
set undofile
endif
" Allow saving of files as sudo when I forgot to start vim using sudo.
" From https://stackoverflow.com/a/7078429
cmap w!! w !sudo tee > /dev/null %
imap jk <Esc>
imap <Esc>
nmap <Enter> o<Esc>
nmap <C-H> :bp<CR>
nmap <C-L> :bn<CR>
nmap <C-K> kkkkkkkkkkkkkkkkkkkkk
nmap <C-J> jjjjjjjjjjjjjjjjjjjjj