Vim [sujet fleuve]

ça a déjà motivé du monde, ça ?

Bin, à l’époque où la rivalité est partie, KDE était basé sur des librairies propriétaires, ce n’est donc pas un troll interne opensource.

Sur ce débat, je ne pense pas qu’il s’agisse vraiment d’une petite guéguerre gentille comme entre vim et emacs, je pense qu’il s’agit surtout de personnes parlant sans savoir. En tout cas, mon expérience m’a amené à chaque fois à ce triste constat. Plutôt que d’apprendre la réelle différence entre ces licences et utiliser ces différences en fonction du besoin, les gens qui ont découvert la GPL en passant de windows à linux ne veulent surtout rien remettre en cause dans leur nouvelle idéologie… (ce qui m’amène à une autre triste conclusion, c’est qu’avec la montée en popularité -oserais-je parler de mode ?- de linux, on attire aussi tout un tas de boulets que j’aurai préféré laisser au monde windows. Problème que je peux généraliser à tout mouvement rencontrant du succès : le rock, le rap, l’écologie, l’opensource. Même les piercing tant décriés à une époque sont maintenant utilisés par les adorateurs d’encéphalogramme plat.)

'lu

Merci pour toutes ces petites astuces.

En passant je crois que personne n’a dit que : vimtutor lance un tuto pour vim.
Pour avoir utilisé les 2 (vim et emacs) je doit dire que j’ai une preference pour vim. Mais après je suis vraiment un gros debutant en programation donc…
Un truc qui me manque sur vim : (qui doit exister je pense) : une touche qui a le même effet que sur emacs.
Un truc qui me manque sur emacs : (qui doit aussi exister) : avoir la même coloration syntaxique que vim !

philux31 > Il faut que tu édite ton .emacs pour activer la coloration.

fais quoi sous emacs ?

Tu parle d’avoir les même couleurs ?

fais quoi sous emacs ?[/quote]

avec emacs met la ligne au bon endroit, par exemple :

id=`id -u` if [ "$id`" = 0 ] || [ "$UID" = 0 ]; then echo -e "\nOk, vous avez les droits root" else { echo -e "\nVous n'avez pas les droits root !" exit 0 } fi

avec un sur les 2 lignes est changé par id=`id -u` if [ "$id`" = 0 ] || [ "$UID" = 0 ]; then echo -e "\nOk, vous avez les droits root" else { echo -e "\nVous n'avez pas les droits root !" exit 0 } fi

avec vim ça se fait automatiquement avec set cindent, mais parfois ça foire.

Tu parle d’avoir les même couleurs ?[/quote]

oui c’est ça, les couleurs avec vim sont beacoup plus intenses qu’avec emacs.

Sous vi tu te met sur une ligne et tu tape >> ça indente une fois la ligne (<< la désindente d’un cran).
Tu met un nombre devant pour dire combien de ligne tu indente.

pour indenter les 3 premières lignes de 3 tabulations.

Sinon tu passe en mode “visuel ligne” avec V tu selectionne les lignes que tu veut et tu appuie sur = ça indente tout comme il faut.

Enfin j’ajoueterais qu’il existe les options autoindent et smartindent qui peuvent améliorer ton indentation automatique. [edit]cindent c’est pour les codes sources C alors avec du shell ça peut foirer[/edit]

Mais j’avoue ne pas connaître déquivalent exacte à d’emacs.

Bjr,
Peut-on ouvrir un *.rtf avec vim et l’afficher sans avoir des trucs genre ^M ?

Quelques features supplémentaires pour le .vimrc :

highlight WhitespaceEOL ctermbg=red
match WhitespaceEOL /\s+$/

Affiche les espaces inutiles en fin de ligne en rouge

autocmd BufWrite .c,.h,.sh,.cc,*.hh silent! %s/[\r \t]+$//

Efface les espaces inutiles (adapter les *c, *.h… avec le type de fichier que vous vous voulez utiliser).

