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 [2009/02/16 20:20] – pteu | informatique:logiciels:vim [2025/01/02 15:48] (current) – [Divers] Thèmes 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==== | ||
+ | |||
+ | Pour appliquer une commande non pas sur le fichier courant mais sur tous les buffers, il faut utiliser le préfixe '': | ||
+ | <code bash> | ||
+ | :bufdo! %s/ | ||
+ | </ | ||
=====Divers===== | =====Divers===== | ||
Line 82: | Line 96: | ||
* '' | * '' | ||
* '': | * '': | ||
- | * '' | + | |
+ | | ||
* '': | * '': | ||
* '' | * '' | ||
Line 92: | Line 107: | ||
Notez que le ^M s' | Notez que le ^M s' | ||
+ | * comparer 2 fichiers avec **vimdiff** : très pratique car beaucoup plus visuel que le traditionnel diff | ||
+ | < | ||
+ | vimdiff toto.sh toto2.sh | ||
+ | </ | ||
+ | * 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 104: | 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 119: | 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 | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | </ | ||
+ | |||
+ | |||
+ | =====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.1234815654.txt.gz · Last modified: 2013/10/14 20:55 (external edit)