HervéRenault.fr

logo d'Eclipse

Mon aide-mémoire Eclipse / Vim

J'ai commencé à utiliser Vim en stage de fin d'études en 1996 parce qu'on m'a dit « si tu veux travailler sur Unix, il faudra que tu apprennes à utiliser Vi ». J'ai trouvé ce logiciel bizarre mais je m'y suis mis. Pendant des années, j'avoue que je me suis contenté d'en savoir le minimum. J'apprenais au fur et à mesure, mais sans passion. Puis j'ai essayé Emacs (XEmacs pour être précis) pendant quelques années, mais je suis revenu à Vim car je préférais la concision de ses "raccourcis clavier" (commandes). Quelques années plus tard, on m'a dit qu'Eclipse était beaucoup plus "pro" que Vim, alors je l'ai essayé aussi. C'était alors un logiciel qui mettait de longues secondes à démarrer et qui consommait beaucoup de mémoire. Puis le matériel est devenu puissant, alors j'ai commencé à l'apprécier. Mais finalement je suis encore revenu à Vim pour sa rapidité et parce qu'il est sur tous les serveurs accessibles en SSH. Eclipse m'a quand même permis de découvrir des fonctions d'aide à la programmation qui manquaient dans Vim, à l'époque. En comparaison, Eclipse est un IDE fourni en une seule pièce alors que pour avoir la même chose avec Vim, il faut l'assembler avec les pièces de son choix. C'est la bonne vieille idée du produit fourni en kit : chronophage mais fun. Néanmoins, je ne veux pas oublier ce que j'ai appris avec Eclipse, alors voici mon aide-mémoire Eclipse / Vim.

Ces raccourcis fonctionnent aussi (à peu près) dans Netbeans ou Android Studio, en choisissant les réglages clavier d'Eclipse.

