Ich versuche, eine Funktion zu definieren, mit der Sie leichter erkennen können, wo sich der Cursor befindet, indem Sie 100 ms lang ein Fadenkreuz darum legen.
Hier ist mein Versuch:
function! Flash()
set cursorline cursorcolumn
sleep 100m
set nocursorline nocursorcolumn
endfunction
nnoremap <leader>fl :call Flash()
Es scheint jedoch, dass die obige Funktion den Schlaf am Anfang und nicht zwischen den beiden "Set" -Aufrufen aufruft.
Gibt es etwas Grundlegendes an "Schlaf", das ich missverstehe?
Antworten:
Das Problem ist, dass Vim den Bildschirm erst nach Abschluss der Funktion neu zeichnet. Ich bin mir nicht sicher, wie Vims Logik beim Neuzeichnen genau lautet , aber in diesem Fall müssen Sie häufig
redraw
manuell aufrufen :Sie möchten wahrscheinlich auch Folgendes
<CR>
zur Schlüsselzuordnung hinzufügen :quelle