2015-04-07 12 views
6

Tôi muốn để lập bản đồ <Leader>a tìm kiếm với ag từ dưới con trỏVim tìm kiếm với ag từ dưới con trỏ

tôi đã viết này:

noremap <Leader>a :Ag!<C-u><C-r>=Escape(expand('<cword>'))<CR> 

function! Escape(stuff) 
    return substitute(escape(a:stuff, '\/.*$^~[]'), "\n", '\\n', "g") 
endfunction 

Thật không may khi tôi nhấn <Leader>a vào từ foo Tôi nhận được điều này:

:foo 

Ag! biến mất và dấu trang <CR> không phải là e xé.

Lỗi của tôi ở đâu?

Trả lời

8

bạn thêm <c-u> trong bản đồ của bạn, nó sẽ loại bỏ :Ag!

Bạn có thể muốn sử dụng -Q cho ag để thực hiện tìm kiếm chữ.

Đối với vấn đề <CR>, bạn <CR> là dành cho sự biểu hiện <c-r>=, bạn cần thêm một <CR> để khởi động lệnh.

+1

Tốt, cảm ơn. Sau đó, tôi sẽ sử dụng 'noremap a: Ag! -Q = mở rộng ('') '. Tại sao '' không được tính đến? – nowox

+1

@coin xem câu trả lời cập nhật – Kent

0
noremap <leader>a :Ag! "<cword>"<cr> 
Các vấn đề liên quan