On remarquera que les commandes de Vim ont une signification en anglais, par exemple ct< signifie change till < (changer jusqu'au caractère <), yiw signifie yank in word (copier l'intérieur du mot), va" signifie visual around " (faire une sélection visuelle entourant les caractères ")

J'ai indiqué les touches par cette présentation et les commandes Vim ou le code par cette présentation.

Action Vim Eclipse
Aller à la ligne numéro 123 :123 ou 123G Ctrl l
Numéroter les lignes ou pas :set number ou :set nonumber (dans les préférences mais pas de raccourci ?)
Aller de la parenthèse fermante à l'ouvrante et réciproquement % (fonctionne aussi sur des balises HTML/XML avec le plugin matchit) Maj Ctrl p
Aller au prochain caractère a fa (forward) met le curseur sur a, ta (till) met le curseur sur le caractère à gauche de a (?)
Aller au précédent caractère a Fa met le curseur sur a, Ta met le curseur sur le caractère à droite de a (?)
Aller au début du bloc { } [{ Maj Ctrl p
Aller à la fin du bloc { } ]} Maj Ctrl p
Aller au début de la fonction/méthode courante [m Maj Ctrl ⬆
Aller au prochain paragraphe } (?)
Aller au milieu de la fenêtre M (Middle) (?)
Aller en bas de la fenêtre L (Low) (?)
Aller en haut de la fenêtre H (High) (?)
Aller en début de ligne de texte
en tenant compte de l'indentation éventuelle
^ Début
Aller en colonne zéro 0 2 fois
Aller en bout de ligne $ Fin
Écraser/changer le texte jusqu'à la fin de la ligne C ou c$ Maj Fin
Effacer jusqu'à la fin de la ligne D ou d$ Maj Fin puis Suppr
Remplacer un caractère et saisir
typiquement un espace
s puis saisir (ou x puis i) Suppr puis saisir
Remplacer toute la ligne S ou cc Début puis Maj Fin
Insérer en début de ligne
en tenant compte de l'indentation éventuelle
I Début
Insérer en bout de ligne A Fin
Insérer une ligne o sous la ligne courante
ou O au-dessus (o majuscule)

Un détail énervant quand on utilise la commande O avec le réglage par défaut de Vim, c'est qu'il fait une pause d'une seconde pour distinguer O de l'émulation des touches flèchées (une vieille histoire de terminaux Unix ?).
Ça peut se régler en mettant l'option set ttimeoutlen=100 dans ~/.vimrc
(ce sont des millisecondes)
Fin puis Entrée
Aller à la ligne suivante/précédente flèche ou g flèche
avec g, la flèche déplace le curseur d'une ligne d'écran, comme dans un traitement de texte, y compris s'il s'agit de la même ligne qui déborde de la largeur de fenêtre avec l'option :set wrap
flèche
il n'y a pas de concept de ligne vs ligne d'écran
Liste des fichiers ouverts récemment :browse oldfiles

Pour filtrer :
:browse filter /bidule/ oldfiles

ou avec le plugin ctrlp.vim (liste mru)

ou plus rapide encore avec le plugin fzf.vim :History
Menu File
Aller au dernier endroit modifié dans le fichier g; (on peut remonter plusieurs fois en arrière) (liste avec :changes) (info sauvée dans .viminfo) Ctrl q (l'info n'est pas sauvée ?)
Revenir à l'endroit modifié suivant g, (on peut le faire plusieurs fois) (?)
Répéter la dernière opération (insertion, remplacement, indentation…) . (?)
Répéter 10 fois la dernière opération 10. (?)
Répéter la dernière commande du type :s/foo/bar/gc @: une première fois puis @@ les fois suivantes (?)
Annuler (undo) La dernière modif : u
Toutes les modifs de la ligne : U
Ctrl z
Rétablir (redo) Ctrl r Ctrl y
Supprimer le caractère sous le curseur x Suppr
Supprimer le caractère à gauche du curseur X
Supprimer le mot à gauche du curseur
en mode insertion ou sur la ligne de commande : Ctrl w
en mode normal : db
(delete till beginning of word)
Ctrl ⌫
Supprimer une ligne dd Ctrl d
Supprimer toutes les lignes qui commencent par foo :g/^foo/d
globalement, cherche ^foo et delete
(?)
Supprimer 5 lignes 5dd (?)
Dupliquer 5 lignes 5yyP (?)
Déplacer une ligne vers le bas ddp ou avec la commande :move :m +1 Alt ⬇
Déplacer une ligne vers le haut dd ⬆ P ou avec la commande :move :m -2 Alt ⬆
Copier une ligne dans un registre (une sorte de presse-papiers alternatif, :registers pour les lister) "ayy (où a est le nom du registre) (?)
En particulier, copier dans le presse-papiers de Linux "+yy (+ est le registre presse-papiers)
Coller une ligne en respectant l'indentation à l'endroit où on colle p ou P ne suffisent pas pour l'indentation
]p pour coller après la ligne courante
]P pour coller avant la ligne courante
(automatique, non ? je ne sais plus)
Coller du texte depuis le presse-papiers
  • "+p en mode commande
  • Ctrl r + en insertion
(Maj Ctrl v du terminal est lent)
Ctrl v
Coller du texte depuis la sélection X11
  • "*p en mode commande
  • Ctrl r * en insertion
    ou Maj Inser ou clic bouton du milieu
