Détails divers dans Vim
-
Lire des logs Apache en couleur : installer ce fichier de syntaxe dans ~/.vim/syntax/ et ajouter dans ~/.vimrc cette ligne :
autocmd BufRead *access*log*,*hosting.ovh.net*.log setf httplog
(adapter les noms de fichiers, évidemment)
(plus simple que lnav)
-
Passer d'une sélection par caractères (v) à une sélection par lignes : V (v majuscule) tout simplement. Et inversement.
Utile pour sélectionner un bloc de lignes du genre if (…) { … }
quand on a le curseur dans le bloc, en incluant le if : va}V
-
Faire en sorte que _ soit considéré comme un caractère délimiteur de mots (word boundary) et qu'il ne fasse plus partie du mot :
set iskeyword-=_
Ce qui permet d'utiliser par exemple le déplacement par e dans "ceci_est_un_exemple" pour aller à la fin de "ceci", puis "est", puis "un", etc.
-
Lister toutes les commandes (tous les "raccourcis clavier") avec l'origine (qui crée ce "raccourci") :
:verbose map
(La première colonne, c'est le mode) ou pour un seul mode :nmap
(mode normal) :imap
(mode insertion) etc.
-
Faire un diff avec vimdiff ou gvimdiff en ignorant les changements d'espaces :
vimdiff -c 'set diffopt+=iwhite' fichierA fichierB
dans le terminal
-
Afficher les numéros de lignes sur le bord gauche dans Vim, uniquement pour du code :
mettre dans ~/.vimrc
autocmd BufEnter *.php,*.tpl,*.sh,*.py,*.java,*.html,*.css,*.scss,*.js,*.twig setlocal number
-
Et afficher ces numéros en gris :
highlight LineNr ctermfg=grey
-
Donner un fond de couleur à une fenêtre particulière pour la distinguer :
(ça peut être une version précédente dans Git, un buffer readonly ou toute autre chose…)
hi ColorColumn ctermbg=253
(gris clair, par exemple)
puis
setlocal wincolor=ColorColumn
C'est un hack puisqu'on utilise un groupe highlight pour autre chose mais comme il sert peut, ça passe…
-
Ne pas copier les numéros de ligne en sélectionnant avec la souris :
:set mouse+=a
-
On peut avoir une modeline dans un fichier HTML
<!-- vim: set nowrap: -->
(il faut avoir set modeline
dans son .vimrc ou la conf par défaut)
-
Changer des valeurs telles que
true
en false
ou yes
en no
en une combinaison de touches : utiliser l'extension CtrlXA qui étend les possibilités de Ctrl a et Ctrl x au-delà d'incrémenter et décrémenter des chiffres (ou des listes de chiffres, d'ailleurs, par g Ctrl a)
-
Ouvrir un terminal dans une fenêtre de Vim :
:term
ou :terminal
Passer du mode shell au mode normal de Vim pour pouvoir copier-coller dans Vim : Ctrl w N (N majuscule, càd Maj n)
Revenir dans le shell : i
Coller dans le shell : Ctrl w " suivi du registre ! (donc après un simple yank il faut encore ajouter ") (risque de confusion avec Ctrl r ")
-
Quand tu fais
vim foo/bar/baz
alors que le répertoire n'existe pas, et que tu t'en aperçois au moment de sauver... :!mkdir -vp %:h
(mouais, pas facile à retenir)
-
Futile mais amusant, insérer du texte en couleur dans Vim avec les codes couleurs ANSI : saisir Ctrl v puis Échap puis [ puis le code couleur dans cette liste, par exemple 32 pour vert, puis m puis le texte puis, pour arrêter la couleur, Ctrl v puis Échap puis [0m. Au final, ça doit ressembler à
^[[32mCoucou^[[0m
. Sauver le fichier, faire cat fichier
et le texte doit s'afficher en vert. Pour voir la couleur dans Vim directement, installer le script AnsiEsc.