2013-08-20 63 views
10

Tôi đã theo dõi http://sontek.net/blog/detail/turning-vim-into-a-modern-python-ide#intro để cài đặt một loạt plugin cho lập trình Python trong gvim (được cài đặt trên máy tính Windows 8). Dường như có sự mâu thuẫn ánh xạ giữa các 'lệnh t' và 'tasklist' plugins, khi tôi nhận được thông báo lỗi sau:Giải quyết xung đột lập bản đồ plugin vim - ánh xạ đã tồn tại cho t

>Error detected while processing C:\Users\Willem\vimfiles\bundle\tasklist\pl 
>ugin\tasklist.vim: 
> 
>line 369: 
> 
>E227: mapping already exists for \t 

Sau đó, tôi gõ: Bản đồ trong vim và thấy rằng một bản đồ là:

>n \t    * :CommandT<CR> 

Có cách nào tốt để giải quyết vấn đề này không?

Trả lời

9

danh sách tác vụ sẽ không ánh xạ tới <leader>t nếu bạn đã tìm thấy ánh xạ tới <Plug>TaskList.

Vì vậy, bạn chỉ cần tạo ánh xạ tới <Plug>TaskList trong vimrc của mình. Ví dụ tôi tìm thấy trong mã nguồn đã

nnoremap <leader>v <Plug>TaskList 
1

khác, có lẽ không hoàn hảo, giải pháp sẽ được chỉnh sửa trực tiếp tasklist.vim xung quanh dòng 369 và tự thay đổi các bản đồ đó được thực hiện ở đó.

2

Dưới đây là một lời giải thích tổng quát hơn:

Từ vim Trợ giúp:

Cả <SID><Plug> được sử dụng để tránh điều đó ánh xạ của gõ phím can thiệp với các ánh xạ mà chỉ được sử dụng từ khác ánh xạ. Lưu ý sự khác biệt giữa việc sử dụng <SID><Plug>:

<Plug> hiển thị bên ngoài tập lệnh. Nó được sử dụng cho ánh xạ mà người dùng có thể muốn ánh xạ một chuỗi khóa đến. <Plug> là mã đặc biệt mà khóa được nhập sẽ không bao giờ sản xuất. Để làm cho nó rất không chắc rằng các plugin khác sử dụng cùng một chuỗi ký tự, hãy sử dụng cấu trúc này: tên bản đồ tên tệp Trong ví dụ của chúng tôi, tên kịch bản là "Typecorr" và tên bản đồ là "Thêm". Điều này dẫn đến kết quả là "TypecorrAdd". Chỉ có ký tự đầu tiên của tên kịch bản và tên bản đồ là chữ hoa, để chúng ta có thể thấy tên bản đồ bắt đầu từ đâu.

Vì vậy, nếu bạn muốn lỗi không xuất hiện, bạn cần ánh xạ thứ gì đó đến <Plug>Tasklist trong mẫu của bạn.

Như sau:

nnoremap <leader>v <Plug>TaskList