Maj Inser ou clic bouton du milieu
Coller tel quel sans indenter :set paste puis p (?)
Sélectionner toute la ligne V (majuscule) puis Maj Fin
Sélectionner tout le paragraphe vip (visual in paragraph) (?)
Sélection rectangulaire (verticale) Ctrl v puis flèche ou } Maj Alt a puis Maj flèche
Insérer sur plusieurs lignes Faire une sélection rectangulaire puis I puis saisir puis Echap Faire une sélection rectangulaire puis saisir
Ajouter à la fin sur plusieurs lignes Faire une sélection rectangulaire puis $A puis saisir puis Echap (?)
Déplacer le curseur au début ou à la fin de la sélection active o
et aussi Maj o pour une sélection rectangulaire
(?)
Remplacer un caractère par un autre, par exemple i r i Suppr i
Écraser au lieu d'insérer R Inser
Joindre deux lignes en une seule J reformate avec un espace entre deux
gJ ne reformate pas
(?)
Joindre plus de deux lignes VJ ou VgJ (?)
Replier tous les blocs de code zM
Se lit comme pliage (z) Maximal
Pour PHP : dans .vimrc ajouter let php_folding = 1
Maj Ctrl / du pavé numérique
Déplier tous les blocs de code zR
Se lit comme pliage (z) Réduit
Ctrl * du pavé numérique
Déplier/replier le bloc sous le curseur za
Se lit comme pliage (z) alterné
(?)
Replier les lignes sélectionnées zf
il faut d'abord être en méthode de pli manuelle
:set foldmethod=manual
(?)
Correction orthographique du mot sous le curseur :set spell spelllang=fr puis z= activer dans Window > Preferences puis Ctrl 1
Reformater un texte à 75 caractères de large Sélectionner les lignes puis :!fmt
Vim va transformer en :'<,'>!fmt
Ou la ligne sous le curseur :.!fmt
(?)
Désactiver le retour au début dans la fonction chercher :set nowrapscan Décocher la case Wrap Search
Chercher un fichier dont le nom contient foo :e **/*fooTabulation
Plus pratique avec l'option :set wildmenu
et avec :set wildmode=list:full

Plus pratique avec le plugin ctrlp.vim : Ctrl p foo
Pour chercher dans les buffers déjà ouverts Ctrl ↑
Et s'il ne trouve toujours rien, c'est peut-être que le buffer est sous tes yeux :b

Encore plus rapide avec le plugin fzf.vim :FZF
Et dans les buffers ouverts :Buffers
Maj Ctrl r foo
Chercher une classe ou une variable ou une fonction Avec le programme ctags et le plugin vim-gutentags :
:tselect MaClasse
Fonctionne sur une portion du nom avec :ts /lass

Pour chercher sur des morceaux de tags, par exemple pour chercher MaClasseAvecUnNomTresTresLong en saisissant seulement clanomtre :

Avec le plugin ctrlp.vim Ctrl p puis Ctrl ↑ pour aller à l'onglet des tags

Plus rapide avec le plugin fzf.vim :Tags
Maj Ctrl t
Chercher les utilisations de la classe, la variable ou la fonction sous le curseur Pour du C, avec cscope ou GNU Global. Ou sinon, palliatif :
:vimgrep Ctrl r Ctrl w **/*.php | cwindow

Plus moderne et exact : installer le plugin ALE et un language server puis utiliser :ALEFindReferences
Maj Ctrl g
Outline : visualiser les classes, variables, fonctions Avec le plugin Tagbar
:Tagbar
Ctrl o
Chercher foo dans l'éditeur /foo
puis :noh pour désactiver la surbrillance jusqu'à la prochaine recherche mais pas :set nohlsearch qui désactive la surbrillance pour toute la session
Ctrl f
Chercher uniquement dans la sélection courante /\%Vfoo
(ne pas oublier de faire Échap avant, pour quitter le mode sélection)
(?)
Chercher en ignorant la casse Juste une fois : /foo\c

Tout le temps : :set ignorecase ou :set ic
Cocher ignorer la casse
Chercher en respectant la casse Juste une fois, si on a fait :set ic : /foo\C

