Vim : configuration vimrc pour développeurs et administrateurs système sous Linux

Vim est depuis longtemps mon éditeur de texte préféré.
Il constitue pour moi un véritable couteau suisse de l’édition de texte. Je m’en sers pour rédiger mes notes, modifier les fichiers de configuration de mes serveurs distants ou encore programmer (GShutdown ou Jargon Informatique ont été entièrement écrits avec cet éditeur !).
Ce qui m’a toujours séduit dans Vim c’est le fait qu’il offre une multitude de fonctions permettant de tout faire ou presque, et une extensibilité remarquable grâce aux plugins (j’y consacrerai un autre article pour vous faire découvrir ceux à ne pas manquer).
L’un des aspects un peu rebutants pour les débutants est que Vim n’est pas, par défaut, configuré pour tirer parti de toutes ses fonctionnalités les plus intéressantes, qui mériteraient pourtant d’être activées dès le départ. C’est pourquoi j’ai progressivement construit et amélioré mon propre fichier .vimrc, afin de rendre Vim plus agréable et efficace à utiliser.
Pour vous faire gagner du temps, j’ai décidé de mettre en ligne ce fichier. Chacun pourra l’étudier, l’utiliser, le modifier à sa convenance, voire proposer des améliorations.
Installation
Sous GNU/Linux, placez le contenu du fichier .vimrc ci-dessous dans le fichier ~/.vimrc.
Voici le fichier .vimrc personnalisé :
"=============================================================================
"
" Fichier de configuration Vim personnalisé : optimisé pour la programmation,
" enrichi de raccourcis clavier utiles, afin de mieux exploiter les
" fonctionnalités avancées de cet éditeur remarquable.
"
" Licence : MIT
"
" Auteur: Asher256
" Site: https://www.asher256.com/
"
"============================================================================
if exists('g:loaded_vimcfg')
finish
endif
let g:loaded_vimcfg = 1
if &compatible
set nocompatible
endif
if &compatible || v:version < 600
finish
endif
setglobal encoding=utf-8
setglobal fileencodings=utf-8
scriptencoding utf-8
let c_comment_strings=1
set autoread
set backspace=indent,eol,start
set belloff=all
set cmdheight=1
set conceallevel=2
set cpoptions+=n
set diffopt+=vertical
set display=truncate
set expandtab
set fileformats=unix,dos,mac
set formatoptions+=c
set formatoptions+=w
set formatoptions-=l
set formatoptions-=o
set formatoptions-=r
set helpheight=25
set history=400
set hlsearch
set infercase
set isfname-==
set laststatus=2
set lazyredraw
set mouse=nivc
set mousemodel=popup
set noautoindent
set noautowriteall
set nobackup
set nocindent
set noerrorbells
set nohidden
set noignorecase
set noincsearch
set noshowmatch
set noshowmode
set nosmartindent
set nosmarttab
set novisualbell
set nowrap
set nowrapscan
set nowriteany
set nrformats-=octal
set number
set relativenumber
set ruler
set scrolloff=0
set sessionoptions=blank,curdir,folds,help,tabpages,unix,slash
set shiftwidth=4
set shortmess+=mrcFIwxst
set showcmd
set showtabline=2
set sidescrolloff=5
set smartcase
set softtabstop=4
set spellsuggest=best
set splitbelow
set splitright
set startofline
set suffixes+=.a,.o,.pyc,.pyo
set suffixes=.bak,~,.swp,.swo
set t_vb=
set tabpagemax=30
set tabstop=4
set textwidth=0
set timeout
set ttyfast
set undofile
set undolevels=2000
set undoreload=10000
set viewoptions=folds,options,cursor,curdir,unix,slash
set winheight=5
set winwidth=10
if !has('nvim')
set printoptions=paper:letter
endif
if has('langmap') && exists('+langremap')
set nolangremap
endif
if v:version > 703 || v:version == 703 && has('patch541')
set formatoptions+=j
endif
if !has('gui_running') && &t_Co >= 256
set termguicolors
let &t_8f = "\<Esc>[38:2:%lu:%lu:%lum"
let &t_8b = "\<Esc>[48:2:%lu:%lu:%lum"
end
if &t_Co > 2 || has('gui_running')
if has('autocmd')
filetype plugin indent on
endif
if has('syntax') && !exists('g:syntax_on')
syntax enable
endif
endif
set linebreak
if exists('+breakindent')
set showbreak=
endif
runtime macros/matchit.vim
" vim:syntax=vim

