Вы путаетесь с различными режимами.В частности, командный режим и обычный режим.
Командный режим - это место, где применяются команды ex, команды, начинающиеся с двоеточия.Файлы VimScript - это просто последовательность ex-команд.
Когда вам нужно выполнить команду нормального режима, когда в ex-режиме (командном режиме) вы используете команду :normal
ex, которая выполняет аргументы так, как они быв обычном режиме.
Когда вы выполняете команду напрямую, вы выполняете ее напрямую.В вашем примере команда :d
использовалась с диапазоном.Это не то же самое, что клавиша d
в обычном режиме, это еще одна совершенно другая команда.Проверьте справку для :d
и d
(обычная команда).
:execute
полезен для создания команды в виде строки и выполнения в качестве команды ex.В вашем примере это бесполезно.Но это становится полезным в других случаях, например, когда у вас есть переменная, содержащая номер строки, и вы хотите использовать ее значение в команде:
:let i=4
:exec "2," . i . "d"
, что аналогично
:2,4d