Eine andere Lösung besteht darin, die Variable v:count
wie folgt zu verwenden :
nnoremap <F8> :<C-u>execute "normal! " . v:count1 * 3 . "w"<CR>
Siehe :h v:count
: Die Variable enthält die Anzahl, die für den letzten Befehl im normalen Modus angegeben wurde, und kann daher verwendet werden, um eine Anzahl vor einer Zuordnung abzurufen.
Hier wird die Zuordnung verwendet, v:count1
die gleich v:count
Null ist, wenn keine Zählung erfolgt.
Das Mapping führt den normalen Befehl aus, normal! Xw
bei dem das X
Dreifache der vor dem Mapping angegebenen Anzahl ersetzt wird.
Das <C-U>
ist erforderlich, um den Zeilenbereich zu entfernen, der beim Tippen :
nach einer Zählung berücksichtigt wird .
Natürlich ist das von Ihnen beobachtete Verhalten auch völlig normal: Durch Ihre Zuordnung wird Vim so verstanden, F8als 3wob Sie etwas vor Vim eingeben, da Sie nicht verstehen können, dass es eine Multiplikation durchführen soll. Denken Sie daran, dass ein Programm Ihre Absicht nicht verstehen kann, wenn Sie sie nicht beschreiben.
E16: Invalid range
.