vim/vimrc

729 lines
27 KiB
VimL
Executable File
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

" ----------------------------------------------------------------------
" | Fichiers de configuration de vim |
" | Emplacement : ~/.vim/vimrc |
" | Auteur : Gardouille |
" | Version : 1.12 |
" | |
" | ----------------------- Modification à apporter -------------------|
" | Modifications à apporter: |
" | - voir le pliage/dépliage (za, zm, zr, ...) |
" | - voir l'option d'encodage (encoding, ...) |
" | - remapper l'incrémentation sur un chiffre avec CTRL-A |
" | - permettre une incrémentation sur les lettres, hexa, ... |
" | en plus des chiffres |
" -------------------------------------------------------------------- |
" | |
" | --------------------------------------- Liens utiles ------------- |
" | Liens utiles: |
" | http://www.debian-fr.org/vim-t8605.html |
" | http://www.swaroopch.com/notes/Vim_fr:Table_des_Mati%C3%A8res |
" | http://www.rayninfo.co.uk/vimtips.html |
" | http://www.vim.org/tips/index.php |
" | http://linuxfr.org/news/vim-f%C3%AAte-son-20e%C2%A0anniversaire |
" | http://vimdoc.sourceforge.net/htmldoc/map.html#mapmode-n |
" ----------------------------------------------------------------------
""""""""""""""""""""""""""""""""""""""""""""""""
" Diverses options
""""""""""""""""""""""""""""""""""""""""""""""""
set background=dark " fond sombre
" Thème de couleur par défaut:
"colorscheme peachpuff
" Autre thèmes possibles: desert, delek, zellner, torte, elflord, evening, pablo, morning, peachpuff, blue, murphy, ron, zellner, darkblue, desert, koehler, and shine
colorscheme torte
"liste des couleur : ll /usr/share/vim/vim7*/colors/
syntax on " activation de la coloration syntaxique
set number " numérotation des lignes
"set autoindent " indentation automatique avancée
"set smartindent " indentation plus intelligente
"set backspace=indent,eol,start " autorisation du retour arrière
set bs=2 " redéfinition du backspace
set history=50 " fixe l'historique à 50 commandes maxi
set ruler " affiche la position courante au sein du fichier
set showcmd " affiche la commande en cours
set shiftwidth=2 " taille des tabulations (nb d'espace)
set softtabstop=2 " taille des tabulations mixtes (tabulations et espaces)
set tabstop=2 " taille des tabulations à l'affichage (nb d'espace)
set expandtab " transforme les tabulations en espaces
set showmatch " vérification présence (, [ ou { à la frappe de ), ] ou }
filetype plugin indent on " détection automatique du type de fichier
autocmd FileType text setlocal textwidth=80 " les fichiers de type .txt sont limités à 80 caractères par ligne
autocmd FileType tex setlocal textwidth=80 " les fichiers de type .tex sont limités à 80 caractères par ligne
set fileformats=unix,mac,dos " gestion des retours chariot en fonction du type de fichier
set hlsearch " surligne les résultats de la recherche
" set nohls " ne pas surligner les résultats de la recherche
set incsearch " recherche en même temps que la saisie
set ignorecase " ne pas prendre en compte la casse pour les recherches
"set noic " Prendre en compte la casse pour les recherches
set smartcase " recherche respectueuse de la case quand une majuscule est saisie
set cursorline " met en avant la ligne courante
"set cursorcolumn " met en avant la colonne courante
set so=2 " Place le curseur sur la 2ème ligne lors de mouvements verticaux
set pt=<F11> " évite la double indentation lors de c/c
set cpoptions+=$ " ajoute un $ pour indiquer la fin d'un remplacement
set title " Modifier le titre du terminal (ne semble pas fonctionner avec screen)
set autochdir " Modifie le répertoire courant pour vim en fonction du fichier ouvert
set wildignore=*.swp,*.bak " Liste des fichiers ignorés lors de l'auto-complétion
set virtualedit=all " Permet de se déplacer la ou il n'y a pas de caractères
set formatoptions+=awt
"set colorcolumn=81 " Coloration bar caractère 80
set wrapmargin=0
" Encodage par défaut des buffers et des fichiers
set encoding=utf-8
set fileencoding=utf-8
" Path pour la recherche de fichier avec :find, :sfind et :tabfind
" :find ouvrira à la place du fichier en cours le fichier trouvé
" :sfind splittera l'écran
" :tabfind ouvrira le fichier dans un nouvel onglet
set path=.,/usr/include,/usr/local/include
" Couleur des éléments
"hi StatusLine ctermfg=black ctermbg=green
"hi TabLineFill ctermfg=black ctermbg=grey
"hi TabLine ctermfg=black ctermbg=red
"hi TabLineSel ctermfg=green ctermbg=black
""""""""""""""""""""""""""""""""""""""""""""""""
" Touche MapLeader :
""""""""""""""""""""""""""""""""""""""""""""""""
" Activation de la touche mapleader qui permet de faire des combinaisons
" supplémentaires
let mapleader = ","
let g:mapleader = ","
" Sauvegarde rapide
nmap <leader>w :w<cr>
imap <leader>w <esc>:w<cr>
nmap <leader>q :wq<cr>
imap <leader>q <esc>:wq<cr>
map <leader>a <Esc>:wa<CR>
" Sauvegarder et exécuter le fichier courant
nmap <leader>x :w<cr>:!./"%"<cr>
" Édition rapide de vimrc avec <leader>+e
map <leader>e :e! ~/.vim/vimrc<cr>
""" Buffers
" Gestion des splits
map <C-w><Space> :split<Space>
map <C-w><Return> :vsplit<Space>
" Navigation
" Détails sur les buffers: http://vim-fr.org/index.php/Buffer
map <leader>t :bp<cr>
map <leader>s :bn<cr>
map <leader>b <Esc>:b<Space>
"Navigation splits
map <leader>j <C-w>j
map <leader>h <C-w>h
map <leader>k <C-w>k
map <leader>l <C-w>l
""""""""""""""""""""""""""""""""""""""""""""""""
" UN PEU D'EXERCICE
" H pour <-
" L pour ->
" J pour flèche bas
" K pour flèche haut
""""""""""""""""""""""""""""""""""""""""""""""""
"Désactiver les flèches
" Mode commande
nmap <right> <esc>
nmap <left> <esc>
nmap <up> <esc>
nmap <down> <esc>
" Mode insertion:
imap <right> <esc>
imap <left> <esc>
imap <up> <esc>
imap <down> <esc>
""""""""""""""""""""""""""""""""""""""""""""""""
" Mapping - Raccourcis clavier
""""""""""""""""""""""""""""""""""""""""""""""""
"Désactive le surlignage des résultats d'une recherche en utilisant CTRL-n
nnoremap <silent> <C-N> :set hlsearch!<cr>:set hlsearch?<cr>
"Ajoute une ligne avant le curseur sans passer en mode insertion
nnoremap <Space><Enter> o<ESC>
"Ajoute une ligne après le curseur sans passer en mode insertion
map <Enter> O<ESC>
" Activer/désactiver la surbrillance des recherches avec F2
noremap <F2> :set hlsearch!<cr>:set hlsearch?<cr>
" Activer/désactiver la correction avec F3
noremap <F3> :set spell!<cr>:set spell?<cr>
" Activer/désactiver le mode collage
noremap <F5> :set paste!<cr>:set paste?<cr>
" Remap de Echap sur jj
imap jj <ESC>
""""""""""""""""""""""""""""""""""""""""""""""""
" Vim-Scripts :
""""""""""""""""""""""""""""""""""""""""""""""""
if !filewritable ($HOME."/.vim/bundle") " Si le répertoire n'existe pas
call mkdir($HOME."/.vim/bundle", "p") " Création du répertoire de sauvegarde
endif
"##########################
" Vundle :
"##########################
" https://github.com/gmarik/vundle
" IF not available, use:
" git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle
set nocompatible " be iMproved
filetype off " required!
set rtp+=~/.vim/bundle/vundle/
call vundle#rc()
" let Vundle manage Vundle
" required!
Bundle 'gmarik/vundle'
" For SnipMate
Bundle "MarcWeber/vim-addon-mw-utils"
Bundle "tomtom/tlib_vim"
Bundle "garbas/vim-snipmate"
" Optional:
Bundle "honza/vim-snippets"
filetype plugin indent on " required!
"
"
" see :h vundle for more details or wiki for FAQ
" NOTE: comments after Bundle command are not allowed..
"##########################
" Pathogen :
"##########################
" http://github.com/tpope/vim-pathogen
Bundle "tpope/vim-pathogen"
execute pathogen#infect()
"##########################
" Nerd_tree :
"##########################
" https://github.com/scrooloose/nerdtree
" Nerd_tree - Permet d'afficher une arborescence du répertoire courant.
Bundle "scrooloose/nerdtree"
" Raccourcis de la commande avec F10
map <F10> :NERDTreeToggle<cr>
" Et <leader>n
nmap <leader>n :NERDTreeToggle<cr>
" Placer le volet à droite
let NERDTreeWinPos='right'
"##########################
" Nerd_commenter :
"##########################
" https://github.com/scrooloose/nerdcommenter
" Mettre en commentaire une ligne
" Également disponible dans le paquet vim-scripts
Bundle "scrooloose/nerdcommenter"
" Commentaire basique, mais permet également de décommenter (Attention, il y a
" un espace avec le C!)
" Commenter/décommenter une ligne
map ,, <leader>c<space>
"map <F7> <Leader>c
imap <F7> <esc><F7>
" Commentaire plus sexy, mais impossible à décommenter
map <F8> <Leader>cs
" Note, utilisé le mode visuel ligne SHIFT+V ou le mode visuel bloc CTRL+V
"##########################
" Supertab-continued :
"##########################
" http://github.com/ervandew/supertab
" SuperTab offre une autocomplétion amélioré.
" http://www.vim.org/scripts/script.php?script_id=182
Bundle "ervandew/supertab"
" CTRL-N en mode insertion pour rechercher le suivant
" CTRL-X - CTRL-L: rechercher une ligne complète à partir du début
" CTRL-X - CTRL-K: rechercher dans le dictionnaire
" Permet notamment de compléter avec des noms de variables déjà définies.
" Pas de configuration spécifiques
"imap <leader>d 
"imap <leader>l 
"##########################
" Syntastic :
"##########################
" https://github.com/scrooloose/syntastic
Bundle "scrooloose/syntastic"
" Won't work ...
let g:syntastic_mode_map = { 'mode': 'active',
\ 'active_filetypes': ['ruby', 'php'],
\ 'passive_filetypes': ['puppet'] }
"let g:syntastic_puppet_checkers = ['puppet']
let g:syntastic_puppet_checkers = ['puppetlint']
"##########################
" Neocomplcache :
"##########################
" http://github.com/Shougo/neocomplcache
Bundle "Shougo/neocomplcache"
" Use neocomplcache.
let g:neocomplcache_enable_at_startup = 1
" Set minimum syntax keyword length.
let g:neocomplcache_min_syntax_length = 3
let g:neocomplcache_lock_buffer_name_pattern = '\*ku\*'
"##########################
" Puppet :
"##########################
" github.com/rodjek/vim-puppet.git
Bundle "rodjek/vim-puppet"
"##########################
" Tabular :
"##########################
" https://github.com/godlygeek/tabular
Bundle "godlygeek/tabular"
"##########################
" Airline :
"##########################
" https://github.com/bling/vim-airline
Bundle 'bling/vim-airline'
" Toujours afficher la barre de statut
set laststatus=2
" Smarter tab line
let g:airline#extensions#tabline#enabled = 1
"let g:airline#extensions#tabline#left_sep = 'ˇ'
"let g:airline#extensions#tabline#left_alt_sep = 'v'
let g:airline_powerline_fonts = 1
"let g:airline_theme='molokai'
"let g:airline_theme='lucius'
let g:airline_theme='monochrome'
"##########################
" Airline :
"##########################
" https://github.com/edkolev/tmuxline.vim
"Bundle 'edkolev/tmuxline.vim'
""""""""""""""""""""""""""""""""""""""""""""""""
" Paramétrage de exuberant-ctags
"http://ngressier.developpez.com/articles/vim/vim-plugin-taglist/#LC
"Indispensable pour le bon fonctionnement du plugin Taglist
"""""""""""""""""""""""""""""""""""""""""""""""""
let Tlist_Ctags_Cmd = '/usr/bin/ctags'
"##########################
" Showmark :
"##########################
" https://github.com/jacquesbh/vim-showmarks
Bundle 'jacquesbh/vim-showmarks'
" Show fucking marks
noremap ' :ShowMarksOnce<cr> '
"##########################
" CTRL P :
"##########################
" https://github.com/kien/ctrlp.vim
Bundle 'kien/ctrlp.vim'
"##########################
" undo-tree :
"##########################
" https://github.com/mbbill/undotree
Bundle 'mbbill/undotree'
" UndoTree
map <leader>u :UndotreeToggle<CR> " Mapping pour l'activer/désactiver
"##########################
" auto-close :
"##########################
" Fermeture automatique des (, [, {, ...
" https://github.com/Townk/vim-autoclose
Bundle 'Townk/vim-autoclose'
" Disable auto-close
imap <silent> <leader>c <Esc>:AutoCloseToggle<CR>
"avance d'un caratere en mode insert (vim-autoclose -> plus besoin de fermer les (, [, {, ...)
imap <leader>n <esc>l i
"##########################
" tagbar:
"##########################
" https://github.com/majutsushi/tagbar
Bundle 'majutsushi/tagbar'
" Open Tagbar:
nmap <leader>t :TagbarToggle<CR>
" Manage Puppet file (.pp):
let g:tagbar_type_puppet = {
\ 'ctagstype': 'puppet',
\ 'kinds': [
\'c:class',
\'s:site',
\'n:node',
\'d:definition'
\]
\}
"##########################
" fugitive:
"##########################
" https://github.com/tpope/vim-fugitive
"Bundle 'tpope/vim-fugitive'
"##########################
" openssl:
"##########################
" https://github.com/
"Bundle 'openssl.vim'
"##########################
" Exuberant-ctags:
"##########################
" https://github.com/b4n/ctags or debian package for Sid is SVN based
""""""""""""""""""""""""""""""""""""""""""""""""
" Paramétrage du plugin Taglist
"http://ngressier.developpez.com/articles/vim/vim-plugin-taglist/#LD
"Indispensable pour la deuxième status line définie dans ce fichier
"Si première utilisation, faire un vim dans le dossier ~/.vim/doc/ et faire
":helptags" pour activer le plugin
""""""""""""""""""""""""""""""""""""""""""""""""
"Mappage de l'ouverture et fermeture de la fenêtre des tags avec la touche F4
"nnoremap <silent> <F4> :TlistToggle<CR>
""map <F4> :TlistToogle<CR>
"let Tlist_WinWidth = 50
"let Tlist_Process_File_Always = 1 " activation permanente du plugin pour la barre de statut
"let Tlist_Exit_OnlyWindow = 1 " vim se ferme si il reste uniquement la fenêtre des tags
"let Tlist_Use_Right_Window = 1 " affiche les tags sur le côté droit de l'écran
""""""""""""""""""""""""""""""""""""""""""""""""
" Gestion des onglets
""""""""""""""""""""""""""""""""""""""""""""""""
" Nouvel onglet
map <C-t> :tabnew<cr>
" Changer d'onglet
map <tab> :tabnext<cr>
" Onglet suivant
map <S-tab> :tabprevious<cr>
" Se déplacer à l'onglet suivant
map <C-left> :tabnext<cr>
" Se déplacer à l'onglet précédent
map <C-right> :tabprevious<cr>
" Fermer l'onglet
map <C-x> :tabclose<cr>
"""""""""""""""""""""""""""""""""""""""""""""""""""
" Dictionnaire français
"""""""""""""""""""""""""""""""""""""""""""""""""""
set dictionary+=/usr/share/dict/french
"Liste des propositions avec CTRL-X_CTRL-K ou <leader>xk
imap <leader>xk 
"""""""""""""""""""""""""""""""""""""""""""""""""""
" Correction orthographique
"-------------En mode INSERTION :------------------
"Liste des propositions : CTRL-X_s
"-------------En mode COMMANDE :-------------------
"Liste des propositions : z=
"Prochain mot mal orthographié : ]s
"Précédent mot mal orthographié : [s
"Ajouter un mot au dictionnaire: zg
"""""""""""""""""""""""""""""""""""""""""""""""""""
if has("spell")
" La commande z= affiche 10 suggestions. En mode insertion: CRTL-X_s
set spellsuggest=10
" On règle les touches d'activation manuelle de la correction orthographique
noremap <leader>sf :setlocal spell spelllang=fr <CR>
noremap <leader>se :setlocal spell spelllang=en <CR>
noremap <leader>sn :setlocal nospell <CR>
" On active automatiquement le mode spell pour les fichiers texte et LaTeX
autocmd BufEnter *.txt,*.tex set spell
" On applique le dictionnaire français pour tous les types de fichiers
autocmd BufEnter * set spelllang=fr
endif
if !filewritable ($HOME."/.vim/spell") " Si le répertoire n'existe pas
call mkdir($HOME."/.vim/spell", "p") " Création du répertoire de sauvegarde
endif
" Choix de la langue de l'aide
set helplang=fr
" Liste des abréviations textes:
iabbrev cad c'est-à-dire
iabbrev svp s'il-vous-plaît
iabbrev stp s'il-te-plaît
iabbrev pcq parce que
"""""""""""""""""""""""""""""""""""""""""""""""""""
" Modification de la barre de statut
"""""""""""""""""""""""""""""""""""""""""""""""""""
" Pas besoin de plugin
"set laststatus=2 " Affiche la barre de statut quoi qu'il en soit (0 pour la masquer, 1 pour ne l'afficher que si l'écran est divise)
"if has("statusline")
"set statusline=
"set statusline+=%<
"set statusline+=[%02n%H%M%R%W] " Numéro du buffer (2 digit), and flags
"set statusline+=\ %m " modified flag '[+]' if modifiable
"set statusline+=%f " Nom du fichier
"set statusline+=%r " read only flag '[RO]'
"set statusline+=%h " help flag '[Help]'
""set statusline+=%1*\ [FORMAT=%{&ff}]%0* " Format du fichier
"set statusline+=\ [FORMAT=%{&ff}] " Format du fichier
"set statusline+=\ [TYPE=%Y] " Type de fichier
"set statusline+=\ [ENC=%{&fileencoding}] " Encodage du fichier
"set statusline+=\ [POS=%04l,%03v] " Position dans le fichier ligne/colonne
"set statusline+=%= " seperate between right- and left-aligned
"set statusline+=\ [%p%%] " Position dans le fichier en %
"set statusline+=\ [%l/%L] " Nombre de ligne dans le fichier
""set statusline+=%1*%y%*%* " file type
"set statusline+=%{&hlsearch?'+':'-'} " Résultat de recherche surligné (+: y; -: n)
"set statusline+=%{&paste?'=':'\ '}
"set statusline+=%{&wrap?'<':'>'}
"elseif has("cmdline_info")
"set ruler " Affiche la position du curseur en bas a gauche de l'écran
"endif
"""""""""""""""""""""""""""""""""""""""""""""""""""
" Création des répertoires
"""""""""""""""""""""""""""""""""""""""""""""""""""
"################################
" Centralisation des backups :
"################################
if !filewritable ($HOME."/.vim/backup") " Si le répertoire n'existe pas
call mkdir($HOME."/.vim/backup", "p") " Création du répertoire de sauvegarde
endif
" On définit le répertoire de sauvegarde
set backupdir=$HOME/.vim/backup
" On active le comportement précédemment décrit
set backup
"################################
" Undo persistant :
"################################
" !!! Attention à la taille des fichiers de sauvegarde !!!
if has("persistent_undo")
if !filewritable ($HOME."/.vim/undodir") " Si le répertoire n'existe pas
call mkdir($HOME."/.vim/undodir", "p") " Création du répertoire de sauvegarde
endif
" On définit le répertoire de sauvegarde
set undodir=$HOME/.vim/undodir " répertoire où seront stockés les modifications
set undofile " activation du undo persistant
set undolevels=100 " nombre maximum de changements sauvegardés
set undoreload=100 " nombre maximum de lignes sauvegardées
endif
"################################
" Répertoire de chargement automatique des scripts
"################################
if !filewritable ($HOME."/.vim/autoload") " Si le répertoire n'existe pas
call mkdir($HOME."/.vim/autoload", "p") " Création du répertoire de chargement automatique
endif
"################################
" Répertoire pour les fichiers temporaires
"################################
" Placer les fichiers .swp dans un autre répertoire
if !filewritable ($HOME."/.vim/tmp") " Si le répertoire n'existe pas
call mkdir($HOME."/.vim/tmp", "p") " Création du répertoire temporaire
endif
set directory=$HOME/.vim/tmp
"""""""""""""""""""""""""""""""""""""""""""""""""""
" Gestion des templates
"""""""""""""""""""""""""""""""""""""""""""""""""""
" Récupérer le nom du fichier
" :!echo % (renvoie /Documents/fichier.tex )
" :!echo %:r (renvoie /Documents/fichier )
" :!echo %:e (renvoie tex )
" :!echo %:t (renvoie fichier.tex )
" :!echo %:p (renvoie /home/limax/Documents/fichier.tex )
" :!echo %:t (renvoie fichier.tex )
" :!echo %:h (renvoie Documents)
if has("autocmd")
augroup templates
autocmd!
autocmd BufNewFile *.html,*.htm call Template('html')
autocmd BufNewFile *.py call Template('py')
autocmd BufNewFile *.sh,*.bat call Template('sh')
autocmd BufNewFile *.c,*.cpp,*.sc,*.h call Template('c')
autocmd BufNewFile *.spr call Template('spr')
autocmd BufNewFile *.rec call Perso_recette('rec')
autocmd BufNewFile *.tex call Template('tex')
autocmd BufNewFile *.pp call Template('pp')
augroup END
function! Template(type)
execute "0r ~/.vim/templates/skeleton.".a:type
execute "%s/!!FICHIER!!/".expand("%:t")."/e"
execute "%s/!!DATE!!/".strftime("%Y-%m-%d")."/e"
execute "%s/!!SQUELETTE!!/".expand("%:t:r")."/g"
execute "normal! 10G$"
endfunction
function! Perso_recette(type)
execute "0r ~/.vim/templates/recette.tex"
execute "%s/!!FICHIER!!/".expand("%:t")."/e"
execute "%s/!!DATE!!/".strftime("%d-%m-%Y")."/e"
execute "normal! 10G$"
endfunction
endif
"""""""""""""""""""""""""""""""""""""""""""""""""""
" Actions Automatiques
"""""""""""""""""""""""""""""""""""""""""""""""""""
"################################
" Changer les droits d'un fichier
"################################
"""""""""""""""""""""""""""""""""""""""""""""""""""
" donner des droits d'exécution si le fichier commence par #! et contient
" /bin/ dans son chemin
function ModeChange()
if getline(1) =~ "^#!"
if getline(1) =~ "/bin/"
silent !chmod a+x <afile>
endif
endif
endfunction
au BufWritePost * call ModeChange()
"################################
" Espaces - caractères superflus
"################################
" Afficher '¬' pour indiquer une fin de ligne
" Afficher '\' une fin de ligne avec des espaces en trop
set list
set listchars=eol,trail:\
" Afficher les espaces superflus et les tabulations en gris clair
highlight ExtraWhitespace ctermbg=lightgray guibg=lightred
match ExtraWhitespace /\s\+$\|\t/
" Suppression automatique des espaces superflus (avant sauvegarde)
autocmd BufWritePre * :%s/\s\+$//e
"################################
" Configuration BÉPO
"################################
" Si la disposition bépo est détectée, charger automatiquement le fichier
if !empty(system("setxkbmap -print|grep bepo"))
source ~/.vim/vimrc.bepo
endif
" Chargement manuel pour les machines ne disposant pas de setxkbmap (serveurs)
map <leader>é :source ~/.vim/vimrc.bepo<cr>
"################################
" Conserver emplacement curseur
"################################
set viminfo='10,\"100,:20,%,n~/.viminfo
au BufReadPost * if line("'\"") > 0|if line("'\"") <= line("$")|exe("norm '\"")|else|exe "norm $"|endif|endif
" Différences depuis le debut de l'edition
"if !exists(":DiffOrig")
" La commande suivante permet de comparer le fichier avec son ancien etat
" (au moment de l'ouverture dans Vim).
"command DiffOrig vertical new | set buftype=nofile | r # | 0d_ |
"diffthis
"\| wincmd p | diffthis
" Mapping de la commande precedente
"noremap <Leader>ch <Esc> :DiffOrig<CR>
"endif
"################################
" Recharger vimrc après modif
"################################
if has("autocmd")
autocmd! bufwritepost vimrc source ~/.vim/vimrc
endif
""""""""""""""""""""""""""""""""""""""""""""""""
" Chargement des types de fichiers
""""""""""""""""""""""""""""""""""""""""""""""""
autocmd BufEnter *.txt set filetype=text
"""""""""""""""""""""""""""""""""""""""""""""""""""
" Actions Manuelles
"""""""""""""""""""""""""""""""""""""""""""""""""""
"################################
" Presse Papier
"################################
set clipboard=autoselect " Le texte sélectionné en mode visuel est collé dans le presse-papier PRIMARY
" Copier vers le presse papier graphique avec CTRL-C en mode visuel
vmap <C-c> y:call system("xclip -i -selection clipboard", getreg("\""))<CR>:call system("xclip -i", getreg("\""))<CR>
" Coller le contenu du presse papier graphique depuis le mode normal
"nmap <C-v> :call setreg("\"",system("xclip -o -selection clipboard"))<CR>p
"################################
" Lancer un navigateur internet
"################################
""" Firefox
" « v<leader>fd » cherche la définition du mot courant dans le TLFI
vmap <leader>fd :<C-U>!firefox "http://www.cnrtl.fr/lexicographie/<cword>" >& /dev/null<CR><CR>
" « v<leader>fs » cherche les synonymes du mot courant dans le TLFI
vmap <leader>fs :<C-U>!firefox "http://www.cnrtl.fr/synonymie/<cword>" >& /dev/null<CR><CR>
" « v<leader>fg » comme ci-dessus mais pour google
vmap <leader>fg :<C-U>!firefox "http://www.google.fr/search?hl=fr&q=<cword>&btnG=Recherche+Google&meta=" >& /dev/null<CR><CR>
"« v<leader>fw » comme ci-dessus mais pour wikipedia
vmap <leader>fw :<C-U>!firefox "http://fr.wikipedia.org/wiki/<cword>" >& /dev/null<CR><CR>
" « v<leader>fc » comme ci-dessus mais pour le conjugueur
vmap <leader>fc :<C-U>!firefox "http://www.leconjugueur.com/php5/index.php?v=<cword>" >& /dev/null<CR><CR>
" « v<leader>fo » ouvre lurl sur laquelle on se trouve dans firefox
vmap <leader>fo :<C-U>!dwb "<cfile>" >& /dev/null &<CR><CR>
""" W3M
" « v<leader>d » cherche la définition du mot courant dans le TLFI
vmap <leader>d :<C-U>!w3m "http://www.cnrtl.fr/lexicographie/<cword>" <CR>
" « v<leader>s » cherche les synonymes du mot courant dans le TLFI
vmap <leader>s :<C-U>!w3m "http://www.cnrtl.fr/synonymie/<cword>" <CR>
" « v<leader>g » comme ci-dessus mais pour google
vmap <leader>g :<C-U>!w3m "http://www.google.fr/search?hl=fr&q=<cword>&btnG=Recherche+Google&meta=" <CR>
"« v<leader>w » comme ci-dessus mais pour wikipedia
vmap <leader>w :<C-U>!w3m "http://fr.wikipedia.org/wiki/<cword>" <CR>
vmap <leader>sw :<C-U>!dig +short txt "<cword>.wp.dg.cx" <CR>
" « v<leader>c » comme ci-dessus mais pour le conjugueur
vmap <leader>c :<C-U>!w3m "http://www.leconjugueur.com/php5/index.php?v=<cword>" <CR>
" « v<leader>o » ouvre lurl sur laquelle on se trouve
vmap <leader>o :<C-U>!w3m "<cfile>" <CR>
" « v<leader>o » lance Wordreference en -> fr
vmap <leader>te :<C-U>!w3m "http://www.wordreference.com/enfr/<cword>" <CR>
" « v<leader>o » lance Wordreference fr -> en
vmap <leader>tf :<C-U>!w3m "http://www.wordreference.com/fren/<cword>" <CR>