Tout le temps : :set noignorecase ou :set noic
Décocher ignorer la casse
Savoir si on est sensible à la casse ou pas :set ic? (sans objet)
Chercher le mot sous le curseur * (pas besoin de le sélectionner) Le sélectionner puis Ctrl f
Chercher le texte sélectionné Echap pour sortir du mode sélection puis / Ctrl r *
Le registre * de la sélection X11
(voir :help <C-R> pour les autres)
Ctrl k
Chercher le mot sous le curseur dans tous les fichiers :vimgrep Ctrl r Ctrl w ** puis :cwindow
ou
:grep -nri Ctrl r Ctrl w . puis :cw
ou
:vimgrep Ctrl r Ctrl w ** | cw
Ctrl h
Chercher dans le fichier/buffer courant et afficher la liste des correspondances :vimgrep foo % | cw
puis aller à la correspondance suivante avec :cnext
(?)
Mettre en surbrillance toutes les occurences de la recherche :set hls (highlight search) Maj Alt o
Remplacer foo par bar dans tout le fichier :%s/foo/bar/g Ctrl f puis cliquer sur "Tout remplacer"
Remplacer foo par bar dans tout le fichier avec confirmation :%s/foo/bar/gc Ctrl f puis ne pas cliquer sur "Tout remplacer"
Remplacer foo par bar dans la sélection Sélectionner puis :s/foo/bar/g Ctrl f puis cliquer sur "Remplacer dans la sélection"
Renommer une variable dans un bloc D'abord chercher la variable avec * puis sélectionner le bloc avec va{ puis commencer à saisir la commande :s/
récupérer la recherche de variable par Ctrl r / et enfin pour confirmer chaque occurence /gc

Mis bout à bout, ça donne quelque chose comme
:'<,'>s/\<foo\>/bar/gc

