Ce qui suit est tiré de la documentation sur la liste des correctifs rapides et la liste des emplacements. Mais je ne suis pas sûr de ce qui est réellement différent. L'image ci-dessous montre les mêmes choses dans la liste des emplacements et la liste des correctifs rapides. Quand dois-je utiliser l'un ou l'autre dans vimgrep et lvimgrep.
In Vim the quickfix commands are used more generally to find a list of positions
in files.For example, |:vimgrep| finds pattern matches. You can use the positions
in a script with the |getqflist()| function. Thus you can do a lot more than the
edit/compile/fix cycle!
...
...
*location-list* *E776*
A location list is similar to a quickfix list and contains a list of positions
in files. A location list is associated with a window and each window can have
a separate location list. A location list can be associated with only one window.
The location list is independent of the quickfix list.
...
METTRE À JOUR
J'ai trouvé ce qui suit d'ici .
These commands all fill a list with the results of their search. "grep" and
"vimgrep" fill the "quickfix list", which can be opened with :cw or :copen,
and is a list shared between ALL windows. "lgrep" and "lvimgrep" fill the
"location list," which is local to the current window, and can be opened
with :lw or :lopen. Both of these lists can be used to instantly jump to
the matching line in whatever file it occurs in.
Donc, la différence réside dans toutes les fenêtres pour la liste des correctifs rapides et la fenêtre locale pour la liste des emplacements. Cependant, je peux ouvrir la liste des emplacements depuis n'importe quelle autre fenêtre. Alors, quelle est la différence alors ??
-q errors.txt
, après avoir mis des erreurs de compilation danserrors.txt
(iegcc -Wall *.c >errors.txt 2>&1
), vim remplira la liste des correctifs rapides à partir de la liste des erreurs de compilation, ce qui est très pratique.foo1.txt
,foo2.txt
, ...) pourfoo
dans la fenêtre de gauche et plusieurs fichiers (bar1.txt
,bar2.txt
, ...) pourbar
dans la fenêtre de droite. Vous pouvez exécuter:lv foo foo*
dans la fenêtre de gauche, puis:lv bar bar*
dans la fenêtre de droite. Ensuite, dans la fenêtre de gauche:lne
affichera la prochaine correspondance pourfoo
, nonbar
. Cela est dû au fait qu'il:lv
utilise la liste des emplacements de la fenêtre dans laquelle vous l'exécutez, de sorte que chaque recherche a sa propre liste d'emplacements.