Bonjour a tous,
Cela faisait un bon moment que je n'étais pas venu sur ce forum, mais je ne trouve pas vraiment d'autres endroits qu'ici ou les gens connaissent vraiment vim.
Je ne lance pas ce sujet pour avoir des trolls sur vim VS emacs ^^
En fait j'ai lu quelques sujets sympathiques sur ce forum justement, j'ai appris quelques trucs notamment la configuration d'un fichier ~/.netrc qui permet d'avoir ses mots de passes de connexion ftp stockés.
Si çà vous intéresse je pourrais vous donnez un lien 😉
Sinon je vous sollicite pour que vous m'aidiez a construire un .vimrc complet, car ce qu'on trouve principalement sur le net ce sont la liste des commandes de vim, mais un bon fichier de configuration et une bonne utilisation des fonctions que l'on définie est un atout majeure je pense 🙂
J'ai commencé un fichier de configuration, je vous le met ici, si ca peut aider des gens ici :
"Activation de la coloration syntaxique
syntax on
"Activation de l'auto indentation
set cindent
"Modification du modèle de coloration syntaxique
colorscheme default
"Fonction d'affichage d'un message en inverse video
function! s:DisplayStatus(msg)
echohl Todo
echo a:msg
echohl None
endfunction
"Variable d'enregistrement de l'état de la gestion de la souris
let s:mouseActivation = 1
"Fonction permettant l'activation/désactivation de la gestion de la souris
function! ToggleMouseActivation()
if(s:mouseActivation)
let s:mouseActivation = 0
set mouse=n
set paste
call s:DisplayStatus('Désactivation de la gestion souris (mode collage)')
else
let s:mouseActivation = 1
set mouse=a
set nopaste
call s:DisplayStatus('Activation de la gestion de la souris (mode normal)')
endif
endfunction
"Activation par défaut au démarrage de la gestion de la souris
set mouse=a
set nopaste
"Personnalisation de la ligne de status
set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [ASCII=\%03.3b]\ [Line=%04l]\ [Col=%04v]\ [%p%%]
set laststatus=2
"Activation de l'indentation automatique
set autoindent
"Redéfinitions des tabulations
"set expandtab "Pour remplacer les tabulations par des espaces
set shiftwidth=4
set softtabstop=4
set tabstop=4
"Fonction de 'nettoyage' d'un fichier :
"Suppression des caractères ^M en fin de ligne
function CleanCode()
%s/^M//g
call s:DisplayStatus('Code nettoyé')
endfunction
"Déplacement de l'onget courant vers la gauche ou vers la droite
function! MoveTab(direction)
if(a:direction ='left')
let tabNum = tabpagenr()-2
if(tabNum <0)
let tabNum = 0
endif
execute 'tabm ' . tabNum
else
let tabNum = tabpagenr()
execute 'tabm ' . tabNum
endif
endfunction
"Ajout de la numérotation des lignes
set number
highlight LineNr ctermbg=black ctermfg=gray
"Ajout d'une ligne colorée pour surligné la ligne en cours
"set cursorline
"highlight CursorLine term=reverse cterm=reverse
"Amélioration de la lisibilité des nomsdes onglets
highlight TabLine term=none cterm=none
highlight TabLineSel ctermbg=darkblue
"Définition du style d'affichage des signets
sign define information text=>> linehl=Warning texthl=Error
"Variable d'enregistrement des identifiants designets pour chaque buffer
let s:signMarks ={}
"Variable d'enregistrement des sauts sur les signets de chaque buffer
let s:jumpMarks ={}
"Fonctin de marquage des signets
function! MarkSign()
let filename = bufname(winbufnr(winnr()))
if(has_key(s:signMarks, filename))
let s:signMarks[filename] +=1
else
let s:signMarks[filename] =1
endif
exe ':sign place ' . s:signMarks[filename] . ' line=' /line(.) .' name=information file=' .expand ('%:p')
endfunction
"Fonction de saut sur un signet
function! JumpToSign()
let filename = bufname(winbufnr(winnr()))
if(has_key(s:signMarks, filename))
if(has_key(s:jumpMarks, filename))
let s:jumpMarks[filename] +=1
else
let s:jumpMarks[filename] = 1
endif
if(s:jumpMarks[filename] > s:signMarks[filename])
let s:jumpMarks[filename] = 1
endif
silent! execute ':sign jump ' . s:jumpMarks[filename] . 'file=' . expand('%:p')
endif
endfunction
"Autorisation de remonter ou descendre d'une ligne avec les flèches
"gauche ou droite
set whichwrap=b,s,<,>,[,]
"Ouverture des fichiers avec le curseur à la position de la dernière édition
function! s:Cursor0ldPosition()
if line("'\"") > 0 && line("'\"") <= line("$")
exe "normal g`\""
endif
endfunction
autocmd BufReadPost * silent! call s:CursorOldPosition()
"Repli de code
"Affichage textuel personnalisé lors d'un pliage
function! MyFoldFunction()
{
let line = getline(v:foldstart)
let sub = substitute(line, '/\*\|\*/\|^\s+', '', 'g')
let lines = v:foldend - v:foldstart +1
return '[+] '. v:folddashes.sub .'...' . lines . 'lignes...'
getline(v:foldend)
endfunction
"activation de la gestion des ouvertures/fermetures des replis de code
set foldenable
"Affichage d'une ligne de '=' sur les pliages
set fillchars=fold:=
"Definition personnaelle de l'affichage du pliage
set foldtext=MyFoldFunction()
let php_folding=1
Je precise que tout ne marche pas ( j'ai recopier un linux magazine, mais j'ai mal du recopier )
Et je ne sais pas comment me servir de toutes les fonctions aussi ^^'
Je vous demande quelques conseils pour la programmation notamment en C et en PHP
En fait le php est pire a configurer que le C AMHA
Je voudrais savoir si a partir d'un fichier php quelconque je pouvais avoir une indentation particuliere
Je vous explique ma maniere a moi de coder ( je reconnais que c'est peut etre un peu exotique, enfin je ne sais pas trop, mais je m'y retrouve vraiment bien 🙂
<html>
<body>
<?php
echo "bonjour";
?>
<p>
<p>
<?php echo $var; ?>
</p>
</p>
<h1> Bonjour <?php echo $nom; ?> </h1>
</body>
</html>
Mon type d'indentation en C :
#include <stdio.h>
int main()
{
while(1)
{
printf("Hello World");
}
}
Voila j'accepte tous les commentaires 🙂
Merci d'avance 😉