vim comme IDE – la suite

Après l’article d’hier, nous continuons  notre tour d’horizon de vim afin de le configurer comme IDE suite ce que nous avons défini comme fonctionnalités nécessaires.

la complétion automatique

Lors de la saisie sous vim, en tapant CTRL-P, il y a la proposition de complétion à partir des mots déjà présents dans le fichier, ainsi que les autres fichiers ouverts. C’est aussi possible à partir d’un fichier de mots clés (dictionnaire) qu’il est possible de configurer.

Autocomplétion de ligne avec un CTRL-X CTRL-L 🙂

Autocomplétion d’un nom de fichier présent sur le disque en local CTRL-X CTRL-F 🙂

source :

http://www.thegeekstuff.com/2009/01/vi-and-vim-editor-5-awesome-examples-for-automatic-word-completion-using-ctrl-x-magic/

transfert de fichiers

Ce sera git.

Parce que certains utilisent déjà vim comme IDE :

http://www.metal3d.org/index.php/blog/ticket/2008/12/08/vim-est-un-IDE-PHP

http://vim.wikia.com/wiki/Use_Vim_like_an_IDE

http://www.vim.org/scripts/script.php?script_id=1567

Allons plus loin

Avec la réalisation de plug-in afin d’ajouter de nouvelles fonctions :

Pour cela, créer un fichier dans le dossier ~/.vim/plugin/ par exemple (créer les dossiers s’ils n’existent pas) insérer le chargement de ce fichier dans le ~/.vimrc avec la ligne => :so chemin_absolu_du_fichier

Maintenant créer la fonction dans le fichier, comme ci dessous par exemple :

function! Creafichier()
execute « ! touch unfichier »
endfunction

Maintenant ouvrez un fichier avec vim et tapez « :call Creafichier() », ceci aura pour effet de créer un fichier comme si vous tapiez la commande « : ! touch unfichier » dans vim, ceci grâce à l’instruction execute qui imite le comportement de vim.

vim comme IDE

Vim est un éditeur de texte extrêmement puissant et personnalisable, héritier direct de vi qui fut écrit en… 1976. C’est un logiciel libre, léger, très rapide et installé par défaut sur la plupart des distributions GNU/Linux. Son utilisation peut désorienter un nouvel utilisateur. Elle nécessite un certain apprentissage qui peut être « rentabilisé » si l’on utilise quotidiennement un éditeur de texte.

Nous ne reviendrons pas sur l’utilisation de base de Vim. Quoique…

Comment configurer vim afin qu’il réponde à nos attentes comme IDE ?

La coloration syntaxique

Tout a déjà été écrit :

http://appendrelibrement.wordpress.com/2011/03/04/vim-coloration-syntaxique/

Edition de plusieurs fichiers et multifenêtrage

http://appendrelibrement.wordpress.com/2011/03/04/vim-split/

et la gestion des onglets :

http://vim-fr.org/index.php/Commandes_de_bases#Onglets

c’est à ce moment, et à ce moment seulement ;-), que la souris peut-être intéressante :

:set mouse=a

en direct ou dans .vimrc

La recherche sous vim

http://vim-fr.org/index.php/Commandes_de_bases#Recherche

Dasn un répertoire (projet), nous utiliserons la commande système grep.

:!grep -rn titi *

:! => exécuter commander depuis le shell, -r récursif, -n afficher le numéro de la ligne, * dans tous les fichiers du répertoire en cours.

Identation

Dans vimrc :

indentation de 2 et non comme par défaut de… 8.

Remplace le tab, par des espaces.

Indente automatiquement comme la ligne précédente. Des modes d’indentation plus puissants existent.

ce que nous attendons d’un IDE

Qu’attendons-nous d’un IDE (Integrated Development Environnement) en ou bon français un Environnement de Développement Intégré (EDI pouvant être confondu avec l’Echange de Données Informatisé) ?

Un éditeur de texte semble être la première réponse qui vient à l’esprit. Avec la coloration syntaxique, la possibilité d’éditer plusieurs fichiers en parallèle (avec du multifenêtrage puissant), une bonne fonction de recherche et de remplacement dans un ou plusieurs fichiers (et dans des répertoires), de l’indentation automatique,  la complétion automatique ainsi que l’affichage des numéros de lignes.

Il faut bien entendu que l’IDE permette le transfert de fichiers sur le serveur, dans les deux sens. Eventuellement qu’il permette aussi de se connecter en ssh. Et pourquoi pas un jour, réaliser la gestion des versions avec Git.

Au vu de la nature très répétitive des tâches effectuées (modification d’un fichier, enregistrement, passage du fichier, redémarrage d’un serveur, test, consultation d’un fichier log…) par exemple, il est nécessaire que l’outil soit réactif et si possible scriptable.

aide mémoire vim

Et non, ce n’est pas un tutoriel ou un livre de plus sur vim, il en existe déjà de très bons. Juste un aide mémoire.

apt-get install vim-full

vi fichier | ouverture ou création de fichier
i test | insertion
Escap | retour en mode normal
:wq | enregistrer et quitter

vi ~/.vimrc | ouverture ou création du fichier de configuration de vim de l’utilisateur connecté
i syntax on | coloration syntaxique
Entrée colorscheme desert | un peu plus regardable
Entrée
set number | numérotation des lignes
Entrée set autoindent | indentation automatique
Entrée set shiftwidth=2 | indentation par défaut de deux caractères
Escap | retour en mode normal
:w | enregistrer

Ne pas oublier que la couleur de fond peut se configurer sur la console.

:vsplit fichier | ouverture dans une nouvelle fenêtre de fichier
ctrl-w ctrl-w | change de fenêtre
A un autre | insertion en fin de ligne
Entrée et encore un autre
Escap | retour en mode normal
k | remonter à la ligne précédente
2yy | copier les 2 lignes suivantes
j | descendre à la ligne suivante
p | coller
o et puis un troisième | insérer à la ligne du dessous

sessions

enregistrement :

:mksession file

ouverture :

vim -S file

 

ouverture du fichier en mode insertion directe

vim <nom_fichier> +start

macro

http://vim.wikia.com/wiki/Macros

enregistrement de la macro

qa le reste de mes commandes q

q<une lettre> le reste des commandes q

rappel de la macro  (4 fois la macro a)

4@a

map

sous vim ou dans .vimrc

map <F2>:w<CR>:!git add . ; git commit -m « sans importance » ; git push origin master <CR>

ne reste qu’à appuyer sur F2 😉

http://vim.wikia.com/wiki/Best_Vim_Tips