Installer et utiliser Vim

De Wiki Amis SH
Aller à la navigation Aller à la recherche

Installer et utiliser Vim

MediaWiki - Le logo de Vim.

Installer Most Elinks Vim

sudo apt-get install most elinks vim vim-vimoutliner vim-gtk
#Complément, à installer
vim-addon-manager
vim-common
vim-gtk     ( nommé vim-gtk abreviation (gvim) )
vim-gui-common

Changer l'éditeur de texte par défaut

# L'éditeur de texte par défaut du système est modifiable via les alternatives existantes.
# Pour remplacer nano par vi, ou l'inverse, utiliser la commande suivante :
update-alternatives --config editor

Configurer Vim

cd  ~/Téléchargements
# Le domaine formation-debian.via.ecp.fr est tombé. Les informations peuvent encore être récupérées via les archives du web :
wget https://web.archive.org/web/20140709051043/http://formation-debian.via.ecp.fr/fichiers-config/vimrc
sudo -s 
mkdir -p /etc/vim
cp vimrc /etc/vim
cd /etc/vim
nano /etc/vim/vimrc

REMPLACER LA LIGNE ORIGINALE AVEC CE CODE

"set statusline=%<%f%h%m%r%=%l,%c\ %P
set statusline=%<%f%h%m%r%=%{&ff}\ %l,%c%V\ %P " " Contenu de la barre de status "

ORIGINAL

" Contenu de la barre de status
set statusline=%<%f%h%m%r%=%l,%c\ %P

La partie du code final concernée

Cette modification permet de ... !

Enregistrer cette configuration modifiée avec nano et revenir sur le terminal.

" Affiche la position du curseur 'ligne,colonne'
set ruler
" Affiche une barre de status en bas de l'écran
set laststatus=2
"set statusline=%<%f%h%m%r%=%l,%c\ %P
set statusline=%<%f%h%m%r%=%{&ff}\ %l,%c%V\ %P " " Contenu de la barre de status "
" Largeur maxi du texte inséré
" '72' permet de wrapper automatiquement à 72 caractères
" '0' désactive la fonction
set textwidth=0

Lancer vi

vi  /etc/vim/vimrc
Saisir /delek qui va sélectionner le mot clé delek dans la configuration.
/delek
Pour quitter appuyer sur échap puis :q!

Tester vi

vi /etc/apt/sources.list.d/official-package-repositories.list
Fermer :q!

Comment ecrire comme un grand sous Linux avec Vi

1 – Plusieurs modes d’interaction :

Le mode ECHAP, par défaut lors que VI est lancé (ou manuellement via le bouton Echap).
Le mode INSERTION via le bouton Inser ou la lettre i (le mode de saisie normal).
Le mode REPLACE via la lettre R ou r (en mode ECHAP).

2 – Lancer VI:

Il suffit de lancer depuis la ligne de commande : vi <nom du fichier à modifier ou à créer>.
VI ouvre alors le fichier à modifier ou à créer en mode ECHAP.

3 – Quelques commandes simples:

En mode ECHAP, pour effacer le caractère à droite du curseur : x
En mode ECHAP, pour effacer le caractère à gauche du curseur : X
En mode ECHAP, pour effacer la ligne courante : dd
En mode ECHAP, pour rechercher un mot : / <mot à rechercher> <Entrée>
En mode ECHAP, pour sauvegarder sans sortir : :w <Entrée>
En mode ECHAP, pour sortir : :q <Entrée>
En mode ECHAP, pour sortir sans sauvegarder : :q! <Entrée>

4 – Quelques commandes répétitives:

Où <n> est un nombre entier (conseil, éviter le pavé numérique).
En mode ECHAP, pour effacer <n> caractères à droite du curseur : <n>x
En mode ECHAP, pour effacer <n> caractères à gauche du curseur : <n>X
En mode ECHAP, pour répéter la dernière action : .
En mode ECHAP, pour annuler la dernière action : u

5 – Quelques commandes sur les mots:

