In Vim :cw
zeigt 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 j
Flag gibt.