Wie soll die Option 'switchbuf' funktionieren?

9

Ich habe die Option kürzlich entdeckt switchbufund versucht, sie zu verwenden, aber ich kann nicht sagen, ob ich nicht verstehe, wie sie funktionieren soll oder ob sie auf meinem Vim tatsächlich nicht funktioniert.

Über die verschiedenen möglichen Werte sagt der Arzt:

useopen Wenn enthalten, springen Sie zum ersten geöffneten Fenster,
              das den angegebenen Puffer enthält (falls vorhanden).
usetab Wie "useopen", aber auch Fenster in anderen Registerkarten berücksichtigen.

Ich habe dann set switchbuf=useopen,usetabund die folgenden Befehle in einer neuen vim-Instanz verwendet:

  • Öffnen Sie einen ersten Puffer :e file1
  • Teilen Sie den Bildschirm :split
  • Öffnen Sie einen zweiten Puffer :e file2
  • Gehe zurück zum ersten Puffer :e file1(den ich auch benutzt habe :bN)

Die letzten Befehle zum ersten Puffer öffnen ihn im zweiten Split. Soweit ich aus dem Dokument verstehe, sollten die Befehle den Cursor auf die erste Teilung setzen, bei der der Puffer dank bereits geöffnet ist useopen. Auch das Verhalten ist das gleiche, wenn ich die gleichen Befehle mit Tabulatoren anstelle von Teilungen versuche.

  • Ist dieses Verhalten das erwartete?
  • Wenn ja, können Sie erklären, was diese Option tun soll?
  • Wenn nicht, weiß ich, dass ich meine debuggen muss, .vimrcaber gibt es vielleicht eine allgemeine Einstellung, die bekanntermaßen stört switchbuf?
statox
quelle

Antworten:

9

'switchbuf'wird nur von Quickfix-Befehlen (like :cc) und Buffer-Splitting-Befehlen (like :sb) berücksichtigt .

Es wirkt sich nicht auf :bufferandere "reguläre" pufferbezogene Befehle aus.

romainl
quelle
1
Oh ich verstehe. Wie das Dokument zuerst sagt This option controls the behavior when switching between buffers.und nur einige Zeilen später Quickfix-Befehle erwähnt, dachte sbich, dass es zusätzlich zu den regulären Pufferbefehlen war. Vielen Dank!
Statox