Catatan: Saya berasumsi Anda menggunakan a
register untuk keseluruhan jawaban ini, tetapi Anda dapat menggunakan register apa pun
Note2: <1b>
adalah Esc; Anda dapat menyisipkan ini dengan Ctrl+vlalu Esc. Mungkin juga muncul sebagai ^[
(tergantung pada display
pengaturan).
Ini bukan pemetaan; jadi masuk akal kalau :map
itu tidak berhasil. Itu direkam dalam register, dan Anda dapat melihat & mengeditnya seperti register apa pun.
Yang perlu qdilakukan adalah "menghapus register ini, dan menambahkan penekanan tombol apa pun untuk itu" , dan semua yang @dilakukan adalah "mengevaluasi register sebagai perintah" .
Tidak ada yang "berbeda" tentang makro, Anda bisa memanggil register apa pun sebagai makro.
Untuk melihat gunakan saja:
:echo @a
Sama seperti register apa pun.
Anda juga dapat menggunakan :registers
untuk melihat semua register.
Untuk mengedit, Anda dapat melakukan beberapa hal:
Cara paling sederhana yang Anda pilih @a
, seperti:
:let @a='iasd<1b>'
Ini akan mulai memasukkan mode ( i
), menyisipkan asd
, dan Melarikan kembali ke mode normal.
Ini tidak terlalu berguna untuk pengeditan ekstensif; Anda bisa menggunakan fungsi (mis. substitute()
), atau mungkin menambahkan sesuatu ( :let @a=@a . 'more'
), tetapi mengubah sesuatu di tengah tidak mudah.
Saya telah menemukan bahwa cara terbaik untuk ini, adalah memulai buffer baru dengan :split
atau :tabnew
dan mengedit register dengan memasukkannya di sana, mengeditnya, dan kemudian menyalinnya kembali.
Anda dapat menggunakan "apteks yang akan dimasukkan ke dalam buffer (di mana a
Anda mendaftar):
iThis is A<1b>
Sekarang saya bisa mengubah baris ke mungkin:
iThis is an edited macro<1b>
Kemudian saya lakukan ^v$"ayuntuk menarik (menyalin) baris ini ke a
register:
- ^ untuk memulai jalur
- v untuk mode visual
- $ untuk akhir baris
- "ay tarik pilihan untuk mendaftar
a
Jika mau, Anda dapat melakukan ini tanpa menggunakan mode visual dengan ^"ay$.
Anda sekarang dapat menggunakan @a, seolah-olah ini adalah apa yang awalnya Anda rekam.
Anda juga bisa menggunakan yy, dan kemudian @", yang sedikit lebih cepat. Ini juga akan menyalin baris tambahan, dan dapat menyebabkan efek samping ... Cara lain untuk membuat ini lebih cepat adalah dengan menggunakan makro :-)
Enter
pada akhir rekaman Anda. Dalam banyak kasus ini mungkin jinak, tetapi dalam skenario di mana Anda dengan hati-hati membuat posisi kursor di akhir rekaman, ini dapat memengaruhi pengulangan.