Lệnh là
nnoremap <leader>; :execute "normal! mqA;\<esc>`q"
Nếu bạn sau đó nhấn <leader>;, bạn sẽ làm E114: Missing quote: "normal! mqA;\theo E15: Invalid expression: "normal! mqA;\. Tại sao lại thế này? Lệnh hoạt động tốt nếu đầu vào trực tiếp vào dòng lệnh.
Lệnh thêm một ;ở cuối dòng hiện tại, mà không thay đổi vị trí con trỏ.
Tôi nhận ra rằng tôi chỉ có thể làm những gì nnoremap <leader>; mqA;<esc>`qhoạt động, câu hỏi là tại sao những điều trên không hoạt động, và những gì có thể được thực hiện để làm cho nó hoạt động ở dạng thực thi bình thường.
Tôi đoán là sẽ cần một số mức thoát lồng nhau, nhưng tôi không thể tìm thấy một mức nào hoạt động.
:h <>. Phần có liên quan là: Ký hiệu <> sử dụng <lt> để thoát khỏi ý nghĩa đặc biệt của tên khóa. Sử dụng dấu gạch chéo ngược cũng hoạt động, nhưng chỉ khi 'cpoptions' không bao gồm cờ 'B'. Vì vậy, nếuBcờ không ở trongcpotions, bạn có thể sử dụng\<Esc>để đại diện cho<Esc>khóa.