Ini adalah permintaan yang cukup aneh karena tidak ada "mode" untuk merekam makro. Setelah menggali beberapa dokumen saya menemukan yang berikut diusr_10
Anda mulai dengan berpindah ke karakter pertama dari baris pertama. Selanjutnya Anda menjalankan perintah berikut:
qa Mulai merekam makro dalam register a .
^ Pindah ke awal baris.
i # include "Masukkan string #include" di awal baris.
$ Pindah ke akhir baris.
a "Tambahkan tanda kutip ganda karakter (") ke akhir baris.
j Pergi ke baris berikutnya.
q Berhenti merekam makro.
Yang menonjol bagi saya adalah baris tentang "Mulai merekam makro di register a"
Karena setiap makro akan disimpan ke register secara default, saya berharap kita dapat melihatnya di :reg
daftar. Ternyata itu berfungsi seperti pesona!
Contoh:
Dalam mode normal: qaisomething<Esc>
dan di dalam :reg
kita melihat entri!
"a isomething^[
Dengan pengetahuan itu Anda harus dapat "memata-matai" register untuk mengkonfirmasi bahwa makro sedang direkam (gunakan register bernama pada setiap rekaman [peta q
untuk selalu menggunakan register yang sama (atau sesuatu seperti itu)]
Jika Anda mengalami masalah, beri tahu saya dan saya akan mencoba membantu Anda (karena fungsi ini juga baru bagi saya: D)
sunting
Untuk mengatasi masalah register yang digunakan selama penarikan, saya sarankan untuk melihat jenis register khusus yang hanya dapat Anda gunakan untuk vimL
tulisan yang Anda tulis (tidak ada yank yang akan terlibat dalam register ( "ay
))
Berikut adalah sedikit info dari :help registers
register yang tersedia
Ada sepuluh jenis register: register E354
Daftar tanpa nama ""
10 register bernomor "0 hingga" 9
Register hapus kecil "-
26 bernama register "a to" z atau "A to" Z
tiga register baca-saja ":,"., "%
register buffer alternatif "#
daftar ekspresi "=
Pilihan dan jatuhkan register "*," + dan "~
Daftar lubang hitam "_
Daftar pola pencarian terakhir "/
Dengan asumsi bahwa Anda memiliki register yang akan Anda gunakan sekarang masalah menjadi "bagaimana saya tahu ketika rekaman telah berhenti?". Untuk mengatasi ini, saya akan melihat autocmd-event
untuk CursorHold
; catatan dalam dokumen bantuan terlihat cukup menjanjikan (saya akan mencoba mencari tahu bagaimana saya bisa membedakan kursor normalHold vs peristiwa idle / tidak ada yang terjadi ketika register Anda sedang ditulis untuk keperluan makro)
CursorHold
Ketika pengguna tidak menekan tombol untuk waktu yang ditentukan dengan 'updatetime'. Tidak dipicu kembali sampai pengguna menekan tombol (yaitu tidak memecat setiap 'waktu pembaruan' ms jika Anda meninggalkan Vim untuk membuat kopi. :) Lihat | CursorHold-example | untuk melihat pratinjau tag. Acara ini hanya dipicu dalam mode Normal. Itu tidak dipicu saat menunggu argumen perintah yang akan diketik, atau gerakan setelah operator. Saat merekam acara CursorHold tidak dipicu. | q |