Ou installer le plugin vim-php-refactoring-toolbox
Menu Refactor, Rename
Faire un autre remplacement dans la même sélection gv pour faire réapparaître la sélection puis :s etc... (sans objet)
Refaire un remplacement antérieur :s Ctrl f puis chercher dans le menu déroulant
Passer un mot tout en majuscules gUw (go Uppercase word) (?)
Passer un mot tout en minuscules guw (?)
Remplacer jusqu'au prochain caractère < sans l'inclure ct< (?)
Remplacer le contenu d'une balise XML/HTML cit (change in tag) (?)
Remonter à la balise (tag) parente dans du HTML/XML vatat (visual around tag around tag… autant de fois que de niveaux parents souhaités)
puis v ou Echap pour sortir du mode visuel
(?)
Sélectionner jusqu'au prochain caractère < sans l'inclure vt< (?)
Sélectionner le texte entre guillemets vi" (visual in ")
Y compris les guillemets :
va" (visual around ")
Maj Alt ➡ y compris les guillemets
Sélectionner le mot sous le curseur viw (visual in word) Maj Alt ➡
Effacer un mot quand le curseur est sur le dernier caractère
(problème spécifique à Vim)
daw (delete around word)
mais pas diw (delete in word) qui laisse l'espace derrière le mot donc on se retrouve avec deux espaces consécutifs
et encore moins db qui laisse le dernier caractère
Effacer une chaîne de caractères y compris ses guillemets da" (delete around ") (?)
Effacer tout du curseur à la prochaine occurence de alt=
par exemple dans <img class="foo" alt="bar">
d/alt= (?)
Compter le nombre d'occurence de foo :%s/foo/&/gn (?)
Compter le nombre de mots et de lignes de la sélection g Ctrl g (?)
Insérer la date du jour En mode insertion Ctrl r puis = et entrer strftime('%d/%m/%Y')
(seulement la première fois, ensuite il suffit de faire Ctrl r = pour remonter l'historique)
(?)
Ajouter <b> </b> autour de la première lettre de plusieurs mots Avec une macro :
qa affiche Enregistrement @a puis i saisir <b> puis se déplacer d'un caractère à droite et saisir </b> Échap pour sortir du mode insertion q pour finir d'enregister la macro puis se positionner devant chaque lettre à mettre en gras et faire @a
(il y a des macros aussi, mais je n'ai jamais essayé)
Ajouter <b> </b> autour de la sélection courante s,\%V.*\%V,<b>&</b>,
Beaucoup plus simple avec le plugin vim-surround
S <b>
(c'est un S majuscule)
(?)
Ajouter un if ou une boucle for autour de quelques lignes Avec le plugin vim-surround
V pour sélectionner les lignes
puis S }
puis i et saisir le if ou le for
(?)
Remplacer <b> </b> par <a href="…"> </a> Avec le plugin vim-surround
cst <a href="…">
(change surrounding tag)
(?)
Supprimer <a href="…"> </a> Avec le plugin vim-surround dst
(delete surrounding tag)
(?)
Remplacer les guillemets simples par des doubles Avec le plugin vim-surround cs'" (?)
Ajouter des guillemets autour du mot sous le curseur Avec le plugin vim-surround ysiw" (?)
Ajouter <li> </li> autour de plusieurs lignes Avec le plugin vim-surround
Sélectionner les lignes avec V
puis :normal yss<li>

:normal permet d'appliquer la commande yss sur plusieurs lignes
(?)
Ajouter des parenthèses autour de la sélection Avec le plugin vim-surround
Sans espaces S)
Avec espaces S(
(?)
Supprimer les espaces inutiles dans maFonction( $truc ) Avec le plugin vim-surround cs() (?)
Scroller l'éditeur sans déplacer le curseur Vers le bas Ctrl e
Vers le haut Ctrl y
Ctrl flèche haut/bas
Déplacer le curseur d'un mot w (word) ou b (beginning) ou e (end) ou Maj flèche gauche/droite
La ponctuation sert de séparateur.
Par exemple :
<a href="foo" class="bar">
<a href="foo" class="bar">
Ctrl flèche gauche/droite
Déplacer le curseur d'un bloc de caractères (seuls les espaces sont comptés comme séparateurs) W ou B ou E ou Ctrl flèche gauche/droite
Par exemple :
<a href="foo" class="bar">
<a href="foo" class="bar">
(?)
Retourner à la position précédente du curseur Ctrl o (rouvre les fichiers si besoin)
(liste avec :jumps)
Alt flèche gauche
Retourner à la position suivante du curseur Ctrl i Alt flèche droite
Sur une fonction : afficher sa documentation K ouvre le manuel pour le C, sinon il faut mettre dans .vimrc quelque chose comme nnoremap K :exe '!firefox http://php.net/manual-lookup.php?pattern=<cword>&scope=quickref'<CR><CR>

Mieux : installer le plugin ALE et un language server puis utiliser :ALEHover
F2
Dans le même esprit : traduire en anglais le texte sélectionné Mettre dans .vimrc vnoremap <Leader>tr y:exe '!firefox "https://translate.google.com/\#fr/en/' . substitute(strtrans(@"), '\^@', ' ', 'g') . '"'<CR><CR> puis utiliser avec \tr (?)
Sur une fonction ou une variable : aller à sa déclaration Sans plugin, aller à la première déclaration dans le fichier : gd

Avec le programme ctags et le plugin vim-gutentags : Ctrl ] ou g]
ou dans une nouvelle fenêtre Ctrl w ]

Plus précis, en tenant compte du langage de programmation, par exemple PHP : installer le plugin ALE et un language server comme par exemple Phpactor puis utiliser :ALEGoToDefinition
Plus pratique : mapper Ctrl ] sur cette fonction

Pour revenir en arrière, après : Ctrl t
F3
Sur une fonction : afficher la hiérarchie de classes (héritage, parents et descendants) (?) F4
Compléter le nom de la fonction ou la variable Ctrl x Ctrl o
(sans sortir du mode insertion)
Ctrl espace
Compléter le mot (quel que soit le contexte) Ctrl p
(sans sortir du mode insertion)

Pour annuler la complétion : Ctrl e

Peut servir aussi à répéter le dernier mot saisi, par exemple echo $matches[3]."/".$Ctrl p[1]."/".$Ctrl p[2]; c'est plus rapide que de re-saisir matches deux fois.

