Niniryoku

De Vim-fr

.vimrc

" Optimisations de base
set nocompatible                " Pas de compatibilité avec vi
set nohls                       " Pas de surlignement
set nobackup                    " Pas de sauvegarde
set autoindent                  " Autoindentation
set tabstop=8                   " Taille des tabulations à 8
set lcs=eol:¶,nbsp:%,tab:»\     " Caractères spéciaux affichés
set list                        " Afficher les caractères spéciaux
let python_highlight_all=1      " Syntaxe totale en python
let php_sql_query=1             " Coloration des requetes SQL en php
let php_htmlInStrings=1         " Coloration des balises html en php
"set mouse=a                     " Possibilité d'utiliser la souris
set foldmethod=marker           " Sauvegarder les plis
set cursorline                  " Afficher la ligne courante du curseur
hi  CursorLine term=NONE cterm=NONE ctermbg=7
set showcmd                     " Voir les demi commandes
set laststatus=2                " Ajoute une barre de status
 
" Coloration syntaxique
" Vala
autocmd BufRead *.vala set efm=%f:%l.%c-%[%^:]%#:\ %t%[%^:]%#:\ %m
autocmd BufRead *.vapi set efm=%f:%l.%c-%[%^:]%#:\ %t%[%^:]%#:\ %m
au BufRead,BufNewFile *.vala            setfiletype vala
au BufRead,BufNewFile *.vapi            setfiletype vala
let vala_comment_strings = 1
 
" Completion
" Contrôle + Espace pour l'auto completion
imap <Nul> <C-x><C-o>
au filetype html        set omnifunc=htmlcomplete#CompleteTags
au filetype css         set omnifunc=csscomplete#CompleteCSS
au filetype javascript  set omnifunc=javascriptcomplete#CompleteJS
au filetype c           set omnifunc=ccomplete#Complete
au filetype php         set omnifunc=phpcomplete#CompletePHP
au filetype ruby        set omnifunc=rubycomplete#Complete
au filetype sql         set omnifunc=sqlcomplete#Complete
au filetype python      set omnifunc=pythoncomplete#Complete
au filetype xml         set omnifunc=xmlcomplete#CompleteTags
set completeopt=menu,longest
 
" Autres réglages
let g:tex_flavor = "latex" " Coloration Latex
filetype plugin indent on
"au filetype python compiler pylint
 
" Optimisation Bépo
source ~/.vimrcbepo
 
" Commandes perso
command SudoW !sudo tee % > /dev/null

.vimrcbepo

" Source : http://bepo.fr/wiki/Vim
" {W} -> [É]
" ——————————
" On remappe W sur É :
noremap é w
noremap É W
" Corollaire, pour effacer/remplacer un mot quand on n’est pas au début (daé / laé).
" (attention, cela diminue la réactivité du {A}…)
noremapaw
noremap aÉ aW
" Pour faciliter les manipulations de fenêtres, on utilise {W} comme un Ctrl+W :
noremap w <C-w>
noremap W <C-w><C-w>
 
" [HJKL] -> {CTSR}
" ————————————————
" {cr} = « gauche / droite »
noremap c h
noremap r l
" {ts} = « haut / bas »
noremap t j
noremap s k
" {CR} = « haut / bas de l'écran »
noremap C H
noremap R L
" {TS} = « joindre / aide »
noremap T J
noremap S K
" Corollaire : repli suivant / précédent
noremap zs zj
noremap zt zk
 
" {HJKL} <- [CTSR]
" ————————————————
" {J} = « Jusqu'à »            (j = suivant, J = précédant)
noremap j t
noremap J T
" {L} = « Change »             (h = bloc, H = jusqu'à la fin de ligne)
noremap l c
noremap L C
" {H} = « Remplace »           (l = caractère, L = texte)
noremap h r
noremap H R
" {K} = « Substitue »          (k = caractère, K = ligne)
noremap k s
noremap K S
" Corollaire : correction orthographique
noremap ]k ]s
noremap [k [s
 
" Désambiguation de {g}
" —————————————————————
" ligne écran précédente / suivante (à l'intérieur d'une phrase)
noremap gs gk
noremap gt gj
" onglet précédant / suivant
noremap gb gT
noremap gé gt
" optionnel : {gB} / {gÉ} pour aller au premier / dernier onglet
noremap gB :exe "silent! tabfirst"<CR>
noremap:exe "silent! tablast"<CR>
" optionnel : {g"} pour aller au début de la ligne écran
noremap g" g0
 
" <> en direct
" ————————————
noremap « <
noremap » >
 
" Adaptation pour le multi-fenêtrage
noremap w« <C-w><
noremap w« <C-w>>

.vim/ftplugin/tex.vim

" Correction ortho latex
setlocal spell spelllang=fr
 
" Contrôle + E : Met dans un environnement
imap <C-E> <esc>yyPI\begin{<esc>A}<esc>tI\end{<esc>A}<esc>O
" Contrôle + F : Met dans une formule
imap <C-F> <esc>O\[<esc>to\]<esc>sA
" Pour les utilisateurs en AZERTY
"imap <C-E> <esc>yyPI\begin{<esc>A}<esc>jI\end{<esc>A}<esc>O
"imap <C-F> <esc>O\[<esc>jo\]<esc>sA
 
" Tapez ,p en insertion, et attendez qu'il le remplace par « \part{ curseur } »
imap ,p \part{}<LEFT>
imap ,s \section{}<LEFT>
imap ,ss \subsection{}<LEFT>
imap ,sss \subsubsection{}<LEFT>
imap ,pp \paragraph{}<LEFT>
imap ,spp \subparagraph{}<LEFT>
 
imap ,p- \part*{}<LEFT>
imap ,s- \section*{}<LEFT>
imap ,ss- \subsection*{}<LEFT>
imap ,sss- \subsubsection*{}<LEFT>
imap ,pp- \paragraph*{}<LEFT>
imap ,spp- \subparagraph*{}<LEFT>
 
imap ,em \emph{}<LEFT>
imap ,$ $$<LEFT>
 
imap ,ite \begin{itemize}<CR>\end{itemize}<ESC>O\item<SPACE>
imap ,it \item<SPACE>
 
imap ,o <ESC>o
imap ,O <ESC>O
 
set nocursorline

.vim/ftplugin/python.vim

setlocal tabstop=4
setlocal softtabstop=4
setlocal shiftwidth=4
setlocal smarttab
setlocal expandtab

.vimperatorrc

source ~/.vimrcbepo
 
map E gé
map I gb
 
noremap <C-r> <C-o>
noremap <C-h> <C-i>
 
noremap T <C-d>
noremap S <C-u>

Liens