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>`q
hoạ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ếuB
cờ không ở trongcpotions
, bạn có thể sử dụng\<Esc>
để đại diện cho<Esc>
khóa.