Alt /
Compléter par plusieurs mots précédents Ctrl x Ctrl p (sans sortir du mode insertion)
Autant de fois que de mots à ressortir
(?)
Compléter le nom de fichier Ctrl x Ctrl f (?)
Fermer automatiquement les parenthèses, crochets, accolades, guillemets Finalement, c'est souvent plus gênant qu'autre chose. D'autant que pour créer un bloc entre accolades, avec l'option autoindent, il suffit de saisir
i { Entrée } Échap O (o majuscule)
Sinon, installer le plugin Auto Pairs
Note : il y a un bug avec les circonflexes
(installé d'office)
Insérer les imports En PHP avec le plugin vim-php-namespace, en mode insertion, derrière la classe à importer \u (propose par défaut)
Trier/Organiser les imports En PHP avec le plugin vim-php-namespace \s
ou plus simplement sélectionner les lignes "use" et faire !sort
Maj Ctrl o
Utiliser des snippets (bribes de code) Installer UltiSnips
Voir cette note pour bien l'utiliser
(propose par défaut)
Créer ses abréviations ou snippets Utiliser UltiSnips (:help UltiSnips)
ou sinon mettre dans .vimrc
abbreviate HR Hervé Renault <adresse@mail>
puis pour utiliser saisir HR suivi d'un espace
Dans Window > Preferences, chercher template et ajouter dans l'éditeur souhaité
Commenter la ligne Avec le plugin NERD Commenter \cc Maj Ctrl c
Décommenter la ligne Avec le plugin NERD Commenter \cu Maj Ctrl c
Commenter un bloc Avec le plugin NERD Commenter \cm
(de multiples lignes)
Maj Ctrl c
Décommenter un bloc Avec le plugin NERD Commenter \cu Maj Ctrl c
Commenter toutes les lignes qui contiennent FOO
pour du PHP dans cet exemple
:g,FOO,normal I//
cherche globalement FOO et applique la commande du mode normal I (insère en début de ligne) //espace
(?)
Indenter une ligne >> Tabulation
Désindenter une ligne << Maj tabulation
Indenter une sélection > Tabulation
Corriger l'indentation D'une sélection de lignes =
Du fichier entier gg=G
Ctrl i
Remplacer l'indentation tabulation par 4 espaces :%!expand -i -t 4 Ctrl i
Remplacer les passages à la ligne du DOS (retours chariot)
= remplacer CRLF par LF en anglais
:set fileformat=unix
ou en abrégé :set ff=unix
(?)
Afficher les espaces et tabulations en trop Mettre dans .vimrc :
highlight RedundantSpaces term=standout ctermbg=Grey guibg=#ffddcc
call matchadd('RedundantSpaces', '\(\s\+$\| \+\ze\t\|\t\zs \+\)\(\%#\)\@!')
Obligé d'afficher tous les caractères invisibles ? Window > Preferences > General > Editors…
Vérifier la syntaxe :!php -l %

Plutôt utiliser le plugin Syntastic
(et pour le désactiver temporairement :SyntasticToggleMode)

Plus moderne : installer le plugin ALE qui lance php -l et d'autres analyseurs au choix, en asynchrone
(fait automatiquement)
Contrôler la qualité du code PHP Installer phpcs, phpmd et le plugin Syntastic

Plus moderne : installer le plugin ALE qui lance php -l et d'autres analyseurs au choix, en asynchrone
Installer PDT Extension group
Reformater le code PHP (pas seulement l'indentation) :%!phpcbf

Le plugin ALE peut lancer phpcbf par :ALEFix
Maj Ctrl f
ou installer PDT Extension group
ou pour Netbeans, NetBeans PHP CS Fixer
Reformater du JSON Mettre dans .vimrc
nmap =j :%!python -m json.tool<cr>
ou
nmap =j :%!jq .<cr>
puis utiliser par =j
(?)
Aller à l'erreur suivante / précédente Avec les plugins Syntastic ou ALE, et des analyseurs tels que phpcs, phpmd et Phpstan
:lr (lrewind) pour aller à la première erreur
:lne et :lp
(lnext et lprevious) pour naviguer
:laf et :lbe
(lafter et lbefore) pour aller à l'erreur la plus proche du curseur
Plus pratique, dans ~/.vimrc :
nmap ]e :lafter<CR>
nmap [e k :lbefore<CR>
Ctrl ,
Run Utiliser Ctrl z ou un autre terminal ou screen pour scinder le terminal ou tmux Ctrl F11
Debug Avec le plugin Vdebug
  • :Breakpoint ou F10 à la ligne souhaitée pour un point d'arrêt simple.
    Pour un point d'arrêt conditionnel, saisir :Breakpoint conditional $foo == 'bar' puis :BreakpointWindow pour voir le point d'arrêt parce que la ligne n'est pas surlignée en vert comme avec F10
    Lire :help VdebugBreakpoints pour les autres types de point d'arrêt
  • F5 pour lancer le débogueur
  • F5 pour aller au premier breakpoint ou au suivant
  • F9 pour aller jusqu'au curseur (plus simple qu'un breakpoint)
  • F2, F3, F4 pour avancer (step over, in, out)
  • F12 pour évaluer la variable sous le curseur
  • \e pour évaluer l'expression sélectionnée par v
  • :VdebugChangeStack pour revenir au contexte (F11 est prise par la fonction plein écran du terminal, que je ne veux pas changer)
  • :VdebugTrace $foo['bar'] suivre l'évolution d'une variable
  • F7 pour continuer l'exécution sans passer par les breakpoints
  • F6 pour tout arrêter

⭐ Pour ne pas avoir à ajouter XDEBUG_SESSION_START=1 à l'URL, ajouter xdebug.remote_autostart = 1 dans le xdebug.ini ou plus simplement installer dans Firefox l'extension Xdebug helper et utiliser le raccourci clavier Maj Alt x dans Firefox avant de lancer la requête à débuguer

F11
Voir les lignes modifiées par rapport à git

Avec le plugin vim-gitgutter
Pour aller à la prochaine ligne modifiée : ]c

