informatique:logiciels:vim
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| informatique:logiciels:vim [2010/01/07 14:59] – vimdiff pteu | informatique:logiciels:vim [2025/07/20 13:28] (current) – [.vimrc] set listchars pteu | ||
|---|---|---|---|
| Line 7: | Line 7: | ||
| * '' | * '' | ||
| * '' | * '' | ||
| - | * '' | + | * '' |
| - | * '' | + | |
| Le mode insertion permet de taper du texte, le mode commande permet de faire tout le reste (tout ce qui suit). Il faut noter que en mode commande, la touche ''< | Le mode insertion permet de taper du texte, le mode commande permet de faire tout le reste (tout ce qui suit). Il faut noter que en mode commande, la touche ''< | ||
| + | |||
| + | |||
| + | =====Les options===== | ||
| + | |||
| + | * '' | ||
| Line 29: | Line 34: | ||
| * '' | * '' | ||
| * '' | * '' | ||
| - | * ''< | + | * ''< |
| * '' | * '' | ||
| * '' | * '' | ||
| Line 35: | Line 40: | ||
| * '' | * '' | ||
| * '' | * '' | ||
| + | * normalement //de nos jours// on peut bouger le curseur avec les flèches directionnelles ; à l' | ||
| =====Manipulation de chaines===== | =====Manipulation de chaines===== | ||
| Line 59: | Line 64: | ||
| * '' | * '' | ||
| * '' | * '' | ||
| + | * '' | ||
| On peut le //coller// par la suite avec '' | On peut le //coller// par la suite avec '' | ||
| - | Pour supprimer | + | Pour supprimer |
| Line 77: | Line 83: | ||
| * '' | * '' | ||
| + | ====Supprimer les lignes contenant un motif==== | ||
| + | Pour supprimer toutes les lignes contenant le motif *toto*, en mode commande : '': | ||
| ====Commande sur tous les buffers==== | ====Commande sur tous les buffers==== | ||
| - | Pour appliquer une commande non pas sur le fichier courant mais sur ous les buffers, il faut utiliser le préfix | + | Pour appliquer une commande non pas sur le fichier courant mais sur tous les buffers, il faut utiliser le préfixe |
| - | :bufdo! %s/ | + | <code bash> |
| + | :bufdo! %s/ | ||
| + | </ | ||
| =====Divers===== | =====Divers===== | ||
| Line 86: | Line 96: | ||
| * '' | * '' | ||
| * '': | * '': | ||
| - | * '' | + | |
| + | | ||
| * '': | * '': | ||
| * '' | * '' | ||
| Line 101: | Line 112: | ||
| </ | </ | ||
| + | * pour lancer vim en mode insertion : '' | ||
| + | |||
| + | =====Thèmes===== | ||
| + | |||
| + | * afficher les thèmes installés: '': | ||
| + | * changer le thème: '': | ||
| =====Commandes avancées===== | =====Commandes avancées===== | ||
| Line 112: | Line 129: | ||
| - | ====Diviser la fenêtre==== | + | ====Diviser la fenêtre |
| - | VIM permet de diviser la fenêtre de façon à travailler simultanément sur 2 fichiers (ou plus..). | + | |
| - | En mode commande, taper '': | + | VIM permet de diviser |
| + | <code bash> | ||
| + | # Ouvrir fic1 et fic2 en partage horizontal (split) | ||
| + | vim -o fic1 fic2 | ||
| - | On passe d' | + | # Ouvrir fic1 et fic2 en partage vertical (vsplit) |
| + | vim -O fic1 fic2 | ||
| + | </ | ||
| + | |||
| + | Dans une fenêtre vim, en mode commande taper '': | ||
| + | |||
| + | On sélectionne un cadre avec: | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | On peut redimensionner | ||
| + | * '' | ||
| + | * '' | ||
| + | On peut ajouter un facteur devant le '' | ||
| + | |||
| + | Pour fermer le split courant : '' | ||
| Line 127: | Line 161: | ||
| * '': | * '': | ||
| + | ====.vimrc==== | ||
| + | C'est le fichier de préférence lu au démarrage de vim. Il recherche par défaut dans la home de l' | ||
| + | |||
| + | Exemple de fichier .vimrc : | ||
| + | <code vim> | ||
| + | " pt3u's .vimrc | ||
| + | " | ||
| + | " sources d' | ||
| + | " http:// | ||
| + | " http:// | ||
| + | |||
| + | " raccourcis pour les tabulations | ||
| + | " src: | ||
| + | " http:// | ||
| + | map < | ||
| + | imap < | ||
| + | map < | ||
| + | imap < | ||
| + | map < | ||
| + | imap < | ||
| + | map < | ||
| + | imap < | ||
| + | |||
| + | " Ne pas assurer la compatibilité avec l' | ||
| + | set nocompatible | ||
| + | |||
| + | " Nombre de commandes dans l' | ||
| + | set history=50 | ||
| + | |||
| + | " | ||
| + | syntax on | ||
| + | |||
| + | " config des couleurs | ||
| + | " precise la couleur de la fonte/bg des commentaires | ||
| + | "" | ||
| + | "" | ||
| + | highlight Comment ctermfg=6 | ||
| + | |||
| + | " choix d'un theme | ||
| + | " colorscheme delek | ||
| + | |||
| + | " | ||
| + | set hlsearch | ||
| + | "turn off match highlighting | ||
| + | map <F10> : | ||
| + | |||
| + | " | ||
| + | set ruler | ||
| + | |||
| + | |||
| + | " affiche la barre de status | ||
| + | set laststatus=2 | ||
| + | " contenu de la barre de status | ||
| + | "set statusline=%< | ||
| + | set statusline= | ||
| + | " buffer number | ||
| + | set statusline+=%-3.3n\ | ||
| + | " file name | ||
| + | set statusline+=%f\ | ||
| + | " flags | ||
| + | set statusline+=%h%m%r%w | ||
| + | " filetype | ||
| + | set statusline+=\[%{strlen(& | ||
| + | " encoding | ||
| + | set statusline+=%{& | ||
| + | " file format | ||
| + | set statusline+=%{& | ||
| + | set statusline+=%= | ||
| + | " current char | ||
| + | set statusline+=0x%-8B\ | ||
| + | " offset | ||
| + | set statusline+=%-14.(%l, | ||
| + | |||
| + | |||
| + | "set nu | ||
| + | " visual bell = avertissements visuels plutot que sonores | ||
| + | set vb | ||
| + | |||
| + | " remplace les tabs par x espaces | ||
| + | set tabstop=4 | ||
| + | "set softtabtop=4 | ||
| + | " indentation automatique | ||
| + | "set autoindent | ||
| + | " espace indent auto | ||
| + | set shiftwidth=4 | ||
| + | " active la touche backspace | ||
| + | "set backspace=2 | ||
| + | " more powerful backspacing ? | ||
| + | "set backspace=indent, | ||
| + | " remplace les tab par des espaces | ||
| + | "set expandtab | ||
| + | |||
| + | " | ||
| + | set cursorline | ||
| + | " | ||
| + | |||
| + | " affiche x lignes en dessous du curseur | ||
| + | set scrolloff=2 | ||
| + | |||
| + | set smartindent | ||
| + | set showmode | ||
| + | " surligne les paires de paranthèses | ||
| + | set showmatch | ||
| + | " affiche les commandes dans la barre de status | ||
| + | set showcmd | ||
| + | " essaye de garder le curseur dans la même colonne quand on change de ligne | ||
| + | set nostartofline | ||
| + | |||
| + | " Option de la complétion automatique | ||
| + | set wildmode=list: | ||
| + | |||
| + | " | ||
| + | |||
| + | " ecriture du buffer automatique avant une action spéciale | ||
| + | set autowrite | ||
| + | set linebreak | ||
| + | |||
| + | " rechch insensitives si en minuscules ; si contient une majuscule alors rechch sensitive | ||
| + | set smartcase | ||
| + | |||
| + | " affiche les numéros de ligne | ||
| + | "set number | ||
| + | |||
| + | " Utilise la souris pour les terminaux qui le peuvent (tous ?) | ||
| + | " pratique si on est habitué à coller sous la souris et pas sous le curseur ; | ||
| + | " attention fonctionnement inhabituel | ||
| + | "set mouse=a | ||
| + | |||
| + | " Envoyer le curseur sur la ligne suivante/ | ||
| + | set whichwrap=<,>, | ||
| + | |||
| + | " auto-backup files (*~) | ||
| + | set backup | ||
| + | "set backupdir=~/ | ||
| + | set backupdir=~/ | ||
| + | |||
| + | " make backup before overwriting a file, to avoid lost of the file because of a write error | ||
| + | " backup file is deleted unless \"set backup\" | ||
| + | "set writebackup | ||
| + | "set backupskip=/ | ||
| + | |||
| + | "swap files (*.swp) - default | ||
| + | "set directory=~/ | ||
| + | |||
| + | " spécifier des retraits de ligne spécifiques pour certains fichiers | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | |||
| + | " activer la gestion des directives " | ||
| + | " http:// | ||
| + | set ttyfast | ||
| + | "set nomodeline | ||
| + | |||
| + | " Color the column after textwidth, usually the 80th | ||
| + | set colorcolumn=80 | ||
| + | |||
| + | " afficher les caractères invisibles (désactivé par défaut pour le lisibilité) | ||
| + | "set list | ||
| + | " personnaliser les caractères l' | ||
| + | set listchars=nbsp: | ||
| + | |||
| + | " Afficher les espaces superflus et les tabulations | ||
| + | :hi ExtraWhitespace ctermbg=darkred | ||
| + | :match ExtraWhitespace /\s\+$\|\t/ | ||
| + | </ | ||
| + | |||
| + | |||
| + | =====Problèmes===== | ||
| + | |||
| + | ====Pavé numérique inutilisable==== | ||
| + | |||
| + | Malgré mon .vimrc aux petits oignons, j'ai un soucis pour saisir les chiffres du numpad (pavé numérique) qui affichent de mauvais caractères lorsque j' | ||
| + | |||
| + | La solution est de se rendre dans les options de Kitty/ | ||
| + | |||
| + | ====Désactiver l' | ||
| + | |||
| + | L' | ||
| + | <code bash> | ||
| + | ligne 1 | ||
| + | ligne 2 | ||
| + | ligne 3 | ||
| + | </ | ||
| + | Pour éviter cela il suffit d' | ||
| + | |||
| + | Un premier niveau de sagesse consiste à mapper ce switch sur une touche, comme par exemple '' | ||
| + | <code bash> | ||
| + | set pastetoggle=< | ||
| + | </ | ||
| + | |||
| + | Un second niveau d' | ||
| + | <code bash> | ||
| + | let &t_SI .= " | ||
| + | let &t_EI .= " | ||
| + | |||
| + | inoremap < | ||
| + | |||
| + | function! XTermPasteBegin() | ||
| + | set pastetoggle=< | ||
| + | set paste | ||
| + | return "" | ||
| + | endfunction | ||
| + | </ | ||
| + | |||
| + | source: [[https:// | ||
| + | |||
| + | ====Ne pas copier les numéros de ligne==== | ||
| + | |||
| + | Quand on copie du texte à la souris alors que les numéros de lignes sont affichés, on les copie (bêtement) avec le texte. On peut certes utiliser les raccourcis '' | ||
| + | |||
| + | Un contournement est de désactiver les numéros de ligne au moment de copier :/ : | ||
| + | <code bash> | ||
| + | :set nonu | ||
| + | </ | ||
| =====Liens===== | =====Liens===== | ||
| * [[http:// | * [[http:// | ||
| + | * [[https:// | ||
informatique/logiciels/vim.1262876363.txt.gz · Last modified: 2013/10/14 20:55 (external edit)