diff --git a/init.vim b/init.vim index 1382722..5863846 100644 --- a/init.vim +++ b/init.vim @@ -1,187 +1,162 @@ -" Pas de compatibilité a VI ! -set nocompatible - -" PLUGNIS ###########################################################{{{ -call plug#begin() -if has('nvim') - Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' } -else - Plug 'Shougo/deoplete.nvim' - Plug 'roxma/nvim-yarp' - Plug 'roxma/vim-hug-neovim-rpc' -endif - -" General plugins -Plug 'vim-airline/vim-airline' -Plug 'vim-airline/vim-airline-themes' -Plug 'https://gitea.tforgione.fr/tforgione/peach.git' -Plug 'scrooloose/nerdtree' -Plug 'w0rp/ale' -Plug 'tpope/vim-abolish' - -" Language specific plugins - -" C++ -Plug 'Shougo/deoplete-clangx' - -" Rust -Plug 'rust-lang/rust.vim' -Plug 'racer-rust/vim-racer' -Plug 'sebastianmarkow/deoplete-rust' - -" Elm -Plug 'ElmCast/elm-vim' -Plug 'antew/vim-elm-language-server' - -" Toml -Plug 'cespare/vim-toml' - -" Pug -Plug 'digitaltoad/vim-pug' - -" Spandex -Plug 'rust-spandex/spandex.vim' - -call plug#end() - -" Line numbers and syntaxic coloration -" set nu -" syntax on - -" Highlight bad spaces (not working...) -" }}} - -" INDENTATION #######################################################{{{ -set expandtab -set tabstop=4 -set shiftwidth=4 -set autoindent -" }}} - -" UI CONFIG #########################################################{{{ -set number -if $NVIM_LINE_NUMBER == 'rnu' - set rnu -endif -set showcmd -set wildmenu -set lazyredraw -set encoding=utf8 -set clipboard=unnamedplus -set updatecount=50 -set mouse=a -set guicursor= -" set ttymouse=sgr -" Espaces insécables grrrr -set list -set listchars=tab:  ,trail:·,extends:>,precedes:<,nbsp:¬ -" Remove trailing spaces -autocmd BufWritePre * :%s/\s\+$//e - -" Compile on F12 -if executable('mars') - nnoremap :wa \| !mars -p %:p - inoremap :wa \|!mars -p %:p - vnoremap :wa \|!mars -p %:p -elseif executable('make') - nnoremap :wa \| !make -p %:p - inoremap :wa \|!make -p %:p - vnoremap :wa \|!make -p %:p -endif - -" Escape on F1 -map -imap -" vim airline config -set laststatus=2 -let g:airline_powerline_fonts = 1 -let g:airline#extensions#branch#format = 1 -let g:airline_theme='dark' -set t_Co=256 -" Set textwidth for latex -" autocmd FileType tex set textwidth=79 -" }}} - -" COLOR #############################################################{{{ -set background=dark -syntax enable -try - colorscheme peach -catch -endtry -highlight BadWhitespace ctermbg=red guibg=red -match BadWhitespace / \| \+\t/ -" }}} - -" SEARCHING #########################################################{{{ -set title -set showmatch -set hlsearch -set noincsearch -" }}} - -" NERDTREE ##########################################################{{{ -let NERDTreeIgnore = ['\.pyc$','__pycache__'] -set shell=zsh -let g:NERDTreeIndicatorMapCustom = { - \ "Modified" : "✹", - \ "Staged" : "✚", - \ "Untracked" : "✭", - \ "Renamed" : "➜", - \ "Unmerged" : "═", - \ "Deleted" : "✖", - \ "Dirty" : "✗", - \ "Clean" : "✔︎", - \ "Unknown" : "?" - \ } -let g:WebDevIconsNerdTreeGitPluginForceVAlign = 1 -" }}} - -" BACKUPS ###########################################################{{{ -set dir=$HOME/.nvim/swp// -autocmd BufWritePost * :silent execute ':w! ' ."$HOME/.nvim/backups/" . substitute(escape(substitute(expand('%:p'), "/", "%", "g"), "%"), ' ', '\\ ', 'g') - -if exists('+undofile') - set undofile - set undolevels=1000 - set undoreload=10000 - if exists('+undodir') - set undodir=$HOME/.nvim/undo - endif -endif -" }}} - - -" MARKDOWN PREVIEW ##################################################{{{ -let g:markdown_composer_browser = 'firefox' -let g:instant_markdown_autostart = 0 -" }}} - -" CODE COMPLETION ###################################################{{{ - -" Use deoplete -let g:deoplete#enable_at_startup = 1 -autocmd FileType elm call deoplete#custom#buffer_option('auto_complete', v:false) - -" Autoclose preview -autocmd CursorMovedI * if pumvisible() == 0|pclose|endif -autocmd InsertLeave * if pumvisible() == 0|pclose|endif - -" Complete on tab -inoremap pumvisible() ? "\" : "\" - -" }}} - -" CUSTOM THINGS DEPENDING ON ENV ####################################{{{ -let g:rustfmt_autosave = 1 -let g:ale_linters = {} -let g:ale_c_parse_compile_commands=1 -let g:ale_elm_ls_use_global = 1 -let g:ale_linters_ignore = { 'elm': ['make'] } -let g:ale_lint_on_text_changed = 0 -if $NVIM_DISABLE_PYTHON_LINTER == '1' - let g:ale_linters.python = [] -endif -if $NVIM_DISABLE_JAVA_LINTER == '1' - let g:ale_linters.java = [] -endif +" Pas de compatibilité a VI ! +set nocompatible + +" PLUGNIS ###########################################################{{{ +call plug#begin() + +" General plugins +Plug 'vim-airline/vim-airline' +Plug 'vim-airline/vim-airline-themes' +Plug 'https://gitea.tforgione.fr/tforgione/peach.git' +Plug 'scrooloose/nerdtree' +Plug 'tpope/vim-abolish' + +" Language specific plugins + + +" Rust +Plug 'rust-lang/rust.vim' + +" Elm +Plug 'ElmCast/elm-vim' + +" Toml +Plug 'cespare/vim-toml' + +" Pug +Plug 'digitaltoad/vim-pug' + +call plug#end() + +" Line numbers and syntaxic coloration +" set nu +" syntax on + +" Highlight bad spaces (not working...) +" }}} + +" INDENTATION #######################################################{{{ +set expandtab +set tabstop=4 +set shiftwidth=4 +set autoindent +" }}} + +" UI CONFIG #########################################################{{{ +set number +if $NVIM_LINE_NUMBER == 'rnu' + set rnu +endif +set showcmd +set wildmenu +set lazyredraw +set encoding=utf8 +set clipboard=unnamedplus +set updatecount=50 +set mouse=a +set guicursor= +" set ttymouse=sgr +" Espaces insécables grrrr +set list +set listchars=tab:  ,trail:·,extends:>,precedes:<,nbsp:¬ +" Remove trailing spaces +autocmd BufWritePre * :%s/\s\+$//e + +" Compile on F12 +if executable('mars') + nnoremap :wa \| !mars -p %:p + inoremap :wa \|!mars -p %:p + vnoremap :wa \|!mars -p %:p +elseif executable('make') + nnoremap :wa \| !make -p %:p + inoremap :wa \|!make -p %:p + vnoremap :wa \|!make -p %:p +endif + +" Escape on F1 +map +imap +" vim airline config +set laststatus=2 +let g:airline_powerline_fonts = 1 +let g:airline#extensions#branch#format = 1 +let g:airline_theme='dark' +set t_Co=256 +" Set textwidth for latex +" autocmd FileType tex set textwidth=79 +" }}} + +" COLOR #############################################################{{{ +set background=dark +syntax enable +try + colorscheme peach +catch +endtry +highlight BadWhitespace ctermbg=red guibg=red +match BadWhitespace / \| \+\t/ +" }}} + +" SEARCHING #########################################################{{{ +set title +set showmatch +set hlsearch +set noincsearch +" }}} + +" NERDTREE ##########################################################{{{ +let NERDTreeIgnore = ['\.pyc$','__pycache__'] +set shell=zsh +let g:NERDTreeIndicatorMapCustom = { + \ "Modified" : "✹", + \ "Staged" : "✚", + \ "Untracked" : "✭", + \ "Renamed" : "➜", + \ "Unmerged" : "═", + \ "Deleted" : "✖", + \ "Dirty" : "✗", + \ "Clean" : "✔︎", + \ "Unknown" : "?" + \ } +let g:WebDevIconsNerdTreeGitPluginForceVAlign = 1 +" }}} + +" BACKUPS ###########################################################{{{ +set dir=$HOME/.nvim/swp// +autocmd BufWritePost * :silent execute ':w! ' ."$HOME/.nvim/backups/" . substitute(escape(substitute(expand('%:p'), "/", "%", "g"), "%"), ' ', '\\ ', 'g') + +if exists('+undofile') + set undofile + set undolevels=1000 + set undoreload=10000 + if exists('+undodir') + set undodir=$HOME/.nvim/undo + endif +endif +" }}} + + +" MARKDOWN PREVIEW ##################################################{{{ +let g:markdown_composer_browser = 'firefox' +let g:instant_markdown_autostart = 0 +" }}} + +function! s:check_back_space() abort + let col = col('.') - 1 + return !col || getline('.')[col - 1] =~ '\s' +endfunction + + +" CUSTOM THINGS DEPENDING ON ENV ####################################{{{ +let g:rustfmt_autosave = 1 +let g:ale_linters = {} +let g:ale_c_parse_compile_commands=1 +let g:ale_elm_ls_use_global = 1 +let g:ale_linters_ignore = { 'elm': ['make'] } +let g:ale_lint_on_text_changed = 0 +if $NVIM_DISABLE_PYTHON_LINTER == '1' + let g:ale_linters.python = [] +endif +if $NVIM_DISABLE_JAVA_LINTER == '1' + let g:ale_linters.java = [] +endif