Pour intégrer encore mieux git dans Vim, installer le plugin vim-fugitive et pour bien gérer les noms de fichiers avec des accents, mettre dans ~/.gitconfig
[core]
    quotePath = false
(a priori inutile à partir de git 2.34 mais je n'ai pas vérifié)
Avec le plugin EGit
Basculer la perspective (layout) dans Eclipse = changer d'onglet (tab) dans Vim Créer un onglet dans Vim :tabnew
puis passer à l'onglet suivant ou précédent gt gT
Ctrl F8
Afficher l'explorateur de fichiers Avec le plugin NERD Tree :NERDTree
(Je me suis fait un raccourci \n avec
map <Leader>n :NERDTree<bar> wincmd p<CR> dans ~/.vimrc
wincmd p sert à ne pas garder le curseur dans NERDTree)
(affiché par défaut)
Afficher la liste des derniers fichiers ouverts :browse old voir menu File
Afficher le fichier courant dans l'explorateur de fichiers :NERDTreeFind
(Je me suis fait un raccourci \f avec
map <Leader>n :NERDTreeFind<CR> dans ~/.vimrc)
Maj Alt w Explorer
ou cliquer sur l'icône Link with Editor
Passer d'un panneau à l'autre (éditeur, outline, explorateur, etc.) Ctrl w flèche Ctrl Tabulation
ou pour l'éditeur : F12
Revenir au panneau ou à la fenêtre précédente Ctrl w p (?)
Fermer un panneau d'Eclipse ou une fenêtre de Vim Ctrl w q ou plus simplement :q
Pour fermer une fenêtre de type preview ou brouillon, pas besoin que le curseur soit dans la fenêtre, Ctrl w z fonctionne de partout
Ctrl w
Fermer tout sauf la fenêtre courante :only ou Ctrl w o (?)
Intervertir deux panneaux / fenêtres Ctrl w x (?)
Vim : déplacer la fenêtre courante dans un nouvel onglet Ctrl w T (c'est un t majuscule)
Maximiser le panneau (éditeur ou autre) (bascule max/normal si plusieurs fois) Ctrl w _ pour une fenêtre horizontale
Ctrl w | pour une fenêtre verticle
ou sinon en activant la souris :
:set mouse=a puis déplacer la ligne de séparation
Ctrl m
Donner une hauteur de 10 lignes à une fenêtre dans Vim :10wincmd_ (?)
Scinder un éditeur (une fenêtre dans Vim) :split ou Ctrl w s
ou verticalement :vsplit ou :vs ou Ctrl w v
Ctrl { ou Ctrl _
Passer d'une séparation verticale à horizontale Ctrl w H (?)
Passer d'une séparation horizontale à verticale Ctrl w J (?)
Ouvrir un fichier en scindant la fenêtre :new foo/bar.php ou verticalement :vnew (sans objet)
Ouvir un ficher dans un nouvel onglet (Eclipse) = dans un nouveau buffer (Vim) :e fichier (s'ouvre par défaut dans un nouvel onglet)
Ouvrir plusieurs onglets (Eclipse) = plusieurs buffers (Vim) :e *.php Ctrl clic dans l'explorateur et ouvrir
Passer à l'onglet = au buffer suivant / précédent :bn :bp
(pour changer de buffer sans avoir à sauver les modifs en cours :set hidden)
Ctrl ⇞ Ctrl ⇟
Netbeans : Ctrl Tabulation
Lister les onglets (Eclipse) = les buffers (Vim) :ls ou :buffers

ou avec le plugin ctrlp.vim : Ctrl p Ctrl ↑ jusqu'à afficher l'onglet des buffers

ou avec le plugin fzf.vim : :Buffers

Pour afficher les buffers en permanence, on peut utiliser un plugin tel que vim-airline

Ctrl e
Aller à un onglet (Eclipse) = les buffers (Vim) par son nom :b nom ou par son numéro n :bn Ctrl e nom
Aller au dernier buffer visité :b# ou Ctrl ^ (?)
Fermer un onglet (Eclipse) = un buffer (Vim) :bd
Pour fermer les buffers 3 à 5 : :3,5bd
Pour fermer les buffers 2, 4, et 7 : :bd 2 4 7
Ctrl w
Ouvrir un fichier dont le chemin est sous le curseur

gf dans la fenêtre courante
ou Ctrl w f en scindant la fenêtre
ou Ctrl w gf dans un onglet

Ou avec le plugin ctrlp.vim : Ctrl p Ctrl \ f
Utile si le chemin du fichier sous le curseur n'est pas complet

(?)
Ouvrir un fichier dont le chemin et le numéro de ligne sont sous le curseur
du style /foo/bar:123
gF dans la fenêtre courante
ou Ctrl w F en scindant la fenêtre
ou Ctrl w gF dans un onglet
(?)
Sauver la session en cours (fichiers ouverts) :mksession ma_session.vim
Récupérer la session :
vim -S ma_session.vim
ou dans Vim
:source ma_session.vim
Ne fonctionne bien qu'avec les buffers, pas avec NERDTree ou Tagbar donc il faut faire
:tabdo NERDTreeClose avant :mksession
(fait par défaut)
Rendre une fenêtre / un buffer "readonly" (en lecture seule) :set nomodifiable
Plus rapide avec :set nomo Tab autant de fois que nécessaire
(?)

Il y en a d'autres encore. On peut les retrouver dans Eclipse par Help > Key Assist (raccourci : Maj Ctrl L) et dans Vim par :help

Autres détails pour Vim

Naviguer dans la liste "quickfix" des résultats de vimgrep :cn en avant, :cp en arrière
Chercher avec vimgrep en ignorant la casse :vimgrep /\cTruc/ ** (c minuscule)
Au contraire, tenir compte de la casse :vimgrep /\CTruc/ ** (c majuscule)
Modifier une commande dans l'historique q: ou dans la ligne de commande Ctrl f
modifier puis Entrée pour exécuter ou :q
Démarrer Vim avec les réglages par défaut, sans plugins
(pratique pour éditer des fichiers énormes)
vim -u NONE fichier