Aufgrund der Leistung deaktiviere ich das cursorline
und cursorcolumn
in Vim. Wenn Sie jedoch durch ein Quickfix
Fenster springen , ist es schwierig, den Cursor in der Datei zu finden. Daher möchte ich aktivieren cursorline
und cursorcolumn
automatisch nach dem Quickfix
Öffnen eines Fensters (durch welche Aktionen auch immer).
Jetzt habe ich die Lösung Autocmd
wie folgt:
autocmd BufferEnter quickfix :bufdo set cursorline cursorcolumn
Ist das die richtige Lösung? Irgendeine bessere Idee?
Vielen Dank!
vimrc
autocmd
quickfix
cursorline
Tamlok
quelle
quelle
:h QuickFixCmdPost
stattdessen das Ereignis QuickFixCmdPost ( ) verwenden, aber ich bin mir nicht sicher, ob das besser wäre.Ack
,vimgrep
und so weiter. Aber es funktioniert nicht bei:copen
. Ganz schöne Lösung!:h QuickFixCmdPre
es enthält eine Liste der Befehle, die das EreignisQuickFixCmdPre
(und damit das EreignisQuickFixCmdPost
) auslösen, und ist in der Tat:copen
keiner von ihnen. Das Verhalten, das Sie erleben, ist also normal, aber ich weiß nicht, wie ich es zum:copen
Antworten:
Erstellen Sie die Datei in
~/.vim/ftplugin/qf.vim
(oder$HOME/vimfiles/ftplugin/qf.vim
unter Windows) mit den folgenden Inhalten:Die ftplugin-Dateien werden immer dann ausgeführt, wenn der Dateityp für einen bestimmten Dateipuffer festgelegt ist (Quickfix- und Speicherortfenster haben den Dateityp
qf
).Wenn Sie die Dateityp-Plugin-Dateien anstelle von Autocmds verwenden, wird die Unordnung Ihres vimrc vermieden. Sie können weitere Informationen finden
:help ftplugin-name
,:help 43
und Vim FAQ 26.8 .Bearbeiten:
Das Aktivieren
b:did_ftplugin
ist erforderlich, um es bei Bedarf zu deaktivieren und ein zweimaliges Laden zu vermeiden (siehe:help ftplugin
).Das
let b:did_ftplugin = 1
wird in dieser Datei weggelassen, da die Absicht dieser Datei darin besteht, das Standard-Dateityp-Plugin für den Quickfix zu erhöhen und nicht zu überschreiben. Wenn diese Zeile hinzugefügt wird, werden die Einstellungen bei$VIMRUNTIME/ftplugin/qf.vim
übersprungen, wie unter erläutert:help ftplugin-overrule
.quelle
b:did_ftplugin
das? Ihr Skript scheint es nirgendwo zu ändern. Ich habe es in meinem vimrc versucht und es funktioniert!b:did_ftplugin
Teil aktualisiert .