vim_config/conf/nvim/init.vim

149 lines
3.8 KiB
VimL

set nocompatible
"Plug init
"
call plug#begin('~/.local/lib/nvim/plugged')
"vim airline and vim airline theme
Plug 'vim-airline/vim-airline'
"vim airline and vim airline theme
Plug 'vim-airline/vim-airline-themes'
if v:version >= 800
" Replace syntastic with ale (test)
Plug 'w0rp/ale'
endif
"Base16 theme
Plug 'chriskempson/base16-vim'
"NERDTree file manager
Plug 'scrooloose/nerdtree'
"Vim fugitive
Plug 'tpope/vim-fugitive'
Plug 'tpope/vim-surround'
Plug 'sheerun/vim-polyglot'
if has('nvim')
Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }
endif
Plug 'zchee/deoplete-jedi'
"Grammalecte
Plug 'dpelle/vim-Grammalecte', { 'on': 'GrammalecteCheck' }
call plug#end()
filetype plugin indent on
syntax enable
set title
set nu
set showmode
set noswapfile
set nofsync
set buftype=
set mouse=a
set encoding=utf8
set directory^=$HOME/.local/tmp/nvim
set backupdir^=$HOME/.local/tmp/nvim
set smartindent
set tabstop=4
set shiftwidth=4
set expandtab
set showmatch
set colorcolumn=80
set clipboard+=unnamedplus "Use system clipboard
"Code Fold
"---------
set foldmethod=indent
"Load and save view atomatocally (save and restore fold)
autocmd BufWinLeave *.* mkview
autocmd BufWinEnter *.* silent! loadview
"Searching
"---------
set incsearch " Ignore case when searching
set ignorecase
set smartcase " When searching try to be smart about cases
set hlsearch " hightlight search terms
set gdefault " Search all occurrences by default
" NerdTree
" --------
" Close NERDTree if it is the last buffer open
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
" ALE (test)
" ----------
let g:ale_sign_column_always = 1
let g:ale_sign_error = '⚠'
let g:ale_sign_warning = '⚠'
let g:ale_echo_msg_format = '[%linter%] %s [%severity%]'
" Vim-airLine
" -----------
let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#tabline#left_sep = ''
let g:airline#extensions#tabline#left_alt_sep = '|'
let g:airline_powerline_fonts = 1
let g:airline_skip_empty_sections = 1
"let g:airline#extensions#bufferline#enabled = 1
let g:airline#extensions#tabline#show_splits = 0
" Grammalecte
" -----------
let g:grammalecte_cli_py='/usr/bin/grammalecte-cli'
"set laststatus=2
set laststatus
" Deoplete
" --------
let g:deoplete#enable_at_startup = 1
" Deoplete tab order on popup to be down/up instead of up/down
inoremap <silent><expr><tab> pumvisible()? "\<c-n>" : "\<tab>"
inoremap <silent><expr><s-tab> pumvisible()? "\<c-p>" : "\<s-tab>"
" Color Scheme
" ------------
set termguicolors "24 bits color support
let base16colorspace=256
colorscheme base16-classic-dark
set background=dark
" Key biding
" ----------
map <silent> [C-left] :tabprevious<CR>
map <silent> [C-right] :tabnext<CR>
map <silent> <leader>/ :nohlsearch<CR>
map <silent> <F2> :NERDTreeToggle<CR>
" Move tabs with \[ and \]
map <Leader>] :tabnext<CR>
map <Leader>[ :tabprev<CR>
" show special character
set listchars=tab:→\ ,trail:␣,extends:…,eol:
nmap <leader>l :set list!<CR>
" Autotype
" --------
au BufRead,BufNewFile *.md setlocal textwidth=80
au BufRead,BufNewFile *.tex setlocal textwidth=80
autocmd BufNewFile,BufRead /tmp/neomutt* set tw=72 fo=awq comments+=nb:> noautoindent filetype=mail
" Enable enhanced command line completion.
set wildmenu
set wildmode=longest:full,list
" Ignore these filenames during enhanced command line completion.
set wildignore+=*.bak,*.class
set wildignore+=*.aux,*.out,*.toc " LaTeX intermediate files
set wildignore+=*.jpg,*.bmp,*.gif,*.png " binary images
set wildignore+=*.luac " Lua byte code
set wildignore+=*.o,*.obj,*.exe,*.dll,*.manifest " compiled object files
set wildignore+=*.pyc " Python byte code
set wildignore+=*.spl " compiled spelling word lists
set wildignore+=*.sw? " Vim swap files