User Tools

Site Tools


informatique:logiciels:vim

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
informatique:logiciels:vim [2020/10/21 13:55] – [Diviser la fenêtre] pteuinformatique:logiciels:vim [2025/01/02 15:48] (current) – [Divers] Thèmes pteu
Line 83: Line 83:
   * ''g'' indique que l'on veut remplacer toutes les occurences du //<motif recherché>// (par défaut on ne modifie que la première).   * ''g'' indique que l'on veut remplacer toutes les occurences du //<motif recherché>// (par défaut on ne modifie que la première).
  
 +====Supprimer les lignes contenant un motif====
 +Pour supprimer toutes les lignes contenant le motif *toto*, en mode commande : '':g/toto/d''
 ====Commande sur tous les buffers==== ====Commande sur tous les buffers====
  
Line 110: Line 112:
 </code> </code>
  
 +  * pour lancer vim en mode insertion : ''vim +startinsert'' ou ''vim +start'' en plus court
 +
 +=====Thèmes=====
 +
 +  * afficher les thèmes installés: '':colorscheme ?'' ou '':colorscheme ^D''
 +  * changer le thème: '':colorscheme <theme>''
 =====Commandes avancées===== =====Commandes avancées=====
  
Line 297: Line 305:
 "swap files (*.swp) - default "swap files (*.swp) - default
 "set directory=~/.vim-tmp,~/.tmp,~/tmp,/var/tmp,/tmp "set directory=~/.vim-tmp,~/.tmp,~/tmp,/var/tmp,/tmp
 +
 +" spécifier des retraits de ligne spécifiques pour certains fichiers
 +"autocmd BufEnter *.py set tabstop=4 softtabstop=4 shiftwidth=4
 +"autocmd BufEnter *.json set tabstop=2 softtabstop=2 shiftwidth=2
 +"autocmd BufEnter *.yml set tabstop=2 softtabstop=2 shiftwidth=2
 </code> </code>
  
Line 308: Line 321:
 La solution est de se rendre dans les options de Kitty/Putty, dans : Terminal/Features et de cocher l'option "Disable application keypad mode". La solution est de se rendre dans les options de Kitty/Putty, dans : Terminal/Features et de cocher l'option "Disable application keypad mode".
  
 +====Désactiver l'indentation pour coller du texte====
  
 +L'auto-indentation c'est pratique lorsqu'on écrit du code mais lorsqu'on copie/colle du texte ça devient infernal car chaque nouvelle ligne se décale un peu plus pour devenir une suite informe de bouts de mots.
 +<code bash>
 +ligne 1
 +     ligne 2
 +          ligne 3
 +</code>
 +Pour éviter cela il suffit d'activer l'option '':set paste'', qui désactive toute initiative de vim d'auto-indenter quoi que ce soit. On copie/colle le contenu, puis on réactive : '':set nopaste''.
 +
 +Un premier niveau de sagesse consiste à mapper ce switch sur une touche, comme par exemple ''F3'' :
 +<code bash>
 +set pastetoggle=<F3>
 +</code>
 +
 +Un second niveau d'érudition est d'activer ce switch automatiquement lors du copier/coller (lignes à ajouter dans le vimrc) :
 +<code bash>
 +let &t_SI .= "\<Esc>[?2004h"
 +let &t_EI .= "\<Esc>[?2004l"
 +
 +inoremap <special> <expr> <Esc>[200~ XTermPasteBegin()
 +
 +function! XTermPasteBegin()
 +  set pastetoggle=<Esc>[201~
 +  set paste
 +  return ""
 +endfunction
 +</code>
 +
 +source: [[https://coderwall.com/p/if9mda/automatically-set-paste-mode-in-vim-when-pasting-in-insert-mode|Automatically set paste mode in Vim when pasting in insert mode]]
 +
 +====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 ''v''/''V'', ''y'' pour copier, et enfin ''p'' pour coller mais cela ne fonctionne qu'en interne dans **vi**, pas si on veut coller le texte dans une autre appli.
 +
 +Un contournement est de désactiver les numéros de ligne au moment de copier :/ :
 +<code bash>
 +:set nonu
 +</code>
 =====Liens===== =====Liens=====
  
   * [[http://www.linux-france.org/article/appli/vi/faq/index.html|FAQ VIM]]   * [[http://www.linux-france.org/article/appli/vi/faq/index.html|FAQ VIM]]
 +  * [[https://vimawesome.com|Awesome Vim plugins (from across the Universe)]]
informatique/logiciels/vim.1603288550.txt.gz · Last modified: 2020/10/21 13:55 by pteu