`:cw`-Befehl in Vim: Wie vermeidet man das automatische Springen zum ersten Fehler?

`:cw`-Befehl in Vim: Wie vermeidet man das automatische Springen zum ersten Fehler?

In Vim :cwzeigt der Befehl das Quickfix-Fenster an, wenn Fehler vorliegen, und lässt den Cursor zum ersten erkannten Fehler im Quickfix-Fenster springen (nicht in den Puffer, in dem ein Fehler vorliegt). Gibt es einen Befehl, der dasselbe tut, aber nicht zum ersten Fehler springt, sondern dort bleibt, wo er war?

Antwort1

Wenn Ihr Problem darin besteht, dass das Quickfix-Fenster den Fokus von dem Fenster stiehlt, in dem Sie gerade arbeiten, ist die Lösung ganz einfach. Fügen Sie diese Zeilen zu Ihrem hinzu ~/.vimrc:

augroup quickfix
  autocmd!
  autocmd Syntax qf wincmd p
augroup END

Dies geschieht nicht durch den :cw[indow]Befehl, der den Cursor auf die erste passende Zeile im Puffer springen lässt, sondern durch den Befehl, der die im Quickfix-Fenster angezeigte Liste erstellt hat.

Angenommen, Sie haben:

foo
foobar
foobarbaz

und du machst:

:vim foo %

Ihr Cursor wird automatisch auf der ersten passenden Zeile positioniert, ohne :cw.

Wenn Sie tun:

:vim foo % | cw

Ihr Cursor befindet sich noch in der ersten passenden Zeile, sodass das Verhalten nicht mit verknüpft ist :cw.

Aber wenn doch:

:vim /foo/j % | cw

Ihr Cursor bleibt an Ort und Stelle. Siehe :help :vimgrep.

Sie sollten in der Dokumentation des von Ihnen verwendeten Befehls nachsehen, ob es dort ein Äquivalent zu diesem jFlag gibt.

verwandte Informationen