Improve vim-mode to catch input better if in 'start' mode
This commit is contained in:
parent
252b064d6a
commit
ffca65d15e
2 changed files with 19 additions and 10 deletions
|
|
@ -165,9 +165,11 @@ KeyboardStateMapper.prototype = {
|
|||
if (binding.then) {
|
||||
data.state = binding.then;
|
||||
data.buffer = "";
|
||||
if (result.command == null) {
|
||||
result.command = "null";
|
||||
}
|
||||
}
|
||||
|
||||
// If no command is set, then execute the "null" fake command.
|
||||
if (result.command == null) {
|
||||
result.command = "null";
|
||||
}
|
||||
|
||||
return true;
|
||||
|
|
|
|||
|
|
@ -94,15 +94,22 @@ var vimStates = {
|
|||
]
|
||||
},
|
||||
{
|
||||
comment: "Let all combos of Command, Ctrl, Optional pass...",
|
||||
comment: "Catch some keyboard input to stop it here",
|
||||
match: function(buffer, hashId, key, symbolicName) {
|
||||
return hashId != 0 && !(hashId & 4);
|
||||
// If no command keys are pressed, then catch the input.
|
||||
if (hashId == 0) {
|
||||
return true;
|
||||
}
|
||||
// If only the shift key is pressed and a character key, then
|
||||
// catch that input as well.
|
||||
else if ((hashId == 4) && key.length == 1) {
|
||||
return true;
|
||||
}
|
||||
// Otherwise, we let the input got through.
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
comment: "...but stop all other input!",
|
||||
key: ".*",
|
||||
exec: "null"
|
||||
}
|
||||
],
|
||||
insertMode: [
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue