Có vẻ như ánh xạ là cục bộ của một bộ đệm vì nó được định nghĩa với đối số <buffer>
.
Khi bạn gõ :unmap y<C-G>
, bạn yêu cầu Vim để unmap một ánh xạ toàn cầu mà {lhs}
là y<C-G>
, nhưng có bản đồ toàn cầu có lẽ không như vậy trên hệ thống của bạn do đó lỗi.
Nếu bạn muốn hủy ánh xạ ánh xạ cục bộ, bạn phải sử dụng cùng một đối số <buffer>
đã được sử dụng để xác định nó::unmap <buffer> y<C-G>
Biên tập:
Để tự động quá trình này bạn có thể cài đặt một autocmd xem các sự kiện VimEnter
, BufNewFile
và BufReadPost
. Nó sẽ kiểm tra nếu ánh xạ tồn tại if !empty(maparg('y<C-G>', 'n'))
, trước khi cố gắng xóa nó. Nó có thể cung cấp một cái gì đó như:
augroup custom_fugitive
autocmd!
autocmd VimEnter,BufNewFile,BufReadPost * if !empty(maparg('y<C-G>', 'n')) | unmap <buffer> y<C-G>| endif
augroup END
Bạn không thể viết cái này trong cái của bạn vimrc
bởi vì cái sau có nguồn gốc trước các plugin của bạn sẽ ghi đè lên bất cứ điều gì bạn làm. Thay vào đó bạn sẽ phải viết nó bên trong ~/.vim/after/plugin/mappings.vim
. Tên tệp ( mappings.vim
) không quan trọng, chỉ thư mục là quan trọng ( ~/.vim/after/plugin/
).
Chỉnh sửa 2:
Như bình luận cuối cùng của bạn nói, có vẻ như có một cách khác để vô hiệu hóa ánh xạ. fugitive
cài đặt ánh xạ <C-R><C-G>
và y<C-G>
chỉ khi g:fugitive_no_maps
khác 0. Vì vậy, nếu bạn bao gồm let g:fugitive_no_maps=1
bên trong của bạn vimrc
, y<C-G>
không nên được xác định.
fugitive
plugin.