diff --git a/src/MacVim/KeyBinding.plist b/src/MacVim/KeyBinding.plist
index 90fcdc0c52..ccc6702567 100644
--- a/src/MacVim/KeyBinding.plist
+++ b/src/MacVim/KeyBinding.plist
@@ -150,11 +150,11 @@
centerSelectionInVisibleArea:
^n
moveDown:
- ^o
+
^p
moveUp:
^t
@@ -370,7 +370,7 @@
moveToBeginningOfLineAndModifySelection:
^$
moveToEndOfLineAndModifySelection:
- ~
+
~
moveWordLeft:
~
diff --git a/src/MacVim/MMBackend.m b/src/MacVim/MMBackend.m
index dc849b68fe..4960e7bac8 100644
--- a/src/MacVim/MMBackend.m
+++ b/src/MacVim/MMBackend.m
@@ -1135,7 +1135,8 @@ - (oneway void)processInput:(int)msgid data:(in bycopy NSData *)data
if (1 == len) {
char_u *str = (char_u*)bytes;
if ((str[0] == Ctrl_C && ctrl_c_interrupts) ||
- (str[0] == intr_char && intr_char != Ctrl_C)) {
+ (str[0] == intr_char && intr_char != 0)) {
+ ASLogDebug(@"Got INT, str[0]=%#x", str[0]);
got_int = TRUE;
[inputQueue removeAllObjects];
return;
diff --git a/src/MacVim/MMTextViewHelper.m b/src/MacVim/MMTextViewHelper.m
index c13df9690f..6f29bcb3b3 100644
--- a/src/MacVim/MMTextViewHelper.m
+++ b/src/MacVim/MMTextViewHelper.m
@@ -251,7 +251,7 @@ - (void)doCommandBySelector:(SEL)sel
@selector(deleteWordBackward:) == sel ||
@selector(deleteBackwardByDecomposingPreviousCharacter:) == sel ||
@selector(deleteToBeginningOfLine:) == sel)
- [self doKeyDown:@"\x7f"];
+ [self doKeyDown:@"\x08"];
else if (@selector(keySpace:) == sel)
[self doKeyDown:@" "];
else if (@selector(cancel:) == sel)
@@ -262,6 +262,8 @@ - (void)doCommandBySelector:(SEL)sel
- (BOOL)performKeyEquivalent:(NSEvent *)event
{
ASLogDebug(@"");
+ if ([event type] != NSKeyDown)
+ return NO;
// NOTE: Key equivalent handling was fixed in Leopard. That is, an
// unhandled key equivalent is passed to keyDown: -- contrast this with
@@ -294,9 +296,7 @@ - (BOOL)performKeyEquivalent:(NSEvent *)event
// HACK! Pass the event on or it may disappear (Tiger does not pass Cmd-key
// events to keyDown:).
- if ([event type] == NSKeyDown)
- [self keyDown:event];
-
+ [self keyDown:event];
return YES;
}