Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
vim [Le 25/05/2016, 16:36] bcag2 [Comparaison de fichiers] |
vim [Le 11/09/2023, 20:05] (Version actuelle) jpph [Édition hexadécimale] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | {{tag>éditeur_de_texte console programmation IDE gvim}} | + | {{tag>éditeur_de_texte console programmation IDE}} |
---- | ---- | ||
Ligne 15: | Ligne 15: | ||
Par défaut, votre système a une version basique de vim, procurée par le paquet **vim-tiny**, mais n'offrant pas toutes les possibilités de cet éditeur. | Par défaut, votre système a une version basique de vim, procurée par le paquet **vim-tiny**, mais n'offrant pas toutes les possibilités de cet éditeur. | ||
- | Commencez par [[:tutoriel:comment_installer_un_paquet|installer le paquet]] **[[apt>vim|vim]]**.\\ | + | Commencez par [[:tutoriel:comment_installer_un_paquet|installer le paquet]] **[[apt>vim|vim]]** ou **[[apt>vim-gnome|vim-gnome]]**. Cette version //vim-gnome// a l'avantage de disposer des options pour utiliser le presse-papier (( reportez-vous à l'article [[https://vim-fr.org/index.php/Les_presse-papiers]] pour plus de détails sur les presse-papiers de vim))\\ |
Si vous souhaitez une interface graphique pour utiliser Vim, reportez-vous à la page **[[:gvim]]**. | Si vous souhaitez une interface graphique pour utiliser Vim, reportez-vous à la page **[[:gvim]]**. | ||
===== Utilisation ====== | ===== Utilisation ====== | ||
- | ==== Mettre en français la doc vim ==== | ||
- | |||
- | Sur Ubuntu 12.04. Tout d'abord, télécharger la traduction de la doc de vim sur le site : http://cfennajoui.net/vim/ //(miroir)// | ||
- | |||
- | Ensuite, dans un terminal root, sauvegarder la doc vim actuelle (en anglais) dans un répertoire à créer /usr/share/vim/vimcurrent/old_vim_doc/doc/ (mieux vaut être prudent…) | ||
- | |||
- | Puis recopier le contenu décompressé de archive_traduit.tar.gz (de Téléchargements) dans /usr/share/vim/vimcurrent/doc/ | ||
- | |||
- | Vérifier en ouvrant un fichier d'essai avec vim que l'aide est bien en français. Tout va bien ! | ||
Ligne 39: | Ligne 30: | ||
(ou pour la version graphique, lancez l'application **gvimtutor** avec la combinaison de touches **ALT + F2** ou dans le terminal) | (ou pour la version graphique, lancez l'application **gvimtutor** avec la combinaison de touches **ALT + F2** ou dans le terminal) | ||
- | Vim dispose aussi d'un tutoriel francophone non-officiel en ligne : [[http://vim-fr.org/]] | ||
- | Si vimtutor s'avère être vide, c'est que seule une version minimale de Vim est installée. C'est le cas par défaut sur certaines versions d'Ubuntu. Afin d'installer la version complète : **[[apt>vim]]** ou ''sudo apt-get install vim'' | ||
==== Principe de base ==== | ==== Principe de base ==== | ||
Ligne 50: | Ligne 39: | ||
Le fichier s'affiche. Vous êtes dans le **mode commande**((**éditeur modal**: possède différents modes de fonctionnement **commande**, **insertion**)), c'est à dire que vous pouvez déplacer le curseur comme vous le souhaitez avec les touches h,j,k,l ou avec les flèches ←↓↑→ et entrer des commandes pour agir sur le texte. Si vous tapez un nombre avant une commande, elle se répétera d'autant. | Le fichier s'affiche. Vous êtes dans le **mode commande**((**éditeur modal**: possède différents modes de fonctionnement **commande**, **insertion**)), c'est à dire que vous pouvez déplacer le curseur comme vous le souhaitez avec les touches h,j,k,l ou avec les flèches ←↓↑→ et entrer des commandes pour agir sur le texte. Si vous tapez un nombre avant une commande, elle se répétera d'autant. | ||
- | |||
Pour accéder au **mode insertion**((**éditeur modal**: possède différents modes de fonctionnement **commande**, **insertion**)) afin de modifier ou d'insérer du texte, il suffit d'appuyer sur « **i** » dans le mode commande. Appuyer sur la touche « **Échap** » pour en sortir et repasser en mode commande. | Pour accéder au **mode insertion**((**éditeur modal**: possède différents modes de fonctionnement **commande**, **insertion**)) afin de modifier ou d'insérer du texte, il suffit d'appuyer sur « **i** » dans le mode commande. Appuyer sur la touche « **Échap** » pour en sortir et repasser en mode commande. | ||
Ligne 118: | Ligne 106: | ||
<code>vimdiff fichier1 fichier2</code> | <code>vimdiff fichier1 fichier2</code> | ||
vimdiff peut-être remplacé par vim -d\\ | vimdiff peut-être remplacé par vim -d\\ | ||
- | Si vous êtes déjà dans vim en édition sur le fichier1: | + | Si vous êtes déjà dans vim en édition sur le fichier1: |
<code>:vert diffsplit fichier2</code> | <code>:vert diffsplit fichier2</code> | ||
si vous ne spécifiez pas //vert//, le "split" sera horizontal (beaucoup moins pratique).\\ | si vous ne spécifiez pas //vert//, le "split" sera horizontal (beaucoup moins pratique).\\ | ||
- | Ajoutez | + | Ajoutez |
<code>set diffopt=vertical</code> | <code>set diffopt=vertical</code> | ||
dans votre fichier //vimrc// pour que ce soit par défaut. | dans votre fichier //vimrc// pour que ce soit par défaut. | ||
Ligne 127: | Ligne 115: | ||
==== Édition hexadécimale ==== | ==== Édition hexadécimale ==== | ||
- | vim peut servir [[wpfr>/%C3%89diteur_hexad%C3%A9cimal|d'éditeur héxadécimal]] (voir aussi hexedit) : après avoir ouvert votre fichier, tapez | + | vim peut servir d'[[wpfr>éditeur hexadécimal]] (voir aussi hexedit) : après avoir ouvert votre fichier en mode binaire (vim -b), tapez |
<code>:%!xxd</code> | <code>:%!xxd</code> | ||
pour revenir en édition normale <code>:%!xxd -r</code> | pour revenir en édition normale <code>:%!xxd -r</code> | ||
comme pour les autres utilisations (recherche, remplace...), vous pouvez remplacer % par un n° de ligne ou un intervalle | comme pour les autres utilisations (recherche, remplace...), vous pouvez remplacer % par un n° de ligne ou un intervalle | ||
+ | |||
+ | !! Attention a bien éditer et sauvegarder en mode binaire sinon vous risquez de corrompre le fichier avec des auto tab et des conversion de retour a la ligne. vim -b pour lancer en mode binaire, ou :set binary pour activer le mode une fois vim lancé. | ||
+ | |||
+ | ==== Terminal ==== | ||
+ | Avec la version 8.1, il est possible d'ouvrir une fenêtre //terminal// | ||
+ | <code> :terminal</code> (le mot abrégé //term// convient), si vous préférez en vertical : <code>:vert term</code> | ||
+ | |||
+ | Pour sortir: <code> <Ctrl-D> </code> ou <code> «exit» </code> | ||
+ | |||
+ | ==== Macro ==== | ||
+ | Il est possible d'enregistrer des macros associées à une lettre.\\ | ||
+ | Pour démarrer l'enregistrement de la macro, on tape **qx** pour enregistrer la macro dans un registre **x**\\ | ||
+ | On saisi ensuite la(les) commande(s) à enregistrer, par exemple un rechercher/remplacer qu'on veut exécuter dans plusieurs fichiers (action qu'on peut aussi faire avec la commande //sed// en [[CLI]])\\ | ||
+ | On fini l'enregistrement en tapant **q**\\ | ||
+ | Pour lancer une macro, il suffit de taper le caractère //@// suivi de la lettre correspondant au registre, //x// dans notre exemple : **@x**\\ | ||
+ | source ((https://vim.fandom.com/wiki/Recording_keys_for_repeated_jobs)) | ||
+ | |||
+ | Si vous ne l'utilisez pas et que ça vous gène, vous pouvez désactiver le raccourci dans votre vimrc en y ajoutant ((https://stackoverflow.com/a/28501574/6614155)) : | ||
+ | <code>map q <Nop></code> | ||
===== Configuration ===== | ===== Configuration ===== | ||
Ligne 174: | Ligne 181: | ||
==== Vim supporte les souris ==== | ==== Vim supporte les souris ==== | ||
- | Le service **gpm**((**gpm** : General Purpose Mouse interface http://www.nico.schottelius.org/software/gpm/)) permet l'utilisation de la souris dans le terminal pour sélectionner, copier et coller. Vérifiez que le paquet [[apt://gpm|gpm]] est [[:tutoriel:comment_installer_un_paquet|installé]] et [[:tutoriel:comment_modifier_un_fichier|modifiez votre fichier]] ~/.vimrc comme expliqué plus haut pour y insérer : | + | Le service **gpm**((**gpm** : General Purpose Mouse interface https://www.nico.schottelius.org/software/gpm/)) permet l'utilisation de la souris dans le terminal pour sélectionner, copier et coller. Vérifiez que le paquet [[apt://gpm|gpm]] est [[:tutoriel:comment_installer_un_paquet|installé]] et [[:tutoriel:comment_modifier_un_fichier|modifiez votre fichier]] ~/.vimrc comme expliqué plus haut pour y insérer : |
<code>set mouse=a</code> | <code>set mouse=a</code> | ||
Ligne 190: | Ligne 197: | ||
set t_Co=88 | set t_Co=88 | ||
</code> | </code> | ||
- | Il est cependant nécessaire que le thème ait été pensé à la fois pour la GUI et le terminal. Si ce n'est pas le cas du thème que vous avez choisi, le plus simple est d'utiliser le plugin [[http://www.vim.org/scripts/script.php?script_id=1809|guicolorscheme]]. | + | Il est cependant nécessaire que le thème ait été pensé à la fois pour la GUI et le terminal. Si ce n'est pas le cas du thème que vous avez choisi, le plus simple est d'utiliser le plugin [[https://www.vim.org/scripts/script.php?script_id=1809|guicolorscheme]]. |
- | * [[http://phollow.fr/2010/11/5-themes-vim-pour-frimer-devant-les-filles/?utm_source=rss&utm_medium=rss&utm_campaign=5-themes-vim-pour-frimer-devant-les-filles|5 thèmes VIM pour frimer devant les filles]] | + | |
+ | Nota : les thèmes installés par défaut se trouvent dans le répertoire /usr/share/vim/vim**xx**/colors ou xx correspond à la version en cours, 74 ou 80 à ce jour | ||
+ | |||
+ | ===== Extensions, plugins et packages ===== | ||
+ | Il existe de nombreuses extensions à VIM, notamment pour les développeurs, pour ajouter des fonctionnalités telle que l'arborescence du répertoire de travail, la liste des fonctions/variables, des colorations spécifiques… | ||
+ | |||
+ | Pour lister les plugins installés, dans VIM, tapez la commande: | ||
+ | <code>:scriptnames </code> | ||
+ | |||
+ | ==== Les plugins ==== | ||
+ | C'est assez simple, ils se composent généralement de deux fichiers, un //.vim// et un //.txt//. | ||
+ | Le //.vim// peut simplement être déposé dans ///usr/share/vim/vim80/plugin///,\\ | ||
+ | le //.txt// dans ///usr/share/vim/vim80/doc/// | ||
- | Nota : les thèmes installés par défaut se trouvent dans le répertoire /usr/share/vim/vim**xx**/colors ou xx correspond à la version en cours, 73 à ce jour | + | ==== Les packages ==== |
+ | C'est plus compliqué, mais il existe des outils, tel que [[https://github.com/tpope/vim-pathogen|Pathogen]] ou [[https://github.com/VundleVim/Vundle.vim|Vundle]] pour simplifier leur installation | ||
===== Pour aller plus loin ===== | ===== Pour aller plus loin ===== | ||
- | * [[http://www.vim.org/]] -- Site officiel (en) | + | * [[https://www.vim.org/]] -- Site officiel (en) |
- | * [[http://cfennajoui.net/vim/|Traduction de la documentation de Vim (miroir)]] | + | |
* [[ftp://ftp.vim.org/pub/vim/doc/book/vimbook-OPL.pdf|Vim book (fichier PDF, anglais)]] | * [[ftp://ftp.vim.org/pub/vim/doc/book/vimbook-OPL.pdf|Vim book (fichier PDF, anglais)]] | ||
- | * [[http://arolla.developpez.com/tutoriels/programmation/editeurs-code/dompter-vim-en-trois-temps/|Tuto sur developpez.com]] | + | * [[https://arolla.developpez.com/tutoriels/programmation/editeurs-code/dompter-vim-en-trois-temps/|Tuto sur developpez.com]] |
- | * [[http://openclassrooms.com/courses/reprenez-le-controle-a-l-aide-de-linux/vim-l-editeur-de-texte-du-programmeur|Tuto sur openclassroom (ex site du zéro)]] | + | * [[https://yannesposito.com/Scratch/fr/blog/Learn-Vim-Progressively/|Apprendre Vim progressivement]] |
- | * [[http://vim-fr.org/index.php/Accueil|Wiki Francophone de Vim]] | + | * [[https://touticphoto.fr/assistance-informatique/30-editeur-de-texte-vim|Quelques notes de prises en main sur Vim]] |
+ | * [[https://github.com/dpelle/vim-Grammalecte|Plugin Grammalecte]] étendre les fonctionnalités de VIM avec un Correcteur grammatical dédié à la langue française. | ||
---- | ---- | ||
- | --- //refonte [[:utilisateurs:YoBoY|YoBoY]]// | ||
- | --- //Ajouts à la section "Configuration" [[:utilisateurs:Mr_Djez|Mr_Djez]]// | + | //Contributeurs : [[:utilisateurs:YoBoY|YoBoY]], [[:utilisateurs:Mr_Djez|Mr_Djez]], [[:utilisateurs:bcag2|bcag2]]// |