Perintahnya adalah
nnoremap <leader>; :execute "normal! mqA;\<esc>`q"
Jika Anda menekan <leader>;
, Anda akan E114: Missing quote: "normal! mqA;\
diikuti oleh E15: Invalid expression: "normal! mqA;\
. Kenapa ini? Perintah berfungsi dengan baik jika input langsung ke baris perintah.
Perintah menambahkan a ;
di akhir baris saat ini, tanpa mengubah posisi kursor.
Saya menyadari bahwa saya bisa melakukan nnoremap <leader>; mqA;<esc>`q
yang berhasil, pertanyaannya adalah mengapa hal di atas tidak berhasil, dan apa yang dapat dilakukan untuk membuatnya bekerja dalam bentuk eksekusi-normal.
Dugaan saya adalah bahwa diperlukan beberapa tingkat pelarian bersarang, tetapi saya tidak dapat menemukan yang berfungsi.
:h <>
. Bagian yang relevan adalah: Notasi <> menggunakan <lt> untuk menghindari makna khusus dari nama-nama kunci. Menggunakan backslash juga berfungsi, tetapi hanya ketika 'cpoptions' tidak menyertakan flag 'B'. Jadi, jikaB
flag tidak adacpotions
, Anda dapat menggunakan\<Esc>
untuk mewakili<Esc>
kunci.