| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente |
| linux:vim [2022/06/03 23:18] – [Raccourcis] add how to format XML contents phsw | linux:vim [2025/03/07 22:40] (Version actuelle) – [Raccourcis] add how to save a file not opened with sudo phsw |
|---|
| * https://www.youtube.com/watch?v=fnocbpK_vnw | * https://www.youtube.com/watch?v=fnocbpK_vnw |
| * [[http://sed.bordeaux.inria.fr/org/vim_prog.html]] | * [[http://sed.bordeaux.inria.fr/org/vim_prog.html]] |
| | * [[https://seniormars.com/posts/neovim-workflow/|An Experienced (Neo)Vimmer's Workflow]] |
| | * https://linuxhandbook.com/vim/ |
| | * [[https://ankursinha.in/2017/09/19/writing-latex-well-in-vim.html|Writing LaTeX well in Vim]] |
| |
| |
| ----- | |
| |
| ==== Ouvrir un fichier ==== | ==== Ouvrir un fichier ==== |
| * ''Ctrl+L'' permet de rafraîchir l'affichage, et donc la coloration syntaxique (utile s'il y avait avant une ligne qui la fait planter). | * ''Ctrl+L'' permet de rafraîchir l'affichage, et donc la coloration syntaxique (utile s'il y avait avant une ligne qui la fait planter). |
| |
| * en mode visuel, ''g C-g'' permet d'avoir des statistiques sur ce qui est sélectionné (nombre de lignes, ... [[https://stackoverflow.com/questions/7262536/vim-count-lines-in-selected-range|source]]) | * en mode visuel, ''g C-g'' permet d'avoir des statistiques sur ce qui est sélectionné (nombre de lignes, ... [[https://stackoverflow.com/questions/7262536/vim-count-lines-in-selected-range|source]]). Si rien ne s'affiche, tenter la commande '':set cmdheight=2'' ([[https://vi.stackexchange.com/questions/45226/v-g-ctrl-g-in-neovim-does-not-work|source]]) |
| |
| * ''Maj+R'' passe en mode remplacement: équivalent du mode insertion, mais le curseur écrase ce qui est déjà présent. | * ''Maj+R'' passe en mode remplacement: équivalent du mode insertion, mais le curseur écrase ce qui est déjà présent. |
| | * Pour coller tout en remplaçant : ''Maj+R C-r "'' ([[https://stackoverflow.com/questions/25413220/pasting-with-overwrite-in-vim|source]]) |
| | |
| | * en mode insertion, ''C-x C-g'' permet de compléter les chemins/noms de fichiers. |
| |
| |
| [[https://www.techrepublic.com/blog/linux-and-open-source/use-tabs-to-open-multiple-files-in-vim/|Source]] | [[https://www.techrepublic.com/blog/linux-and-open-source/use-tabs-to-open-multiple-files-in-vim/|Source]] |
| |
| Ouvrir plusieurs fichiers, chacun dans un onglet: | Ouvrir plusieurs fichiers ([[https://superuser.com/questions/486532/how-to-open-files-in-vertically-horizontal-split-windows-in-vim-from-the-command|source]]) : |
| <code bash> | <code bash> |
| vim -p file1 file2 ... | vim -p file1 file2 ... # un fichier par onglet |
| | vim -o file1 file2 ... # un fichier split horizontal |
| | vim -O file1 file2 ... # un fichier split vertical |
| </code> | </code> |
| |
| <code vim> | <code vim> |
| :w !diff % - | :w !diff % - |
| | </code> |
| | |
| | |
| | === Sauvegarder en sudo === |
| | |
| | [[https://stackoverflow.com/questions/2600783/how-does-the-vim-write-with-sudo-trick-work|Source]] |
| | |
| | <code vim> |
| | :w !sudo tee % |
| </code> | </code> |
| |
| |
| |
| | |
| | === Convertir les formats d'indentation === |
| | |
| | Convertir 4 espaces en tabulations ([[https://stackoverflow.com/questions/9104706/how-can-i-convert-leading-spaces-to-tabs-in-vim-or-linux|source]]) : |
| | <code vim> |
| | :set tabstop=4 " To match the sample file |
| | :set noexpandtab " Use tabs, not spaces |
| | :%retab! " Retabulate the whole file |
| | </code> |
| | |
| | |
| | === Indiquer des options à Vim par fichier === |
| | |
| | Pour par exemple préciser le langage utilisé dans un fichier, ajouter un commentaire : |
| | <code bash> |
| | # vim: ft=ruby |
| | </code> |
| ==== ctags ==== | ==== ctags ==== |
| |
| === Plugins sans configuration === | === Plugins sans configuration === |
| |
| * ''tpope/vim-sleuth'': détecte automatiquement l'indentation du fichier et configure les tabs/... | * ''tpope/vim-sleuth'' : détecte automatiquement l'indentation du fichier et configure les tabs/... |
| * ''nelsyeung/twig.vim'': coloration syntaxique pour les fichiers Twig | * ''nelsyeung/twig.vim'' : coloration syntaxique pour les fichiers Twig |
| | * ''luochen1990/rainbow'' : coloration des parenthèses (presque sans configuration) |
| | * ''wsdjeg/vim-fetch'' : permet d'ouvrir le fichier à la ligne ''n'' quand on demande à ouvrir ''foo.txt:n'' |
| |
| |
| |
| * [[https://github.com/junegunn/gv.vim]] | * [[https://github.com/junegunn/gv.vim]] |
| | |
| | |
| | === Coloration syntaxique avec LaTeX === |
| | |
| | Corriger la coloration syntaxique cassée dès qu'un dollar est saisi dans un environnement ''lstlisting'' ou ''\lstinline{}'' : |
| | * [[https://tex.stackexchange.com/questions/566068/dollar-sign-breaks-syntax-highlighting-in-vim]] |
| | * [[https://stackoverflow.com/questions/6738902/vim-syntax-highlighting-with-and-lstlistings-lstinline/21651323#21651323]] |
| | * [[http://www.drchip.org/astronaut/vim/index.html#LATEXPKGS]] |
| | |
| | <code vim> |
| | syn region texZone matchgroup=texBeginEnd start="\\begin{lstlisting}" matchgroup=texBeginEnd end="\\end{lstlisting}\|%stopzone\>" |
| | syn match texInputFile "\\lstinline\s*\(\[.*\]\)\={.\{-}}" contains=texStatement,texInputCurlies,texInputFileOpt |
| | </code> |
| | |