Mam funkcję i chcę wykonać polecenie klawisza, ale pojawia się błąd Końcowe znaki:
function! MyFunction()
if condition
<C-W><C-W>
else
:some_other_command
endif
endfunction
Nie lubi <CW> <CW>
Czego mogę zamiast tego użyć?
Ogólną odpowiedzią jest użycie :normal
polecenia, takiego jak
:exe "normal \<C-W>\<C-w>"
:execute
Podejście jest czytelny sposób, aby :normal
rozpoznać znaki specjalne, takie jak kombinacje sterowania kluczowych. Inne podejście to
:normal ^W^W
gdzie każdy ^W
to jeden znak wstawiany przez wpisanie Ctrl-vCtrl-w.
^W
skryptu, otwiera się on w trybie binarnym. Jak tego uniknąć, czy powinienem raczej używać:exe
?Użyj funkcji feedkeys . Zauważ, że ^ W NIE jest „^” + „W”, ale w rzeczywistości wpisuje „Ctrl-V Ctrl-W”. To wyjątkowa postać.
źródło