Quelle est la différence entre la liste de lieux et la liste de correctifs dans vim

Ce qui suit provient de la documentation sur la liste de correctifs et la liste d’emplacement. Mais je ne suis pas sûr de ce qui est réellement différent. L’image ci-dessous montre les mêmes choses de la liste de lieux et de la liste de corrections rapides. Quand est-ce que j’utilise 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/comstack/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. ... 

entrer la description de l'image ici

METTRE À JOUR

J’ai trouvé ce qui suit à partir de là .

 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. 

La différence réside donc dans toutes les fenêtres de la liste de correctifs et de la fenêtre locale de la liste de lieux. Cependant, je peux ouvrir la liste de lieux à partir de toute autre fenêtre. Alors, quelle est la différence alors?

La liste de lieux est locale à la fenêtre actuelle, vous pouvez donc avoir autant de listes de lieux que de fenêtres: 30 fenêtres? Pas de problème, voici vos 30 listes de lieux simultanées.

La liste de correction rapide est globale, vous ne pouvez donc pas en avoir plus d’un à la fois. Il existe des commandes qui vous permettent de remplacer la liste de correctifs actuels par une précédente, mais vous ne pouvez pas avoir deux listes de correctifs simultanés.

Ne confondez pas les “listes” location / quickfix (les structures de données) avec les “fenêtres” location / quickfix (les fenêtres affichant le contenu de ces structures de données). Les “fenêtres” ont des comportements similaires mais les “listes” ne le font pas. La différence est importante car ces fenêtres ne sont heureusement pas les seules à interagir avec ces listes: il existe de nombreuses commandes permettant de parcourir ces listes sans ouvrir les fenêtres associées et de savoir que la différence entre ces listes est essentielle pour utiliser ces commandes efficacement .

Exemple concret illustré:

$ vim -O foo.txt bar.txt

  1. Faites :lvim foo % dans foo.txt pour créer une liste de lieux pour la fenêtre contenant foo.txt .

  2. Do :lne quelques fois pour sauter à quelques foo.txt .

  3. Concentrez-vous sur bar.txt et faites :lne . Ce qui se produit?

  4. Maintenant, faites :lvim bar % dans bar.txt pour créer une liste de lieux pour la fenêtre contenant bar.txt .

  5. Faites :lne quelques fois. À quels matchs sautez-vous? Dans quel tampon? Dans quelle fenêtre?

  6. Passez à l’autre fenêtre et faites :lne quelques fois. Ce qui se produit?

  7. Passez à nouveau sur bar.txt . Qu’est-ce que :lne fais?

  8. Maintenant, faites :vim bar % dans bar.txt pour créer une liste de correctifs.

  9. Faites :cn quelques fois pour passer à quelques bar dans bar.txt .

  10. Maintenant, concentrez-vous sur foo.txt , qu’est-ce que :cn fait?

L’emplacement à partir :lne vous sautez :lne dépend de la fenêtre dans laquelle vous vous trouvez, mais l’erreur à laquelle vous sautez avec :cn est toujours la même (jusqu’à ce que vous remplaciez la liste de correctifs actuelle par une autre).

Les deux listes ont des rôles relativement clairs à l’OMI: la liste de correctifs (et donc la fenêtre de correction rapide) est généralement et assez logiquement consacrée aux erreurs et la liste de lieux me semble adaptée à la recherche.