Où <n> est un nombre entier (conseil, éviter le pavé numérique).
En mode ECHAP, pour effacer le mot à droite du curseur : dw
En mode ECHAP, pour effacer le mot à gauche du curseur : db
En mode ECHAP, pour effacer <n> mots à droite du curseur : <n>dw
En mode ECHAP, pour effacer <n> mots à gauche du curseur : <n>db

6 – Quelques commandes sur les déplacements:

En mode ECHAP, pour aller à la phrase suivante : )
En mode ECHAP, pour aller à la phrase précédente : (
En mode ECHAP, pour aller au paragraphe suivant : }
En mode ECHAP, pour aller au paragraphe précédent : {
En mode ECHAP, pour aller au mot suivant : W
En mode ECHAP, pour aller au mot précédent : B

7 – Quelques commandes pour couper/copier/coller/effacer:

Où <n> est un nombre entier (conseil, éviter le pavé numérique).
En mode ECHAP, pour couper <n> lignes : <n>d
En mode ECHAP, pour copier <n> lignes : <n>Y
En mode ECHAP, pour coller à droite du curseur : p
En mode ECHAP, pour coller à gauche du curseur : P
En mode ECHAP, pour effacer le reste de la phrase : D

8 – Quelques commandes pour passer en majuscules/minuscules des mots:

Où <n> est un nombre entier (conseil, éviter le pavé numérique).
Nota Bene : R et r font passer en mode REPLACE.
En mode ECHAP, pour passer en majuscules les <n> caractères suivants : <n>~R
En mode ECHAP, pour passer en miniscules les <n> caractères suivants : <n>~r
En mode ECHAP, pour passer en majuscules les <n> caractères suivants : <n>~R
En mode ECHAP, pour passer en miniscules les <n> caractères suivants : <n>~r

9 – Quelques commandes sur les fenêtres:

En mode ECHAP, pour ajouter une nouvelle fenêtre : CTRL+w n
En mode ECHAP, pour ouvrir un fichier dans une nouvelle fenêtre : :e <nom du fichier à modifier ou à créer>
En mode ECHAP, pour aller à la première fenêtre (top) : CTRL+w t
En mode ECHAP, pour aller à la dernière fenêtre (bottom) : CTRL+w b
En mode ECHAP, pour monter d’une fenêtre : CTRL+w k
En mode ECHAP, pour monter d’une fenêtre : CTRL+w <Flèche du haut>
En mode ECHAP, pour descendre d’une fenêtre : CTRL+w j
En mode ECHAP, pour descendre d’une fenêtre : CTRL+w <Flèche du bas>
Source de l'article : arcturien.wordpress.com/2006/09/22/comment-ecrire-comme-un-grand-sous-linux-avec-vi/
Publié le 22 septembre 2006 par arcturien

Exercice de prise en main

cd /home/user/Téléchargements

Télécharger vimrc wget http://formation-debian.via.ecp.fr/fichiers-config/vimrc

Ouvrir 2 fenêtres et comparer les différences entre 2 fichiers

La version finale vs la version qui a été téléchargée.

vi -d /etc/vim/vimrc vimrc
Pour passer d'une fenêtre à l'autre ctrl w (2x)
Aller dans la fenêtre du /etc/vim/vimrc
Lancer la commande /set statusline

Le texte est sélectionné en rouge : " Contenu de la barre de status

Saisir

Y
ctrl w (2x)
P

Afficher la numérotation

:se nu

Aller au numéro de ligne sélectionné

:25

Afficher les caractères invisibles

Pour afficher les caractères invisibles passer en mode commande en pressant le caractère deux points (:)
:set list
Pour faire disparaître les caractères invisibles :
:set nolist
# ou
:set list!

Afficher la fin de ligne

# Je ne trouve pas comment afficher clairement les caractères de fin de ligne avec vi.
# Je préfère passer par Eclipse : Délimiteur de ligne avec Eclipse.

Effacer une ligne

Pour effacer une ligne avec Vim saisir la commande dd
A mon premier essai il me semble que ddd m'a effacé 3 lignes. A vérifier.

Annuler une modification

Pour revenir en arrière sur un écran de Vim suite à une modification saisir u

Write et Quit

:wq!

Quitter ( 2 fois, pour chacune des fenêtres ?) avec :wq! ou :q!


Commandes de mouvements

Utiliser le cours de kikim5959 : https://kikim5959.github.io/VIM/

Quelques commandes avec Vim

Passer en mode édition

Depuis Vim passer en mode édition avec la touche a

Insérer / Remplacer

Pour insérer du texte : FN insert

Pour remplacer un caractère : Fn insert ( x2 )

Renommer le nom d'un des écran de vim

:e! NOMDELAFENÊTRE

Attention, si un contenu est présent et non enregistré, il est perdu.

Exemple de manipulation avec Vim

mkdir -p exemple
cd exemple
vi .screenrc
:split toto (Ouvrir une fenêtre toto)
:%! elinks http://www.softpanorama.org/Utilities/Screen/screenrc_examples.shtml
:se nu
200 Y (Placer le curseur à l'endroit souhaité)
ctrl w x2
P (pour coller le texte copié)
Penser à la touche insert ( fn insert sur portable ) pour ajouter du texte ( ou alt i )
Enregistre vers un fichier :w! NomDuNouveauFichier
( Sans espaces sinon, on crée 2 fichiers, ou plus )

Supprimer 80 lignes depuis la position

:se nu
80dd
:wq!

Liens complémentaires pour appréhender Vim

http://www.tuteurs.ens.fr/unix/editeurs/vim.html
https://doc.ubuntu-fr.org/vim
http://www.gogolplex.org/?vim

Tutoriel la suite

Commandes généralistes

# Quelques commandes vi :
i : Insérer du texte
a : Ajouter du texte
Echap : Sortir du mode choisi précédemment (i ou a)
x : Effacer un caractère
dd : Effacer/couper une ligne
Y : Copier une ligne
p : Coller une ligne
o : Insérer une nouvelle ligne
u : Annuler la dernière action
:w : Enregistrer le fichier
:q : Quitter
:q! : Quitter sans sauvegarder
/mot_à_chercher : Rechercher un mot
n : Rechercher le mot suivant
:g/mot1/s//mot2/g : Rechercher dans tous le fichier le mot1 pour le remplacer par le mot2

Sauvegarder un fichier - quitter vi

:w
sauvegarde le contenu du fichier (l'enregistrer), penser à write
:x
sauvegarde puis quitte vi (exit)
:wq
sauvegarde puis quitte (write and quit)
ZZ
sauvegarde si nécessaire puis quitte
:q
quitte vi sans sauvegarder les modifications (quit)
:e!
ignore les modifications et recharge le fichier (le point d'exclamation marque l'impératif)
:q!

quitte immédiatement, sans rien faire d'autre (donc sans sauvergarder ni demande de confirmation) :w nom_de_fichier sauvegarde le fichier sous le nom nom_de_fichier :w! nom_de_fichier remplace le contenu du fichier nom_de_fichier

Ce deplacer avec le curseur

  • H en haut de l'écran
  • M au milieu de l'écran
  • L en bas de l'écran (lower = au plus bas)
  • h décale d'un caractère à gauche
  • j descend d'une ligne
  • k monte d'une ligne
  • l décale d'un caractère à droite
  • 0 au début de la ligne
  • $ à la fin de la ligne ('$', dans un motif de regexp, désigne la fin d'une ligne)
  • w au début du mot suivant (word = mot)
  • e à la fin du mot suivant (end = fin)
  • b recule d'un mot (back = retour)
  • { recule jusqu'au paragraphe suivant
  • } avance jusqu'au paragraphe précédent
  • ( recule jusqu'à la phrase suivante
  • ) avance jusqu'à la phrase précédente

Se déplacer dans le document édité

# Descendre d'une page (forward = en avant)
[CTRL] + f
# Remonter d'une page (back = en arrière) :
[CTRL] + b
# Descendre d'une demie page :
[CTRL] + d
# Aller à la ligne numérotée X ou X est un entier :
:X

Remplacer du texte

  • rx remplace le caractère à la position du curseur par x (x remplace ici n'importe quel caractère)
  • R remplace, avec ce qui sera saisi ([ESC] pour terminer)
  • R remplace, avec ce qui sera saisi ([ESC] pour terminer)
  • cw remplace uniquement le mot à la position du curseur (word, mot) ([ESC] pour terminer)
  • cnw remplace n mots ([ESC] pour terminer)
  • C remplace la ligne ([ESC] pour terminer)

Supprimer du texte

  • x supprime un caractère (« faire une croix dessus »)
  • dw supprime un mot (delete, détruire)
  • dnw supprime n mots
  • dd supprime une ligne
  • ndd supprime n lignes

Copier-coller

  • Y copie une ligne, donc la place dans un tampon, pour pouvoir ensuite la coller (yank, tirer)
  • nY copie n lignes
  • P colle les lignes avant le curseur (paste, coller)
  • p colle les lignes après le curseur

Annuler ou répéter des modifications

  • u annule la dernière modification (undo, défaire)
  • U annule toutes les modifications effectuées sur la ligne courante
  • . (un point) répète les dernières modifications

Copier-coller de texte dans un fichier

  • ma marque la position "a" dans le fichier
  • ma marque la position "a" dans le fichier
  • :'a,'b nom_de_fichier copie dans le fichier nommé nom_de_fichier le texte situé entre la position "a" et la position "b"

Insertion du contenu d'un autre fichier

  • :r nom_de_fichier insère tout le contenu du fichier nommé nom_de_fichier (read, lire)

Rechercher et remplacer

n

répète la dernière recherche (next, suivant)

N

retourne au résultat de la précédente recherche effectuée

//[RET]

répète la dernière recherche

:x,y s/motif/motif2/g

recherche le motif, en allant de la ligne numérotée x à la ligne y, et le remplace par motif2

:g/motif/s//motif2/g

recherche dans tous les fichiers le motif et la remplace par motif2 (global)

:g/motif/s//motif2/gc

idem, mais demande une confirmation avant de remplacer

:s/texte_à_trouver/nouveau_texte/g

Remplacer un texte.

Rafraîchir l'affichage

C'était très utile avec les anciens terminaux et les liaisons réseau erratiques provoquant des problèmes d'affichage.
Cela ne l'est guère plus.
[CTRL] l
   (control-L) rafraîchit l'affichage
rafraîchit l'affichage et place le curseur en haut
rafraîchit l'affichage et place le curseur au milieu

rafraîchit l'affichage et place le curseur en bas

Bibliographie

Syntaxe SQL avec Vim : http://www.vim.org/scripts/script.php?script_id=3702
Tutoriel en vidéo pour utiliser Vim : https://youtu.be/zdhNMiY6zfo

NAVIGATION

PARTICIPER ET PARTAGER

Bienvenue sur le wiki de Amis SH.
De nombreuses pages sont partagées sur ce wiki.
Créer un compte utilisateur pour participer sur le wiki.
Les pages présentées sur le wiki évoluent tous les jours.
Certaines recherches sont peu abouties et incluent des erreurs.
Utiliser la recherche interne du wiki pour trouver votre contenu.
La page de discussion de Amis SH vous permet de poser vos questions.
Consulter le site amis-sh.fr pour installer votre propre serveur web.
Améliorer le contenu des pages avec vos retours depuis l'onglet discussion.
Ce contenu ne doit pas servir à nuire à autrui ou à un système informatique.
Protéger votre système Linux ou Windows avec cette page dédiée à la sécurité.

SOUTENIR CE WIKI

Soutenir le wiki avec un don en monnaie numérique :
AEON - Bitcoins - Bitcoins Cash - Bitcoins Gold - Bitcore - Blackcoins - Basic Attention Token - Bytecoins - Clams - Dash - Monero - Dogecoins - Ğ1 - Ethereum - Ethereum Classique - Litecoins - Potcoins - Solarcoins - Zcash

OBTENIR DE LA MONNAIE NUMERIQUE

Obtenir gratuitement de la monnaie numérique :
Miner de la cryptomonnaie.