Оригинальный пост о Vi и Vim Beta , в котором было один интересный ответ , но пока не так много внимания.Я прошу прощения за кросспостинг, и я попрошу, чтобы оригинал был закрыт / удален.
Учитывая следующую функцию в файле .vimrc
,
fu! MyFun(count)
echo a:count
echo a:count
if a:count > 0
normal ,
call MyFun(a:count - 1)
endif
endf
вызывает :call MyFun(3)
генерируетследующий вывод.
3
3
2
2
1
1
0
0
Однако если я определю отображение nn , :<C-U>execute "call MyFun(" . v:count . ")"<CR>
, то вызов :call MyFun(3)
сгенерирует
3
0
2
0
1
0
0
0
Я понимаю, что отображение ,
дважды вызывает сам вызов функции MyFun
(if a:count > 0
), однако я не могу понять, как это может привести к другому результату двух последовательных вызовов echo a:count
.