Le but de ce concours est simple: proposez vos plus beaux ~/.vimrc, et devenez celeb^W et faites avancer la connaissance de chacun de ce merveilleux éditeur.
On votera samedi soir par SMS ou sur la tribune pour élire le vainqueur.
pourquoi faire compliqué quand on peut faire simple :
set nocompatible
set bs=2
set ts=2
set sw=2
set columns=80
"set background=dark
set nobk
set ruler
set noexpandtab
syntax on
set modelines=0
silent !dcop $KONSOLE_DCOP_SESSION renameSession %
charité bien ordonnée...
[jeremy@inspiron:~/]$ cat ~/.vimrc
syntax on
set encoding=latin-1
set mouse=a
set nu " Affiche les numeros de ligne
set nocompatible " Utilise les défauts Vim (bien mieux !)
set bs=2 " autorise l'effacement de tout en mode insertion
set ai " toujours utiliser l'autoindentation
set history=50 " Conserve 50 lignes d'historique des commandes
set ruler " Montre toujours la position du curseur
set tabstop=3
set wc= " autocompletion
set modeline
set cin
set wildmenu
set directory=/tmp
if has("autocmd")
"78 car sur 1 ligne max pour les mails
autocmd BufRead .followup,.article*,.letter,/tmp/mutt*,*.txt set tw=78
augroup cprog
au!
autocmd FileType * set formatoptions=tcql nocindent comments&
autocmd FileType c,cpp set formatoptions=croql cindent comments=sr:/*,mb:*,el:*/,://
"autocmd FileType php set expandtab shiftwidth=4 softtabstop=4 tabstop=4
augroup END
endif
" Macros
map 0i/* $a */
map 0iprintf('$a');
Je rajouterais
" mettre les fichiers temporaires toto.txt~ dans $HOME/tmp
" Il va de soi qu'il faut d'abord le créer
set backupdir=$HOME/tmp
" Rendre facile d'éditer / source le .vimrc
" idem pour éditer le .bashrc pendant qu'on y est
" ,s SOURCER ; ,e EDITER ; ,b BASHRC
nmap ,s :source $HOME/.vimrc
nmap ,e :drop $HOME/.vimrc
nmap ,b :drop $HOME/.bashrc
" gvim fait un très bon lecteur de pages Man avec ,m
" remplacez XXX par Ctrl-V
nmap ,m :drop manXXX:set filetype=manXXXX:Man
if has("autocmd")
...
endif
Ah non, pas les autocommandes !
Depuis la version 6, il y a une manière bien plus propre de faire
celà : le répertoire /.vim
/home/jmfayard/.vim
|-- doc
| |-- latex-suite.txt *1*
| `-- [... autres fichiers d'aides au format de l'aide en ligne de VIM.. ]
|-- filetype.vim [... définir nos propres types de fichiers...]
|-- ftplugin
| |-- cpp.vim [... réglages spécifiques aux fichiers c++...]
| |-- html_a.vim
| |-- html_jm.vim
| |-- mail_jm.vim
| |-- [... autres réglagles spécifiques à un type de fichier...]
|-- indent
| `-- tex.vim [...fait-partie de latex-suite , indentation pour le langage tex...]
|
|-- plugin [... fonctionnalités supplémentaires ...]
| |-- a.vim [...*2* simple et indispensable : alterne entre les fichiers
| toto.h/toto.c ou toto.adb/toto.ads , ...]
| |-- info.vim [...*3* pour lire les pages info, comme dans emacs..]
| |-- matchit.vim [... ...]
| |-- taglist.vim [...*4* indispensable pour circuler aisément dans un source...]
| `-- vimspell.vim [...*5* interface avec ispell/aspell à la word...]
|
|-- syntax
| |-- dada.vim [...la coloration syntaxique pour un langage
...pour lequel j'ai écrit un compilateur...]
Vous comprenez le principe : des réglages en fonction de la valeur de :set ft?
Exemples :
$ cat ~/.vim/ftplugin/html_a.vim
" Il y a beaucoup d'indentations en HTML
setlocal tabstop=2 shiftwidth=2
" Je n'aime pas les commentaires en HTML
abbreviate /* <!--
ab */ --> $ cat ~/.vim/ftplugin/mail_jm.vim
setlocal textwidth=72 " Là, t'avais raison
setlocal paste " voir :help paste
filetype.vim me permet d'assigner le type de fichier dada
pour les fichiers sources de mon langage dada. $ cat .vim/filetype.vim
augroup filetypedetect
au! BufRead,BufNewFile *.dada setfiletype dada
augroup END
Mince, j'ai oublié, pour matchit.vim,
il s'agit d'un plugin livré avec la traduction, mais qui n'est pas activé
par défaut.
Read The Friendly Manuel avec :help matchit parce que
c'est mieux expliqué que je ne pourrais le faire.
C'est très différent.
Par défaut, vim est 100% compatible avec l'horrible VI
Dès qu'un fichier .vimrc existe, même s'il est vide, l'option :set nocompatible est fixée, d'où d'innombrables
améliorations.
Moi j'ai aussi :
"Complétion du nom de fichier à la BASH quand on fait ':e [Tab]'
set wildmode=longest:list
Et puis pour le "multi-fenêtrage" :
"" F6 pour naviguer entre les fenêtres
map <C-W>w
imap <C-W>wi
"" F5 pour réduire la fenêtre en cours (Shift F5 si split vertical)
map <C-W>-
imap <C-W>-i
map <S-F5> <C-W><
imap <S-F5> <C-W><i
"" F7 pour agrandir la fenêtre en cours (Shift F5 si split vertical)
map <C-W>+
imap <C-W>+i
map <S-F7> <C-W>>
imap <S-F7> <C-W>>i
Pour la compile et la recherche:
"" Enregistre avant compilation, grep...
set autowrite
"" Navigation dans les erreurs (make et grep)
map :cprev
imap :cprevi
map :cnext
imap :cnexti
Et pour indenter sans se prendre la tête (Sélection en mode visual puis '>' ou '<'):
:vnoremap < <gv
:vnoremap > >gv
La complétion intelligente avec [Tab]:
function InsertTabWrapper()
let col = col('.') - 1
if !col || getline('.')[col - 1] !~ '\k'
return "\"
else
return "\<c-p>"
endif
endfunction
inoremap <c-r>=InsertTabWrapper()
Par contre j'aimerais bien savoir comment faire en sorte que cette complétion s'arrête dès qu'il y a ambiguïté au lieu de choisir la première possibilité. Une idée ?
# Re: Coucours de vimrc
Posté par Gauthier Monserand (site web personnel) . Évalué à 1.
# Re: Coucours de vimrc
Posté par sToR_K . Évalué à 1.
[^] # Re: Coucours de vimrc
Posté par jmfayard . Évalué à 4.
" mettre les fichiers temporaires toto.txt~ dans $HOME/tmp
" Il va de soi qu'il faut d'abord le créer
set backupdir=$HOME/tmp
" Rendre facile d'éditer / source le .vimrc
" idem pour éditer le .bashrc pendant qu'on y est
" ,s SOURCER ; ,e EDITER ; ,b BASHRC
nmap ,s :source $HOME/.vimrc
nmap ,e :drop $HOME/.vimrc
nmap ,b :drop $HOME/.bashrc
" gvim fait un très bon lecteur de pages Man avec ,m
" remplacez XXX par Ctrl-V
nmap ,m :drop manXXX:set filetype=manXXXX:Man
if has("autocmd")
...
endif
Ah non, pas les autocommandes !
Depuis la version 6, il y a une manière bien plus propre de faire
celà : le répertoire /.vim
/home/jmfayard/.vim
|-- doc
| |-- latex-suite.txt *1*
| `-- [... autres fichiers d'aides au format de l'aide en ligne de VIM.. ]
|-- filetype.vim [... définir nos propres types de fichiers...]
|-- ftplugin
| |-- cpp.vim [... réglages spécifiques aux fichiers c++...]
| |-- html_a.vim
| |-- html_jm.vim
| |-- mail_jm.vim
| |-- [... autres réglagles spécifiques à un type de fichier...]
|-- indent
| `-- tex.vim [...fait-partie de latex-suite , indentation pour le langage tex...]
|
|-- plugin [... fonctionnalités supplémentaires ...]
| |-- a.vim [...*2* simple et indispensable : alterne entre les fichiers
| toto.h/toto.c ou toto.adb/toto.ads , ...]
| |-- info.vim [...*3* pour lire les pages info, comme dans emacs..]
| |-- matchit.vim [... ...]
| |-- taglist.vim [...*4* indispensable pour circuler aisément dans un source...]
| `-- vimspell.vim [...*5* interface avec ispell/aspell à la word...]
|
|-- syntax
| |-- dada.vim [...la coloration syntaxique pour un langage
...pour lequel j'ai écrit un compilateur...]
Vous comprenez le principe : des réglages en fonction de la valeur de :set ft?
Exemples :
$ cat ~/.vim/ftplugin/html_a.vim
" Il y a beaucoup d'indentations en HTML
setlocal tabstop=2 shiftwidth=2
" Je n'aime pas les commentaires en HTML
abbreviate /* <!--
ab */ -->
$ cat ~/.vim/ftplugin/mail_jm.vim
setlocal textwidth=72 " Là, t'avais raison
setlocal paste " voir :help paste
filetype.vim me permet d'assigner le type de fichier dada
pour les fichiers sources de mon langage dada.
$ cat .vim/filetype.vim
augroup filetypedetect
au! BufRead,BufNewFile *.dada setfiletype dada
augroup END
Les autres fichiers sont des scripts qu'on peut télécharger
sur le site www.vim.org
*1* LaTeX-suite
http://vim-latex.sourceforge.net/(...)
*2* Alternate Files quickly (.c --> .h etc)
http://www.vim.org/scripts/script.php?script_id=31(...)
*3* GNU/Info brower
http://www.vim.org/scripts/script.php?script_id=21(...)
*4* Source code browser (supports C/C++, java, perl, python, tcl, sql, php, etc)
http://www.vim.org/scripts/script.php?script_id=273(...)
*5* Aspell/Ispell
http://www.vim.org/scripts/script.php?script_id=465(...)
[^] # Re: Coucours de vimrc
Posté par jmfayard . Évalué à 1.
il s'agit d'un plugin livré avec la traduction, mais qui n'est pas activé
par défaut.
Read The Friendly Manuel avec :help matchit parce que
c'est mieux expliqué que je ne pourrais le faire.
# Re: Coucours de vimrc
Posté par Pascal Terjan (site web personnel) . Évalué à 3.
[^] # Re: Coucours de vimrc
Posté par Boa Treize (site web personnel) . Évalué à 1.
[^] # Re: Coucours de vimrc
Posté par Edouard Gomez (site web personnel) . Évalué à 2.
[^] # Re: Coucours de vimrc
Posté par Gauthier Monserand (site web personnel) . Évalué à 0.
[^] # Re: Coucours de vimrc
Posté par jmfayard . Évalué à 1.
Par défaut, vim est 100% compatible avec l'horrible VI
Dès qu'un fichier .vimrc existe, même s'il est vide, l'option
:set nocompatible est fixée, d'où d'innombrables
améliorations.
# Re: Coucours de vimrc
Posté par Code34 (site web personnel) . Évalué à 2.
set showmatch
qui montre la position de la parenthèse ouvrante quand on place la parenthèse fermante.
[^] # Re: Coucours de vimrc
Posté par sToR_K . Évalué à 0.
# Re: Coucours de vimrc
Posté par doublehp (site web personnel) . Évalué à 1.
je sais pas comment elle marche, mais ca me va bien.
# Re: Coucours de vimrc
Posté par Prosper . Évalué à 1.
lrwxrwxrwx 1 root root 20 Mar 25 22:16 /usr/bin/vi -> /usr/bin/emacs
[^] # Re: Coucours de vimrc
Posté par Laurent Mouillart . Évalué à 1.
[^] # Re: Coucours de vimrc
Posté par sToR_K . Évalué à 1.
# Re: Coucours de vimrc
Posté par Aurelien Gateau (site web personnel) . Évalué à 1.
"Complétion du nom de fichier à la BASH quand on fait ':e [Tab]'
set wildmode=longest:list
Et puis pour le "multi-fenêtrage" :
"" F6 pour naviguer entre les fenêtres
map <C-W>w
imap <C-W>wi
"" F5 pour réduire la fenêtre en cours (Shift F5 si split vertical)
map <C-W>-
imap <C-W>-i
map <S-F5> <C-W><
imap <S-F5> <C-W><i
"" F7 pour agrandir la fenêtre en cours (Shift F5 si split vertical)
map <C-W>+
imap <C-W>+i
map <S-F7> <C-W>>
imap <S-F7> <C-W>>i
Pour la compile et la recherche:
"" Enregistre avant compilation, grep...
set autowrite
"" Navigation dans les erreurs (make et grep)
map :cprev
imap :cprevi
map :cnext
imap :cnexti
Et pour indenter sans se prendre la tête (Sélection en mode visual puis '>' ou '<'):
:vnoremap < <gv
:vnoremap > >gv
La complétion intelligente avec [Tab]:
function InsertTabWrapper()
let col = col('.') - 1
if !col || getline('.')[col - 1] !~ '\k'
return "\"
else
return "\<c-p>"
endif
endfunction
inoremap <c-r>=InsertTabWrapper()
Par contre j'aimerais bien savoir comment faire en sorte que cette complétion s'arrête dès qu'il y a ambiguïté au lieu de choisir la première possibilité. Une idée ?
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.