Initial commit with fish, i3, nvim and polybar configuration

This commit is contained in:
Marc Sastre Rienitz
2020-05-17 20:00:08 +02:00
commit e15ad6aa30
30 changed files with 4032 additions and 0 deletions

377
.config/nvim/init.vim Normal file
View File

@@ -0,0 +1,377 @@
" set the runtime path to include Vundle and initialize
set rtp+=~/.config/nvim/bundle/Vundle.vim
call vundle#begin('~/.config/nvim/bundle')
" install with :PluginInstall
" let Vundle manage Vundle, required
Plugin 'gmarik/Vundle.vim'
"-------------------=== Code/Project navigation ===-------------
Plugin 'scrooloose/nerdtree' " Project and file navigation
Plugin 'Xuyuanp/nerdtree-git-plugin' " NerdTree git functionality
Plugin 'airblade/vim-gitgutter' " Show git changes in gutter
Plugin 'majutsushi/tagbar' " Class/module browser
Plugin 'vim-airline/vim-airline' " Lean & mean status/tabline for vim
Plugin 'vim-airline/vim-airline-themes' " Themes for airline
Plugin 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' } " requires fzf and the_silver_searcher (ag)
Plugin 'junegunn/fzf.vim'
Plugin 'tpope/vim-commentary' " Comment lines
Plugin 'tpope/vim-fugitive'
"-------------------=== Other ===-------------------------------
Plugin 'jiangmiao/auto-pairs'
Plugin 'flazz/vim-colorschemes' " Colorschemes
Plugin 'chrisbra/Colorizer' " Colorize colornames and codes
Plugin 'guns/xterm-color-table.vim' " Display a color table
Plugin 'dylanaraps/wal.vim'
Plugin 'tpope/vim-surround'
Plugin 'tpope/vim-sensible'
Plugin 'ntpeters/vim-better-whitespace'
"---------------=== Code completion ===---------------------------
Plugin 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }
"-------------------=== Language Support ===--------------------
" Plugin 'scrooloose/syntastic'
Plugin 'w0rp/ale'
"---------------------=== Fish ===-----------------------------
Plugin 'dag/vim-fish'
"-------------------=== Python ===-----------------------------
Plugin 'jmcantrell/vim-virtualenv', { 'for': 'python' }
Plugin 'numirias/semshi', {'do': ':UpdateRemotePlugins'}
Plugin 'davidhalter/jedi-vim', { 'for': 'python' }
Plugin 'zchee/deoplete-jedi', { 'for': 'python' }
Plugin 'fisadev/vim-isort'
" Plugin 'vim-vdebug/vdebug'
"-------------------=== Cypher ===-----------------------------
Plugin 'neo4j-contrib/cypher-vim-syntax', { 'for': 'cypher' }
"-------------------=== JSON ===-------------------------------
Plugin 'elzr/vim-json'
"------------------=== Markdown ===----------------------------
Plugin 'tpope/vim-markdown'
Plugin 'vim-scripts/SyntaxRange'
" All of your Plugins must be added before the following line
call vundle#end() " required
filetype on
filetype plugin on
"=====================================================
"" General settings
"=====================================================
set nocompatible " required
filetype off " required
set hidden
set showtabline=0
let mapleader=" "
set encoding=utf-8
colorscheme zenburn
" set background=dark
set t_Co=256 " 256 colors
set shell=/bin/bash
set number " show line numbers
set ruler
set ttyfast " terminal acceleration
set tabstop=4 " 4 whitespaces for tabs visual presentation
set shiftwidth=4 " shift lines by 4 spaces
set expandtab " expand tabs into spaces
set colorcolumn=121
set showmatch " shows matching part of bracket pairs (), [], {}
set nobackup " no backup files
set nowritebackup " only in case you don't want a backup file while editing
set noswapfile " no swap files
set scrolloff=20 " let 10 lines before/after cursor during scroll
set clipboard=unnamedplus " use system clipboard
set exrc " enable usage of additional .vimrc files from working directory
set secure " prohibit .vimrc files to execute shell, create files, etc...
set nocursorline " shows line under the cursor's line
set lazyredraw " do not redraw screen in the middle of a macro
set smartcase
set ignorecase
set undofile
set inccommand=nosplit
"=====================================================
"" Deactivate arrows
"=====================================================
noremap <Up> <Nop>
noremap <Down> <Nop>
noremap <Left> <Nop>
noremap <Right> <Nop>
inoremap <Left> <Nop>
inoremap <Right> <Nop>
"=====================================================
"" Tabs / Buffers settings
"=====================================================
tab sball
set switchbuf=useopen
set laststatus=2
nmap <leader>o <C-o>
nmap <leader>i <C-i>
nmap <leader>b :bprev<CR>
nmap <leader>f :bnext<CR>
nmap <silent> <leader>q :bp <BAR> bd #<CR>
nnoremap <silent> <C-w><C-h> :vertical resize -5<cr>
nnoremap <silent> <C-w><C-j> :resize +5<cr>
nnoremap <silent> <C-w><C-k> :resize -5<cr>
nnoremap <silent> <C-w><C-l> :vertical resize +5<cr>
"=====================================================
"" Relative Numbering
"=====================================================
nnoremap <F4> :set relativenumber!<CR>
"=====================================================
"" Search settings
"=====================================================
set hlsearch " highlight search results
" clear search highlight
nnoremap <silent> <leader>h :nohlsearch<CR>
" replace word under cursor
" nnoremap <leader>r :%s/\<<C-r><C-w>\>/
"=====================================================
"" Ale
"=====================================================
let g:ale_echo_msg_error_str = 'E'
let g:ale_echo_msg_warning_str = 'W'
let g:ale_echo_msg_format = '[%linter%] %s [%severity%]'
let g:ale_sign_column_always = 1
let g:ale_set_highlights = 0
let b:ale_warn_about_trailing_whitespace = 1
let g:ale_emit_conflict_warnings = 1
let g:ale_completion_enabled = 0
let g:syntastic_python_pylint_post_args="--max-line-length=120"
let g:ale_linters = {
\ 'python': ['flake8', 'pep8'],
\}
let g:ale_fixers = {
\ '*': ['remove_trailing_lines'],
\ 'python': ['isort', 'autopep8'],
\}
let g:ale_fix_on_save = 0
let g:ale_list_window_size = 15
let g:ale_echo_cursor = 1 " workaround for vim bug
nmap <silent> <leader>ef :ALEFix<cr>
nmap <silent> <leader>ej :ALENext<cr>
nmap <silent> <leader>ek :ALEPrevious<cr>
au FileType python setlocal formatprg=autopep8\ --max-line-length=120\ - " mapped to gq by default
"=====================================================
"" AirLine settings
"=====================================================
let g:airline#extensions#tabline#enabled=1
let g:airline#extensions#tabline#formatter='unique_tail_improved'
let g:airline_theme='zenburn' " set airline theme
let g:airline_powerline_fonts = 1
if !exists('g:airline_symbols')
let g:airline_symbols = {}
endif
" let g:airline_left_sep = ''
" let g:airline_right_sep = ''
" let g:airline_symbols.notexists = ''
"=====================================================
"" TagBar settings
"=====================================================
let g:tagbar_autofocus=1
let g:tagbar_width=42
map <C-t> :TagbarToggle<CR>
" autocmd BufWinEnter *.py :call tagbar#autoopen(0)
autocmd BufWinLeave *.py :TagbarClose
"=====================================================
"" NERDTree settings
"=====================================================
let NERDTreeIgnore = ['\.pyc$', '\.pyo$', '__pycache__$', '\~$'] " Ignore files in NERDTree
let NERDTreeWinSize = 40
autocmd VimEnter * if !argc() | NERDTree | endif " Load NERDTree only if vim is run without arguments
map <C-n> :NERDTreeToggle<CR>
nmap <leader>n :NERDTreeFind<CR>
let g:NERDTreeDirArrowExpandable = '▸'
let g:NERDTreeDirArrowCollapsible = '▾'
let NERDTreeShowHidden = 1
let NERDTreeMinimalUI = 1
"=====================================================
"" GitGutter
"=====================================================
nmap ]h <Plug>GitGutterNextHunk
nmap [h <Plug>GitGutterPrevHunk
let g:updatetime = 250
"=====================================================
"" Indent Guides Settings
"=====================================================
set listchars=tab:\ ,trail:•,extends:#,nbsp:.
"=====================================================
"" Window Navigation
"=====================================================
nnoremap <C-h> <C-w>h
nnoremap <C-j> <C-w>j
nnoremap <C-k> <C-w>k
nnoremap <C-l> <C-w>l
"=====================================================
"" Deoplete
"=====================================================
let g:deoplete#enable_at_startup = 1
let g:python_host_prog = '/usr/bin/python'
let g:python3_host_prog = '/usr/bin/python3'
let g:deoplete#auto_complete_delay = 0
"=====================================================
"" Vim Virtualenv
"=====================================================
let g:virtualenv_auto_activate = 1
"=====================================================
"" FZF
"=====================================================
"
nnoremap <C-f>f :Files<cr>
nnoremap <C-f>t :Ag<cr>
" Search current word
nnoremap <C-f>w :Ag <C-R><C-W><cr>
let $FZF_DEFAULT_COMMAND = 'ag --hidden --ignore .git -g ""' " search in all hidden files but .git
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'] }
"=====================================================
"" Auto Pairs
"=====================================================
let g:AutoPairsFlyMode = 0
let g:AutoPairsShortcutFastWrap = '<C-s>'
""=====================================================
""" WhiteSpace Highlight
""=====================================================
let g:strip_whitespace_on_save=1
""=====================================================
""" iSort
""=====================================================
let g:vim_isort_map = '<C-I>'
let g:vim_isort_python_version = 'python3'
""=====================================================
""" Colorizer
""=====================================================
let g:colorizer_auto_color = 1
let g:colorizer_disable_bufleave = 1
let g:colorizer_skip_comments = 1
let g:colorizer_colornames = 0
autocmd BufNewFile,BufRead,BufEnter,BufWinEnter * call timer_start(100, { tid -> execute('ColorHighlight')})
""=====================================================
""" Semshi
""=====================================================
function MyCustomHighlights()
hi semshiLocal ctermfg=209 guifg=#ff875f
hi semshiGlobal ctermfg=214 guifg=#ffaf00
hi semshiImported ctermfg=214 guifg=#ffaf00 cterm=bold gui=bold
hi semshiParameter ctermfg=75 guifg=#5fafff
hi semshiParameterUnused ctermfg=117 guifg=#87d7ff cterm=underline gui=underline
hi semshiFree ctermfg=218 guifg=#ffafd7
hi semshiBuiltin ctermfg=207 guifg=#ff5fff
hi semshiAttribute ctermfg=49 guifg=#00ffaf
hi semshiSelf ctermfg=249 guifg=#b2b2b2
hi semshiUnresolved ctermfg=226 guifg=#ffff00 cterm=underline gui=underline
hi semshiSelected ctermfg=231 guifg=#ffffff ctermbg=161 guibg=#d7005f
hi semshiErrorSign ctermfg=231 guifg=#ffffff ctermbg=160 guibg=#d70000
hi semshiErrorChar ctermfg=231 guifg=#ffffff ctermbg=160 guibg=#d70000
sign define semshiError text=E> texthl=semshiErrorSign
endfunction
autocmd FileType python call MyCustomHighlights()
autocmd ColorScheme * call MyCustomHighlights()
"=====================================================
"" Jedi Vim
"=====================================================
let g:jedi#auto_initialization = 1 " disable jedi
let g:jedi#auto_vim_configuration = 1 " disable jedi
let g:jedi#completions_enabled = 0 " disable completions
let g:jedi#goto_definitions_command = ""
let g:jedi#documentation_command = "K"
let g:jedi#goto_command = "<leader>d"
let g:jedi#goto_assignments_command = "<leader>g"
let g:jedi#usages_command = "<leader>u"
let g:jedi#completions_command = "<C-Space>"
let g:jedi#rename_command = "<leader>r"
let g:jedi#show_call_signatures = "2"
let g:jedi#popup_on_dot = 0
let g:jedi#smart_auto_mappings = 0
let g:jedi#use_tabs_not_buffers = 0
autocmd BufWinEnter '__doc__' setlocal bufhidden=delete " delete jedi docs
" Set the background transparent
hi Normal guibg=NONE ctermbg=NONE
"=====================================================
"" Others
"=====================================================
" Pretty format XML
com! FormatXML :%!python3 -c "import xml.dom.minidom, sys; print(xml.dom.minidom.parse(sys.stdin).toprettyxml())"
nnoremap = :FormatXML<Cr>