2 finger tap is easier than blackslash for input esc
Closed this issue · 1 comments
To input blackslash in iOS, we need switch to symbol keyboard by two click, not a good idea. Personally, I prefer to using two finger tap gesture as an alternative.
I have forked it as https://github.com/pinxue/Vim .
git diff is:
diff --git a/src/gui_ios.m b/src/gui_ios.m
index ecd1f11..10b5e7a 100644
--- a/src/gui_ios.m
+++ b/src/gui_ios.m
@@ -128,7 +128,13 @@ enum blink_state {
- (void)viewDidLoad {
[super viewDidLoad]; - UITapGestureRecognizer * tap2fGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(click2f:)];
- tap2fGestureRecognizer.numberOfTouchesRequired = 2;
- [_textView addGestureRecognizer:tap2fGestureRecognizer];
- [tap2fGestureRecognizer release];
- UITapGestureRecognizer * tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(click:)];
- tapGestureRecognizer.numberOfTouchesRequired = 1;
[_textView addGestureRecognizer:tapGestureRecognizer];
[tapGestureRecognizer release];
@@ -199,6 +205,13 @@ enum blink_state {
gui_send_mouse_event(MOUSE_LEFT, clickLocation.x, clickLocation.y, 1, 0);
}
+- (void)click2f:(UITapGestureRecognizer *)sender {
- [self becomeFirstResponder];
- // send ESC
- char escapeString[] = {ESC, 0};
- [self insertText:[NSString stringWithUTF8String:escapeString]];
+}
- (void)pan:(UIPanGestureRecognizer *)sender {
CGPoint clickLocation = [sender locationInView:sender.view];
Thanks for the patch @pinxue ! However I won't pull this in, as it isn't user-customizable. Sure backslash isn't the best solution. But at least it's something users can change without rebuilding Vim.
In that case, I think the proper fix would be to solve issue #3 by adding gestures as mappable objects.
Thanks a lot for your time though !