commit b36f4649b525e1656f435f7fb38b021286708d0b Author: Lucas Date: Thu Oct 9 15:31:41 2025 +0200 inti diff --git a/.vimrc b/.vimrc new file mode 100644 index 0000000..14aba91 --- /dev/null +++ b/.vimrc @@ -0,0 +1,160 @@ +" --- Compatibilité & encodage --- +set nocompatible +filetype off +syntax on +set encoding=utf-8 +set fileencoding=utf-8 +set termguicolors +set background=dark +set hidden +set clipboard=unnamedplus + +" --- Interface --- +set number +set ruler +"set cursorline +set showmatch +set showcmd +set splitbelow splitright +set scrolloff=4 +"set signcolumn=yes + +" --- Indentation intelligente --- +set tabstop=4 +set shiftwidth=4 +set expandtab +set smartindent +set autoindent + +" --- Recherche & navigation --- +set ignorecase +set smartcase +set incsearch +set hlsearch +set wildmenu +set wildmode=list:longest +set mouse=a + +" --- Sauvegarde & confort --- +set undofile +set nobackup +set noswapfile +set confirm + +" ========================================================== +" PLUGINS +" ========================================================== +call plug#begin('~/.vim/plugged') + +" Navigateur de fichiers +Plug 'preservim/nerdtree' + +" Barre d’état élégante (restera sobre) +Plug 'itchyny/lightline.vim' + +" Git intégré +Plug 'tpope/vim-fugitive' + +" Commentaires faciles +Plug 'tpope/vim-commentary' + +" Autocomplétion et LSP +Plug 'neoclide/coc.nvim', {'branch': 'release'} + +" Fuzzy finder (recherche rapide de fichiers) +Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } +Plug 'junegunn/fzf.vim' + +" Multicurseurs +Plug 'mg979/vim-visual-multi', {'branch': 'master'} + +" Entourer facilement du texte (quotes, parenthèses…) +Plug 'tpope/vim-surround' + +" Statistiques et perf +Plug 'tpope/vim-sensible' + +call plug#end() + +" ========================================================== +" RACCOURCIS UTILES +" ========================================================== + +" --- NERDTree --- +nnoremap :NERDTreeToggle + +" --- Navigation entre fenêtres --- +nnoremap h +nnoremap j +nnoremap k +nnoremap l + +" --- Sauvegarde rapide --- +nnoremap :w + +" --- FZF (recherche rapide de fichiers) --- +nnoremap :Files + +" --- Supprimer le surlignage après une recherche --- +nnoremap :noh + +" ========================================================== +" LIGHTLINE (barre d’état) +" ========================================================== +set laststatus=2 +let g:lightline = { + \ 'colorscheme': 'default', + \ 'active': { + \ 'left': [ ['mode', 'paste'], ['readonly', 'filename', 'modified'] ] + \ }, + \ 'component_function': { + \ 'readonly': 'LightlineReadonly', + \ } + \ } +function! LightlineReadonly() + return &readonly ? '' : '' +endfunction + +" ========================================================== +" COC (AUTOCOMPLÉTION & LSP) +" ========================================================== + +" --- Activer la complétion --- +inoremap coc#refresh() +inoremap pumvisible() ? coc#_select_confirm() : "\" + +" --- Navigation dans les erreurs --- +nmap [g (coc-diagnostic-prev) +nmap ]g (coc-diagnostic-next) + +" --- Aller à la définition / référence --- +nmap gd (coc-definition) +nmap gy (coc-type-definition) +nmap gi (coc-implementation) +nmap gr (coc-references) + +" --- Renommer symbole --- +nmap rn (coc-rename) + +" --- Formater le code --- +command! -nargs=0 Format :call CocAction('format') + +" ========================================================== +" APPARENCE SOBRE +" ========================================================== +colorscheme default +set background=dark +highlight Normal ctermbg=none +highlight NonText ctermbg=none +highlight LineNr ctermfg=DarkGrey +highlight CursorLineNr ctermfg=White +highlight CursorLine ctermbg=236 + +" ========================================================== +" OPTIMISATIONS DIVERS +" ========================================================== +set lazyredraw +set ttyfast +set updatetime=300 +set shortmess+=c +set completeopt=menu,menuone,noselect