" ---------------------------------------------------------------------- " | 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= " é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 w :w imap w :w nmap q :wq imap q :wq map a :wa " Sauvegarder et exécuter le fichier courant nmap x :w:!./"%" " Édition rapide de vimrc avec +e map e :e! ~/.vim/vimrc """ Buffers " Gestion des splits map :split map :vsplit " Navigation " Détails sur les buffers: http://vim-fr.org/index.php/Buffer map t :bp map s :bn map b :b "Navigation splits map j j map h h map k k map l 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 nmap nmap nmap " Mode insertion: imap imap imap imap """""""""""""""""""""""""""""""""""""""""""""""" " Mapping - Raccourcis clavier """""""""""""""""""""""""""""""""""""""""""""""" "Désactive le surlignage des résultats d'une recherche en utilisant CTRL-n nnoremap :set hlsearch!:set hlsearch? "Ajoute une ligne avant le curseur sans passer en mode insertion nnoremap o "Ajoute une ligne après le curseur sans passer en mode insertion map O " Activer/désactiver la surbrillance des recherches avec F2 noremap :set hlsearch!:set hlsearch? " Activer/désactiver la correction avec F3 noremap :set spell!:set spell? " Activer/désactiver le mode collage noremap :set paste!:set paste? " Remap de Echap sur jj imap jj """""""""""""""""""""""""""""""""""""""""""""""" " 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 :NERDTreeToggle " Et n nmap n :NERDTreeToggle " 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 ,, c "map c imap " Commentaire plus sexy, mais impossible à décommenter map 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 d  "imap 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 ' "########################## " CTRL P : "########################## " https://github.com/kien/ctrlp.vim Bundle 'kien/ctrlp.vim' "########################## " undo-tree : "########################## " https://github.com/mbbill/undotree Bundle 'mbbill/undotree' " UndoTree map u :UndotreeToggle " 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 c :AutoCloseToggle "avance d'un caratere en mode insert (vim-autoclose -> plus besoin de fermer les (, [, {, ...) imap n l i "########################## " tagbar: "########################## " https://github.com/majutsushi/tagbar Bundle 'majutsushi/tagbar' " Open Tagbar: nmap t :TagbarToggle " 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 :TlistToggle ""map :TlistToogle "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 :tabnew " Changer d'onglet map :tabnext " Onglet suivant map :tabprevious " Se déplacer à l'onglet suivant map :tabnext " Se déplacer à l'onglet précédent map :tabprevious " Fermer l'onglet map :tabclose """"""""""""""""""""""""""""""""""""""""""""""""""" " Dictionnaire français """"""""""""""""""""""""""""""""""""""""""""""""""" set dictionary+=/usr/share/dict/french "Liste des propositions avec CTRL-X_CTRL-K ou xk imap 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 sf :setlocal spell spelllang=fr noremap se :setlocal spell spelllang=en noremap sn :setlocal nospell " 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 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 é :source ~/.vim/vimrc.bepo "################################ " 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 ch :DiffOrig "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 y:call system("xclip -i -selection clipboard", getreg("\"")):call system("xclip -i", getreg("\"")) " Coller le contenu du presse papier graphique depuis le mode normal "nmap :call setreg("\"",system("xclip -o -selection clipboard"))p "################################ " Lancer un navigateur internet "################################ """ Firefox " « vfd » cherche la définition du mot courant dans le TLFI vmap fd :!firefox "http://www.cnrtl.fr/lexicographie/" >& /dev/null " « vfs » cherche les synonymes du mot courant dans le TLFI vmap fs :!firefox "http://www.cnrtl.fr/synonymie/" >& /dev/null " « vfg » comme ci-dessus mais pour google vmap fg :!firefox "http://www.google.fr/search?hl=fr&q=&btnG=Recherche+Google&meta=" >& /dev/null "« vfw » comme ci-dessus mais pour wikipedia vmap fw :!firefox "http://fr.wikipedia.org/wiki/" >& /dev/null " « vfc » comme ci-dessus mais pour le conjugueur vmap fc :!firefox "http://www.leconjugueur.com/php5/index.php?v=" >& /dev/null " « vfo » ouvre l’url sur laquelle on se trouve dans firefox vmap fo :!dwb "" >& /dev/null & """ W3M " « vd » cherche la définition du mot courant dans le TLFI vmap d :!w3m "http://www.cnrtl.fr/lexicographie/" " « vs » cherche les synonymes du mot courant dans le TLFI vmap s :!w3m "http://www.cnrtl.fr/synonymie/" " « vg » comme ci-dessus mais pour google vmap g :!w3m "http://www.google.fr/search?hl=fr&q=&btnG=Recherche+Google&meta=" "« vw » comme ci-dessus mais pour wikipedia vmap w :!w3m "http://fr.wikipedia.org/wiki/" vmap sw :!dig +short txt ".wp.dg.cx" " « vc » comme ci-dessus mais pour le conjugueur vmap c :!w3m "http://www.leconjugueur.com/php5/index.php?v=" " « vo » ouvre l’url sur laquelle on se trouve vmap o :!w3m "" " « vo » lance Wordreference en -> fr vmap te :!w3m "http://www.wordreference.com/enfr/" " « vo » lance Wordreference fr -> en vmap tf :!w3m "http://www.wordreference.com/fren/"