برای دستور ها یا ویرایش های تکرار شونده در ویم میتوان از ماکروها استفاده کرد.
برای ضبط یک ماکرو ابتدا کلید q و سپس نام رجیستری که میخواهیم ماکرو در آن ضبط شود را وارد میکنیم، بدین ترتیب میتوانیم چندین ماکرو بصورت همزمان داشته باشیم. در این مثال از رجیستر a استفاده شده است.
qa
-- ضبط کردن یک ماکروa
q
-- توقف ضبط یک ماکرو@a
-- اجرا کردن ماکروa
@@
-- اجرای دوبارهی ماکرو
برای مثال اگر محتوای زیر را داشته باشیم:
aaa
bbb
ccc
ddd
و بخواهیم در آخر هر خط یک کاراکتر وارد کنیم، برای مثال حرف x، می توانیم ماکرو زیر را ضبط کنیم.
Ax<ESC>j
با در نظر گرفتن کلید ضبط و پایان ضبط ماکرو
qAx<ESC>jq
در اینجا با استفاده از اپراتور A، به آخر خط رفته و وارد مود ورود متن یا همان اینسرت مود می شویم. حرف x را تایپ کرده و با زدن کلید اسکیپ به مود نرمال بر می گردیم و در آخر با زدن کلید j به خط پایین می رویم تا ماکرو بتواند ادامه پیدا کند.
همانطور که پیشتر گفتیم، همهچیز در ویم شمارش پذیر یا توان پذیر هستند. بنابراین برای اجرای یک ماکرو به توان عدد خاصی، آن عدد را قبل از فراخوانی ماکرو وارد میکنیم.
10@a
ماکروی ضبط شده در رجیستر را به تعداد ده بار اجرا میکند