Sinon pour ceux qui utilisent Netbeans, il existe un petit plugin sympa qui permet de retrouver le comportement de votre éditeur de texte favori : jVi (http://jvi.sourceforge.net/).

Salut phlinux,

de mon point de vue : les ^M en fin de fichier sont caracteristiques des fichiers generes avec Windows, un petit dos2Unix sur le fichier les supprime.

Apres j’ai jamais eu l’idee d’ouvrir un rtf avec vi (je ne savais meme pas que rtf etait un format texte), mais si ce rtf a ete produit sous windows ca peut etre une piste.

A+

Bjr,
Merci de ta réponse. Je garde en réserve l’astuce pour le rtf. Comme il n’est pas simple d’installer un tableur ou un éditeur sur woody (sur le tosh) je cherche toutes les solutions “alternatives”
@+

Tiens quelques infos sur vim :wink:
blog.mageekbox.net/?post/2009/04 … HP-lillois

Bjr,
@Miniloser : à mon avis mieux que dos2Unix c’est catdoc, qui conserve bien la mise en forme
@+

Vonstorm a trouvé une petite conf’ qui permet à vim de changer de répertoire en fonction du fichier ouvert (comme avec emacs pour ceux qui connaissent).
Dans ~/.vimrc on met :

pour voir les caractères spéciaux tabulation, espaces en fin de ligne … rajouter ceci dans .vimrc

set listchars=nbsp:¤,tab:>-,trail:¤,extends:>,precedes:< set list

L’information est déjà parue, voici la traduction en francais du site Swaroopch swaroopch.com/notes/Vim_fr:T … i%C3%A8res

Tiens pour ceux qui serait intéresser le forum PHP qui se déroulera en Novembre inclus une session sur VIM

afup.org/pages/forumphp2009/sessions.php

Si ça vous intéresse n’hésitez pas :wink:

Si vous avez des .vimrc commenté ça peut être pas mal, car un débutant qui est confronté à VIM (je voie ça dans ma classe) ne comprend pas forcement le pourquoi du comment de la puissance de celui-ci :wink:

Nan mais je dis ça car, apart la coloration syntaxique et la numérotation, mon vimrc est un peut pauvre à vrai dire :unamused:

Après comme on dit, c’est pas la guitare qui fait le guitariste, heinn… :mrgreen:

Je viens de me rendre compte que je n’ai pas de .vimrc sur ma machine.
Donc je ne peux pas te montrer le miens (je tente de me faire à emacs).
Je dois l’avoir sur mon autre machine mais là je suis en cours…

En voilà pas trop long:
frwendling.free.fr/temp/vimrc.html

J’avais oublié, voici le miens :

[code]""""""""""""""""""""""
" Options classiques “
”"""""""""""""""""""""

syntax on " active la coloration syntaxique
filetype on " détecte automatiquement le type de fichier

set nocompatible " désactive la compatibilité vi (vi lance vim)
set encoding=utf-8 " encode par défaut les fichier en utf-8
set fileencoding=utf8 " encode par défaut les fichier en utf-8
set tabstop=4 " taille de la tabulation en espace
set expandtab " remplace les tabulations par des espaces
set nohls " désactive le surlignement
set ruler
set cindent " active l’indentation des sources C
set shiftwidth=4 " nombre d’espaces pour une tabulation
set wrapscan " recherche en rond
set backspace=2 " autorise le backspace
set hlsearch " pour activer la surbrillance
set mouse=a " active l’utilisation de la sourie
set incsearch " exécute la recherche en même temps que l’on la tape
set showmatch " affichage des parenthèses
set dir=~/.tmp " répertoire des fichiers temporaires
set suffixes=.bak,.~,.swp " priorité faibles sur ces fichiers
set nobackup " ne pas conserver de backup
set title " modifier le titre du terminal
set ff=unix " suppression des ^M
set autoindent " indentation automatique avancée
set smartindent " indentation plus intelligente
set backspace=indent,eol,start " autorisation du retour arrière
set path=.,/usr/include,…/include,…/src,include,src,
" répertoire où l’auto-complètement va chercher les fonction et les noms de variables
set wildignore=.o,.tbz,.run,.tar,.exe,.png,.jpg,.tbz,.tgz,.bzip,*.gzip " fichiers ignorés

set number
highlight LineNr ctermbg=black ctermfg=gray

highlight TabLine term=none cterm=none
highlight TabLineSel ctermbg=darkblue

"set cursorline
"highlight CursorLine term=reverse cterm=reverse
"set fdm=indent

“”"""""""""""
" Fonctions “
”""""""""""""

function! s:DisplayStatus(msg)
echohl Todo
echo a:msg
echohl None
endfunction

“” Curseur à l’ancienne position
function! s:CursorOldPosition()
if line("’"") > 0 && line("’"") <= line("$")
exec “normal g`”"
endif
endfunction
autocmd BufReadPost * silent! call s:CursorOldPosition()

function! LoadTemplate(name, extension)
echohl Todo
echo a:name
echohl None
let bou = expand(’%:e’)
silent! execute '0r ’ . $HOME . ‘/.vim/template/’ . bou . '.tpl’
silent! execute 'source ’ . $HOME . '/.vim/template/autocompletion.vim’
endfunction

function! Make()
if()
execute 'make’
else
execute 'make %:r’
endif
endfunction

augroup filetypedetect
au BufNewFile,BufRead *.tex setlocal spell spelllang=fr
au BufNewFile,BufRead *.txt setlocal spell spelllang=fr
augroup END

“”""""""""""""""""""""
" Raccourcis clavier “
”"""""""""""""""""""""
map C Da
noremap :set paste!:set paste?
noremap :set nu!:set nu?
noremap :set expandtab!:set expandtab?
noremap :set expandtab!:set expandtab?
noremap :set spell!:set spell?
noremap :set hlsearch!:set hlsearch?
noremap :NERDTreeToggle

“” Raccourcis à la firefox
map :tabnew
map :tabnext
map :tabprevious
map :tabclose
map :e

map :cprevious
map :cnext

map :!gcc % && ./a.out ; rm a.out

" plis/déplies du code
nnoremap za
" déplies tout
nnoremap zm
" plis tout
nnoremap zr

“”""""""""""""""""""""""
" Gestion des langages “
”"""""""""""""""""""""""
au BufEnter [Mm]akefile set noexpandtab
au BufNewFile [Mm]akefile set noexpandtab
au BufNewFile [Mm]akefile silent! execute '0r ’ . $HOME . ‘/.vim/template/makefile.tpl’

au BufNewFile * silent! call LoadTemplate(’%:t’, ‘%:e’)

au BufEnter *.h set syntax=cpp.doxygen

au BufNewFile *.sh :!chmod +x ‘%’
" pour perl
au FileType perl set commentstring="%s"
au FileType perl set foldmarker=#\ {{{,#\ }}}[/code]

Ensuite mon fichier ~/.vim/template/autocompletion.vim :

[code]:%s/<+DATE+>/=strftime("%A %d %B %Y")/ge
:%s/<+FILE+>/=expand(’%:t’)/ge
let macro = substitute(expand(’%:t’), ‘.’, ‘_’, ‘g’)
let macro = ‘’ . toupper(macro) . '
:%s/<+MACRO+>/=expand(macro)/ge

“let nom = system(“awk -F: ‘/’”$USER”’/ { print $5 }’ /etc/passwd | awk -F, ‘{ print $1 }’")
"let nom = system(“grep $USER /etc/passwd | awk -F: ‘{ print $5 }’ | awk -F, ‘{ print $1 }’”)
let nom = system(“grep $USER /etc/passwd”)
"let nom = system(“echo $USER”)
:%s/<+AUTEUR+>/=nom\b/ge

3match Todo /<+.++>/[/code]

Et ensuite un exemple de fichier template avec mon tex.tpl :

[code]\documentclass[a4paper,11pt]{article}

% Packages utilisés
\usepackage{color}
\usepackage[utf8]{inputenc}
\usepackage{geometry}
\usepackage[french]{babel}

\pagestyle{headings}

\geometry{
hmargin=2.5cm,
vmargin=1.5cm
}

\hypersetup{
hyperindex=false,
pdftitle={<+TITLE+>},
pdfauthor={<+AUTEUR+>},
pdfsubject={<+SUJET+>}
}

\title{<+TITLE+>}
\author{<+AUTEUR+>}

% textbf : gras
% textit : italique
% underline : souligné

% Début du document
\begin{document}

\maketitle
\tableofcontents

\end{document}[/code]

La fonction Make n’est pas terminée il faudra que je m’en occupe. Et les raccourcis claviers à la firefox ne marche pas avec urxvt et tabbed.

[quote=“MisterFreez”]les raccourcis claviers à la firefox ne marche pas avec urxvt et tabbed.[/quote]Ça me semble normal, vu que ctrl est le modificateur par défaut dans tabbed, je parie que si tu changes le modificateur dans tabbed, tes raccourcis à la firefox fonctionneront.