2012-10-07 23 views
9

Sau khi cài đặt vim-ruby-debugger plugin đó "chiếm đoạt" một vài ánh xạ. Giống như <leader>n hoặc <leader>t mà tôi sử dụng cho NERDTreeToggle và Command-T tương ứng.Ghi đè một bản remapping từ một plugin?

Thủ phạm được tìm thấy tại số hardcoded mappings in this ruby-debugger.

Tôi muốn các thẻ này được remapped là <leader>rdX, ví dụ: tiền tố với * r * uby- * d * ebugger. Rõ ràng, tôi chỉ đơn giản có thể hack các plugin và thay đổi ánh xạ ở đó. Nhưng điều đó có vẻ hơi quá khó khăn (và có thể sẽ phá vỡ các bản cập nhật).

Làm cách nào tôi có thể hủy ánh xạ các ánh xạ này, vì vậy vim sẽ dự phòng vào ánh xạ của riêng tôi một lần nữa? Và vì vậy mà tôi có thể remap các lệnh trong .vimrc của tôi (nơi nó nên được, IMHO).

+0

Sử dụng git, 'git pull' sẽ không cho phép thay đổi của bạn biến mất khi hợp nhất. – ZyX

+2

Tốt hơn, hãy nới rộng kho lưu trữ này trên github, thêm khả năng tùy chỉnh ánh xạ (nhanh hơn bằng cách thay đổi 'noremap b…' thành 'thực thi 'nnoremap' get (g :, 'ruby_debugger_map_toggle_breakpoint', ' b') '…' ') Và sau đó thực hiện một yêu cầu kéo. Với ánh xạ thay đổi được đề xuất sẽ được tùy chỉnh bằng biến 'g: ruby_debugger_map_toggle_breakpoint'. – ZyX

+2

Giải pháp thứ hai tốt hơn nhiều sau đó sử dụng một số cách giải quyết khác (như đặt ánh xạ của bạn không được ghi đè lên '~/.vim/after/plugin/mappings.vim', giải pháp được đề xuất đầu tiên hoặc sử dụng một số loại của tôi [' map.maparg'] (https://bitbucket.org/ZyX_I/frawor/src/a09e101e4a9a55e1bbbf6602a1ef2c4fcd839631/doc/frawor.txt#cl-731) trong cùng thư mục '~/.vim/after/plugin/mappings.vim' để lưu và sau đó 'map.map' để ánh xạ lại chúng, nhưng đến' rd * ', với lệnh' noremap' bình thường cho các plugin NerdTree của bạn). Tôi tin rằng bạn không phải là người duy nhất cần khả năng tùy chỉnh ánh xạ. – ZyX

Trả lời

6

Trước tiên, tôi đồng ý với nhận xét của ZyX rằng đây là sự cố trong plugin cần được khắc phục. Vui lòng yêu cầu tác giả plugin cung cấp tùy chỉnh.

Không có cách nào dễ dàng để unmap, bởi vì Vim không nhớ ánh xạ ban đầu khi ánh xạ được ghi đè. Bạn phải ghi chú ánh xạ ban đầu (:map ... khi plugin vi phạm tạm thời bị tắt hoặc xem tập lệnh Vim cho định nghĩa của chúng), sau đó thực thi lại sau plugin vi phạm đã được tải (trừ bất kỳ cờ <unique> nào) nó có thể có, vì chúng sẽ gây ra lỗi khi thực hiện lại). Điều này không thể được thực hiện trong .vimrc, nó có nguồn gốc đầu tiên; Tôi muốn giới thiệu một địa điểm như ~/.vim/after/plugin/zzzmappings.vim cho việc này.

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