Files
huhuhu_config/tutos/vim.txt
asus 2c48a84487 add graph command in git tuto
add number increase command in vim tuto
2023-09-21 11:29:56 +02:00

187 lines
7.8 KiB
Plaintext

/MODE NORMAL/
***** search the next occurence of the word under cursor
/MODE INSERTION/
**i** mode insertion avant le curseur
**I** mode insertion au debut de la ligne
**a** mode insertion apres le curseur
**A** mode insertion a la fin de la ligne
**o** mode insertion a la ligne
**O** mode insertion a la ligne du dessus
**3iTEXT** ecrira trois fois TEXT
**ctrl r** * colle depuis le clipboard en mode insertion
/COMMANDES/
**:w** enregistrer
**:w !sudo tee %** trick to save a page with sudo
**:q** quitter
**:wq** ou **ZZ** enregister et quitter
**:q!** force a quitter
**:** mode commande
**work with multiple files :**
**:e** open a new file in new buffer
**:e C-d** print the list of files in current directory
**:e <word>C-d** auto complete <word> with a mathing name of files in current directory
**:b <tab>** roll between opened files
**:set hidden** add that to be able to cancel changes
**:ls** list buffer oppened
**:x bw** delete buffer number x, even if it's a directory
**:bd** delete buffer
**:bp** go to previous buffer
**:bn** go to next buffer
**:b#** switch to last edited buffer
**:e.** open a temporary navigation explorer
**:Explore / :ex<tab>** navigate through directory, rename, and plus
**:Lexplore / :Lex<tab>** buffer directory open in left split window
**:Lexplore 30** Explore window is of size 30
**:vertical resize 40**
**search through files :**
**:vim** the one function that gets to be name as the software ;)
performes a kind of grep search on a list of files
**:vim pattern *\* ** performs search on all sub folders
**:vim pattern *.xml *.cpp** (without space between the two dots) performs search on all files of these extensions
**:cn** go to next search result (might be in same file)
**:cp** go to previous search result (might be in same file)
**:cnf** go to next search result in next file
**:cpf** go to previous search result in previous file
**:cw** list all results
**:%y+** copie toutes les lignes DANS LE CLIPBOARD
**:set paste** copier sans les effets des tabulations
**: up** affiche les dernieres commandes
**:set number** ecrit les numeros de lignes
**:set syntax=ON** active la coloration du texte
**:set tabstop=4** montre les tabulations (meme existantes) de longueur 4
**:set colorcolumn=80** ajoute une ligne verticale a la colone 80
**transformer des espaces en tab :**
**:set ts=2** ts pour tabstop, 2 si 2 espaces
**:set noet** noet pour noexpandtab == use tabs no spaces
**:%retab!** retabule tous le fichier
**:set autoindent** copie l'indentation de la ligne precedente
**:source ~/.vimrc** actualise le fichier vimrc sans redémarrer vim
**:sav newname** save as with a new name
**:!rm oldname** or **:!rm <ctr r>#** to delete the old copy
**:sp** split windows (**<ctr w arrow>** to navigate)
**:vsp** split verivally
**:on** unsplit by closing all windows except the active one
**:sp filename** open a new or already existing filename in split mode
**:sp %:h/filename** open new file in the same directory
**%** refers to the current directory
**:h** current directory minus file name and slash
**:colo** active un systeme de coloration a choisir parmis :
-- darkblue -- blue -- default -- delek -- desert --
-- elflord -- evening -- koehler -- morning --
-- murphy -- pablo -- peachpuff -- ron -- shine --
-- slate -- torte -- zellner --
(pour le modifier de manniere permanente :
- pour l'utilisateur courant:
ouvrir ou creer le fichier ~.vimrc
et ajouter dedans: colo "nom du jeu de couleur";
- pour tous les utilisateurs:
ouvrir le fichier /etc/vim/vimrc
et y ajouter: colo "nom du jeu de couleur")
/MODE VISUEL/
**v** mode visuel, selectionne avec le deplacement du curseur
**v** **:s/o/n** remplace la premiere occurence par ligne en mode visuelle
**v :s/o/n/g** remplace toutes les selections de chaque ligne
**v :s/o/n/gc** demande confirmation (y:yes, n:no, a:all remaining, q:quit, l:last)
/MODE REMPLACEMENT/
**R** mode remplacement (esc pour sortir)
/MODE VISUAL BLOCK/
**ctrl v** passe en mode remplacement
1-mettre le curseur au debut d'un ligne a commenter
2-passer en visual block mode
3-avec les fleches descendre jusqu'a la derniere ligne
4-appuyer sur shift+i pour passer en mode insertion
5-inserer le.s signe.s de commentaire (par exemple: //)
6-appuyer sur esc (ttes les lignes vont se commenter)
/MODE INTERACTIF/
**esc** quitte le mode insertion pour rentrer en mode interactif
**x** supprime une lettre
**r** remplace une lettre (rs remplace la lettre par s)
**u** annuler
**0** et **$** debut et fin de ligne
**gg** et **G** aller a la premiere et derniere ligne
**w** avancer le curseur au debut du mot suivant
**b** reculer le curseur au debut du mot actuel
**e** avancer le curseur a la fin du mot actuel
**5G** aller a la ligne 5
**5g up/down** va 5 lignes up ou down
**g,** va a la position du curseur avant la derniere modification
**f** va au prochain signe demandé, par exemple "fa" va au prochain a
**ctrl r** refaire
**ctrl r 0** colle la derniere selection copiee avec y
**ctrl n** auto-completion
**dd** coupe une ligne
**dw** coupe du curseur a la fin du mot
**diw** coupe le "inner" mot
**bde** pareil (begining delete end)
**bdw** pareil mais en mangeant en plus l'espace en trop avec le mot suivant
**d0** coupe du curseur jusqu'au debut de ligne
**d$** coupe du curseur jusqu'a la fin de ligne
**yy** copie la ligne
**p** colle une ligne
**.** repete la derniere commande
**"ayy** copie la ligne dans le buffer a
**"ap** colle la ligne du buffer a
**g up/down** go a la ligne du dessous meme quand c la meme ligne en wrap
**gUU** passe la ligne en uppercase
**guu** passe la ligne en lowercase
**bgUw** change le mot en uppercase
**~** change casse du caractere sous le cursor
***** va a la prochaine occurence du mot sous le curseur
**q:** affiche les dernieres commandes
**==** rétablit la bonne indentation pour la ligne
**=G** rétablit la bonne indentation pour toute la page
**''** go to last cursor position
**gx** open the file under cursor, or url or links
**g ctrl a** increment a column of numbers :
- create a column of "0"
- then select them in visual block **ctrl v arrow**
- then hit **g ctrl a**
- or **g ctrl a a** if using screen
- **ctrl a** is a vim feature to increase a number
/REMPLACER/
**:s/old/new** remplace la 1ere occurence de ancien par nouveau
**:%s/old/new** remplace toutes les occurences
**:s/o/n/gi** i veut dire case insensitive
**:s/A\zsB\zeC/X** remplace ABC par AXC
**:s/A\zs[0-9]** * **\zeC/#\0@** remplace A865C par A#865@C, ou A123C par A#123@C
replacement : **/old** va a la premiere prochaine occurence de 'old'
**n** va a la prochaine occurence
**:s//new** remplace 'old' par 'new'
**N** va a la precedente occurence
**&** repete la substitution
**u** annule la deniere substitution
etc...
replacement2: **vim old %** va a la toute premiere occurence de 'old'
**:s/old/new** remplace 'old' par 'new'
**:cn** va a la prochaine occurence
**&** repete la substitution
**:p** va a la precedente occurence
**u** annule la derniere sunstitution
etc...
**command! Name %s//** a écrire dans le fichier ~/.vimrc, créer une fonction
**Name** (tjrs avec une majuscule) qui s'execute quand on
l'appel. => **:command! Name %s/a/b <bar> %s/A/B** <=> grace à
<bar> on peut écrire plusieurs fonctions a la suite
**function! Test()** dans ~/.vimrc définit une fonction qui execute plusieurs
commandes. Il faut les appeler avec :exec Test(), le ! est
tres important pour que la fonction se réecrive a chaque
fois, sinon conflit
/SET SYNTAX FOR A FILE WITH EXTENSION NOT RECOGNIZE/
/in case the syntax already exist/
/like .tpp files with same syntax than .hpp, that have same syntax than .cpp/
/.hpp files are detected but not .tpp files/
**:set syntax=cpp** say to use cpp syntax
**in .vimrc :** filetype on
au BufNewFile,BufRead *.tpp set filetype=cpp