1
0
mirror of https://github.com/xlogerais/config-vim synced 2024-09-19 22:29:58 +02:00
config-vim/vimrc
2022-09-22 18:35:37 +02:00

165 lines
4.5 KiB
VimL

" ------ [ Gestion des options ] ----------------------------------------------
" We don't want vi compatibility.
set nocompatible
" we have a fast terminal
set ttyfast
" ------ [ Gestion des plugins ] ----------------------------------------------
execute pathogen#infect()
" ------[ Gestion de la barre de statut ] -------------------------------------
" Display title
set title
" ruler display in status line
set ruler
" show mode at bottom of screen
set showmode
" Custom statusline
" cf the default statusline: %<%f\ %h%m%r%=%-14.(%l,%c%V%)\ %P
" format markers:
" %< truncation point
" %n buffer number
" %f relative path to file
" %m modified flag [+] (modified), [-] (unmodifiable) or nothing
" %r readonly flag [RO]
" %y filetype [ruby]
" %= split point for left and right justification
" %-35. width specification
" %l current line number
" %L number of lines in buffer
" %c current column number
" %V current virtual column number (-n), if different from %c
" %P percentage through buffer
" %) end of width specification
set statusline=
set statusline+=%n " buffer number
set statusline+=\ " space separator
set statusline+=%t " file name
set statusline+=%= " right align
set statusline+=%m%r%h%w
set statusline+=\ " space separator
set statusline+=Encoding:[%{strlen(&fenc)?&fenc:&enc}] " encoding
set statusline+=\ " space separator
set statusline+=Type:%y
set statusline+=\ " space separator
set statusline+=Curseur:[colonne\ %c/ligne\ %l]
set statusline+=\ " space separator
set statusline+=Position:[%l/%L\ (%p%%)]
" occasions to show status line, 2=always.
set laststatus=2
" ------[ Gestion du fichier viminfo ] ----------------------------------------
" Tell vim to remember certain things when we exit
" '10 : marks will be remembered for up to 10 previously edited files
" "100 : will save up to 100 lines for each register
" :100 : up to 100 lines of command-line history will be remembered
" % : saves and restores the buffer list
" n... : where to save the viminfo files
set viminfo='10,\"100,:100,%,n~/.vim/viminfo
" ------[ Restauration de la position du curseur ] ----------------------------
function! ResCur()
if line("'\"") <= line("$")
normal! g`"
return 1
endif
endfunction
augroup resCur
autocmd!
autocmd BufWinEnter * call ResCur()
augroup END
" ------ [ Gestion de la coloration syntaxique ] ------------------------------
syntax on
" ------ [ Gestion de la correction d'orthographe ] ---------------------------
setlocal nospell
setlocal spelllang=fr
" ------[ Gestion des types de fichiers ] -------------------------------------
filetype on " Enable filetype detection
filetype indent on " Enable filetype-specific indenting
filetype plugin on " Enable filetype-specific plugins
"misc
" autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS
" autocmd FileType html set omnifunc=htmlcomplete#CompleteTags
" autocmd FileType css set omnifunc=csscomplete#CompleteCSS
" autocmd FileType xml set omnifunc=xmlcomplete#CompleteTags
" autocmd FileType php set omnifunc=phpcomplete#CompletePHP
" autocmd FileType c set omnifunc=ccomplete#Complete
" ------[ Gestion des types de terminaux ] ----------------------------------------------
if (&term =~ 'xterm')
set termencoding=utf-8
set t_Co=256
set mouse=a
colorscheme mustang
elseif (&term =~ 'kitty')
set termencoding=utf-8
set t_Co=256
set mouse=a
colorscheme mustang
elseif (&term =~ 'rxvt')
set termencoding=utf-8
set t_Co=256
set mouse=a
colorscheme mustang
map <C-up> :tabr<cr>
map <C-down> :tabl<cr>
map <C-t><left> :tabp<cr>
map <C-t><right> :tabn<cr>
elseif (&term =~ 'screen')
set termencoding=utf-8
set t_Co=16
set background=dark
colorscheme zenburn
elseif (&term =~ 'screen-256color')
set termencoding=utf-8
set t_Co=256
set mouse=a
colorscheme mustang
elseif (&term =~ 'linux')
set termencoding=utf-8
set t_Co=16
else
set termencoding=utf-8
set t_Co=16
endif
" ------[ Paste ] ----------------------------------------------
function! PasteToggle()
set invpaste
set paste?
endfunction
map <F2> :call PasteToggle()<CR>
imap <F2> <c-o>:call PasteToggle()<CR>
set pastetoggle=<F2>
" ------[ Mapping ] ----------------------------------------------
let mapleader = ","
map <Leader>ve :tabedit ~/.vimrc<CR>
map <Leader>ne :tabedit ~/.notes<CR>
map <Leader>te :tabedit ~/.todo<CR>
" ------[ Vim Airline ] ----------------------------------------------
let g:airline_powerline_fonts = 1
let g:airline#extensions#tabline#enabled = 1