Fix the problem of key bindings in finder buffers #4122
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
PR Prelude
Thank you for working on YCM! :)
Please complete these steps and check these boxes (by putting an
x
insidethe brackets) before filing your PR:
rationale for why I haven't.
actually perform all of these steps.
Why this change is necessary and useful
As we discussed on gitter, some extra insert-mode key bindings might dismiss the finder buffer. For example, if a user has something like
inoremap <BS> <C-r>=auto_pair()<CR>
in his/her.vimrc
, the finder buffer would immediately disappear after pressing<BS>
.This commit fixes the problem. It tries to override all the global mappings with some buffer-local mappings that remap each previously mapped key sequence to itself in the finder buffer, while the previously defined buffer-local mappings in the finder buffer are not overridden.
[Please explain in detail why the changes in this PR are needed.]
This change is