211 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			211 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
" VIM-PLUG MANAGER ##################################################{{{
 | 
						|
" First install vim-plug with the following command:
 | 
						|
" curl -fLo ~/.config/nvim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
 | 
						|
" Then copy this file in: ~/.config/nvim/
 | 
						|
" Install all requirements (neovim, python3, python3 neovim package,
 | 
						|
" nerd-fonts, rust, cargo, ... (see below for details))
 | 
						|
" Finally launch nvim and run: :PlugInstall
 | 
						|
 | 
						|
call plug#begin('~/.config/nvim/plugged')
 | 
						|
 | 
						|
" Nerdtree file explorer
 | 
						|
Plug 'scrooloose/nerdtree', { 'on':  'NERDTreeToggle' } | Plug 'Xuyuanp/nerdtree-git-plugin'
 | 
						|
" Great collection of color themes
 | 
						|
Plug 'flazz/vim-colorschemes'
 | 
						|
" correct terminal palette colors
 | 
						|
Plug 'KevinGoodsell/vim-csexact'
 | 
						|
" rst syntax
 | 
						|
Plug 'mitsuhiko/vim-rst'
 | 
						|
" Display thin vertical line at each indentation level for code indented with spaces
 | 
						|
" Plug 'Yggdroot/indentLine'
 | 
						|
" Personalized status bar
 | 
						|
Plug 'bling/vim-airline'
 | 
						|
" Some icons (need to install nerd-fonts to work)
 | 
						|
" Plug 'ryanoasis/vim-devicons'
 | 
						|
" Comment any type of code (gcc, gcip)
 | 
						|
Plug 'tomtom/tcomment_vim'
 | 
						|
" Auto completion tools (deoplete is still alpha)
 | 
						|
Plug 'Shougo/deoplete.nvim'
 | 
						|
" Snippets made easy (<C-k>)
 | 
						|
Plug 'Shougo/neosnippet.vim' | Plug 'Shougo/neosnippet-snippets'
 | 
						|
" Python highlight
 | 
						|
Plug 'hdima/python-syntax'
 | 
						|
" Search files
 | 
						|
" Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' } | Plug 'junegunn/fzf.vim'
 | 
						|
" Real-time collaborative editing
 | 
						|
" Plug 'Floobits/floobits-neovim'
 | 
						|
" An asynchronous markdown preview plugin for Neovim (requires Rust and Cargo)
 | 
						|
" function! BuildComposer(info)
 | 
						|
" 	if a:info.status != 'unchanged' || a:info.force
 | 
						|
" 		!cargo build --release
 | 
						|
" 		UpdateRemotePlugins
 | 
						|
" 	endif
 | 
						|
" endfunction
 | 
						|
" Plug 'euclio/vim-markdown-composer', {'do': function('BuildComposer')}
 | 
						|
" Git stuff
 | 
						|
Plug 'tpope/vim-fugitive'
 | 
						|
" Add plugins to &runtimepath
 | 
						|
call plug#end()
 | 
						|
" }}}
 | 
						|
 | 
						|
"NeoBundle Scripts-----------------------------
 | 
						|
if has('vim_starting')
 | 
						|
  if &compatible
 | 
						|
    set nocompatible               " Be iMproved
 | 
						|
  endif
 | 
						|
 | 
						|
  " Required:
 | 
						|
  set runtimepath+=/home/thomas/.nvim/bundle/neobundle.vim/
 | 
						|
endif
 | 
						|
 | 
						|
" Required:
 | 
						|
" call neobundle#begin(expand('/home/thomas/.nvim/bundle'))
 | 
						|
 | 
						|
" Let NeoBundle manage NeoBundle
 | 
						|
" Required:
 | 
						|
" NeoBundleFetch 'Shougo/neobundle.vim'
 | 
						|
 | 
						|
" NeoBundle 'Shougo/vimproc.vim', {
 | 
						|
" \ 'build' : {
 | 
						|
" \     'windows' : 'tools\\update-dll-mingw',
 | 
						|
" \     'cygwin' : 'make -f make_cygwin.mak',
 | 
						|
" \     'mac' : 'make -f make_mac.mak',
 | 
						|
" \     'linux' : 'make',
 | 
						|
" \     'unix' : 'gmake',
 | 
						|
" \    },
 | 
						|
" \ }
 | 
						|
" NeoBundle 'Quramy/tsuquyomi'
 | 
						|
 | 
						|
" Required:
 | 
						|
" call neobundle#end()
 | 
						|
 | 
						|
" Required:
 | 
						|
" filetype plugin indent on
 | 
						|
 | 
						|
" If there are uninstalled bundles found on startup,
 | 
						|
" this will conveniently prompt you to install them.
 | 
						|
" NeoBundleCheck
 | 
						|
"End NeoBundle Scripts-------------------------
 | 
						|
 | 
						|
" Vundle
 | 
						|
" filetype off
 | 
						|
" set rtp+=~/.config/nvim/bundle/Vundle.vim
 | 
						|
"
 | 
						|
" call vundle#begin("~/.config/nvim/bundle")
 | 
						|
" Plugin 'VundleVim/Vundle.vim'
 | 
						|
" Plugin 'suan/vim-instant-markdown'
 | 
						|
" call vundle#end()
 | 
						|
"
 | 
						|
" filetype plugin indent on
 | 
						|
" End vundle
 | 
						|
 | 
						|
" COLOR #############################################################{{{
 | 
						|
set background=dark              " use dark background
 | 
						|
syntax enable                    " enable syntax processing
 | 
						|
