2013-06-18 23 views
5

Tôi đã sau ánh xạ trong vimrc của tôi:Vim - Làm sao để lập bản đồ của riêng bạn lặp lại?

nmap <Leader>h1 yyp<c-v>$r= 
nmap <Leader>h2 yyp<c-v>$r- 

Tôi muốn lặp lại <Leader>h1/2 với .

Có tồn tại các plugin repeat.vim bởi Tim Đức Giáo Hoàng với sau dòng sử dụng

silent! call repeat#set("\<Plug>MyWonderFulMap", v:count) 

tôi đã thử sử dụng nó theo cách sau:

nnoremap <silent> <Plug>MyWonderfulMap :normal yyp<c-v>$r= 
silent! call repeat#set("\<Plug>MyWonderfulMap", v:count) 
nmap <Leader>h1 <Plug>MyWonderfulMap 

Nó không hoạt động.

Tôi biết nó không phải là một biến chứng nghiêm trọng, tuy nhiên, tôi quan tâm để sử dụng repeat.vim cho ánh xạ của riêng.

+0

cũng http://vimcasts.org/ thấy các tập/tạo-lặp lại-ánh xạ-với-lặp lại-vim/ – Hotschke

Trả lời

6

Các repeat#set() gọi phải được thực hiện sau khi các bản đồ gọi, không chỉ một lần sau khi các bản đồ nét. Với :normal, bạn phải quấn này với :execute để có thể gắn :call, nhưng thực sự bản đồ của bạn không cần phải sử dụng :normal tại tất cả:

:nnoremap <silent> <Plug>MyWonderfulMap yyp<c-v>$r=:silent! call repeat#set("\<Plug>MyWonderfulMap", v:count)<CR> 
:nmap <Leader>h1 <Plug>MyWonderfulMap 
+1

cảm ơn bạn. những công việc này. – Hotschke

Các vấn đề liên quan