colorscheme peachpuff          " awesome colorscheme
 | 
						|
" }}}
 | 
						|
 | 
						|
" INDENTATION #######################################################{{{
 | 
						|
set expandtab                    " tabs are spaces
 | 
						|
set tabstop=4                    " number of visual spaces per TAB
 | 
						|
set shiftwidth=4                 " number of spaces for 1 indentation level
 | 
						|
" set list listchars=tab:▸\ ,trail:·,extends:>,precedes:<,nbsp:¬
 | 
						|
filetype plugin indent on        " load filetype-specific indent files
 | 
						|
set autoindent
 | 
						|
" }}}
 | 
						|
 | 
						|
" UI CONFIG #########################################################{{{
 | 
						|
set number                       " show line numbers
 | 
						|
set showcmd                      " show command in bottom bar
 | 
						|
set wildmenu                     " visual autocomplete for command menu
 | 
						|
set lazyredraw                   " redraw only when we need to.
 | 
						|
set showmatch                    " highlight matching [{()}]
 | 
						|
set encoding=utf8
 | 
						|
let g:airline_powerline_fonts = 1
 | 
						|
set guifont=Droid\ Sans\ Mono\ for\ Powerline\ Plus\ Nerd\ File\ Types\ 11
 | 
						|
set clipboard=unnamedplus
 | 
						|
set updatecount=50
 | 
						|
 | 
						|
" Remove trailing spaces
 | 
						|
autocmd BufWritePre * :%s/\s\+$//e
 | 
						|
" }}}
 | 
						|
 | 
						|
" SEARCHING #########################################################{{{
 | 
						|
set title
 | 
						|
set showmatch
 | 
						|
set hlsearch
 | 
						|
set noincsearch
 | 
						|
" }}}
 | 
						|
 | 
						|
" NERDTREE ##########################################################{{{
 | 
						|
let NERDTreeIgnore = ['\.pyc$','__pycache__']
 | 
						|
set shell=sh
 | 
						|
let g:NERDTreeIndicatorMapCustom = {
 | 
						|
	\ "Modified"  : "✹",
 | 
						|
	\ "Staged"    : "✚",
 | 
						|
	\ "Untracked" : "✭",
 | 
						|
	\ "Renamed"   : "➜",
 | 
						|
	\ "Unmerged"  : "═",
 | 
						|
	\ "Deleted"   : "✖",
 | 
						|
	\ "Dirty"     : "✗",
 | 
						|
	\ "Clean"     : "✔︎",
 | 
						|
	\ "Unknown"   : "?"
 | 
						|
	\ }
 | 
						|
let g:WebDevIconsNerdTreeGitPluginForceVAlign = 1
 | 
						|
" }}}
 | 
						|
 | 
						|
" AUTO COMPLETION ###################################################{{{
 | 
						|
" Use deoplete.
 | 
						|
let g:deoplete#enable_at_startup = 1
 | 
						|
" neosnippet plugin key-mappings.
 | 
						|
imap <C-k>     <Plug>(neosnippet_expand_or_jump)
 | 
						|
smap <C-k>     <Plug>(neosnippet_expand_or_jump)
 | 
						|
xmap <C-k>     <Plug>(neosnippet_expand_target)
 | 
						|
" Complete on tab
 | 
						|
""Window users can copy the file to their machine.
 | 
						|
function! Tab_Or_Complete()
 | 
						|
  if col('.')>1 && strpart( getline('.'), col('.')-2, 3 ) =~ '^\w'
 | 
						|
    return "\<C-n>"
 | 
						|
  else
 | 
						|
    return "\<Tab>"
 | 
						|
  endif
 | 
						|
endfunction
 | 
						|
:inoremap <Tab> <C-R>=Tab_Or_Complete()<CR>
 | 
						|
 | 
						|
" Compile on F12
 | 
						|
nnoremap <silent><F12> :wa \| !make-client.sh<CR>
 | 
						|
inoremap <silent><F12> <C-O>:wa \|!make-client.sh<CR>
 | 
						|
vnoremap <silent><F12> :wa \|!make-client.sh<CR>
 | 
						|
 | 
						|
" Escape on F1
 | 
						|
map <F1> <Esc>
 | 
						|
imap <F1> <Esc>
 | 
						|
" }}}
 | 
						|
 | 
						|
" MARKDOWN PREVIEW ##################################################{{{
 | 
						|
let g:markdown_composer_browser = 'chromium'
 | 
						|
" }}}
 | 
						|
"
 | 
						|
" BACKUPS ###########################################################{{{
 | 
						|
set directory=$HOME/.vim/swp//
 | 
						|
set backupdir=$HOME/.vim/backups/
 | 
						|
set nobackup
 | 
						|
 | 
						|
" Persistent undo
 | 
						|
if exists('+undofile')
 | 
						|
	set undofile
 | 
						|
	set undolevels=1000
 | 
						|
	set undoreload=10000
 | 
						|
	if exists('+undodir')
 | 
						|
		set undodir=$HOME/.vim/undo
 | 
						|
	endif
 | 
						|
endif
 | 
						|
 | 
						|
" Markdown : do not open browser if i'm not telling you
 | 
						|
let g:instant_markdown_autostart = 0
 | 
						|
 | 
						|
autocmd BufWritePost * :silent execute ':w! ' ."$HOME/.vim/backups/" . escape(substitute(expand('%:p'), "/", "%", "g"), "%")
 | 
						|
 | 
						|
autocmd BufEnter,BufNew *.pgsql set filetype=pgsql.
 | 
						|
 |