Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remapping ESC in insert mode with CR or Space does work via settings #2584

Closed
jrwrigh opened this issue Apr 30, 2018 · 6 comments
Closed

Remapping ESC in insert mode with CR or Space does work via settings #2584

jrwrigh opened this issue Apr 30, 2018 · 6 comments

Comments

@jrwrigh
Copy link

jrwrigh commented Apr 30, 2018

Is this a BUG REPORT or FEATURE REQUEST? (choose one): BUG REPORT

What happened:
Remapping to ESC does not work at all. This includes the solution posted in the README and will all other extensions disabled. I have no fucking clue what's going on.

I've been going off of #1908 and #2411 as some general guidelines to trying to solve the issue.
Firstly, as previously mentioned, I tried the solution presented in the README:

"vim.insertModeKeyBindings": [
        {
            "before": ["j", "j"],
            "after": ["<Esc>"]
        }
    ]

When I'm in insert mode and press jj it simply types out "jj". Honestly, that's not that surprising to me. I have no idea why you'd want this anyways (I'm probably using it wrong honestly).

I've traded out the "before" sequence for ["j","j"], ["<S-Space>"], and ["<S-CR>"],

I've traded out the "after" for the "commands" equivalent ("extension.vim_escape").

I've tried out "vim.insertModeKeyBindings" for "vim.insertModeKeyBindingsNonRecursive"

None of these work. Again, the only extension enabled is Vim. And it doesn't do anything

What did you expect to happen:
I expected to type jj or whatever key combination I've chosen to escape insert mode while I'm in insert mode.

How to reproduce it (as minimally and precisely as possible):

  1. Put the before mentioned solution from the README into setting.json
  2. Go to a document (python document in my case)
  3. Press i to go to insert mode or A to go append a line (still brings you to insert mode)
  4. Type some giberish
  5. Press jj on my keyboard quickly
  6. I see "jj" typed out on the screen
  7. Try all the combinations, repeat steps 2-6

Environment:

  • Extension (VsCodeVim) version: 0.11.5
  • VSCode version: 1.22.2
  • OS version: Windows 8.1 (unfortunately)

Note: I'm using code for keys I physically press and "quotes" for what comes up on screen. So I press the j key and the letter "j" comes up on screen. TIL <kbd>[keyboard text]</kbd> is a thing

@xconverge
Copy link
Member

Restart vscode after you add the mapping ;)

@jrwrigh
Copy link
Author

jrwrigh commented Apr 30, 2018

That doesn't work either unfortunately. At least with the solution presented in README. I haven't tried with the others. I legit think I'm just doing something wrong, I just don't know what.
Edit: also doesn't work with "<S-CR>"

@tyru
Copy link
Contributor

tyru commented Apr 30, 2018

The config seems to work in my machine
vscodevim-jj-map

@jrwrigh
Copy link
Author

jrwrigh commented Apr 30, 2018

Alright, I don't know what I did differently, but I left my computer for 6 hours and now it is working in some cases. "j","j" works now, and so does "C-n".

Anything with CR or Space though isn't working. Not sure if I should close the issue, keep it open, or make a new one for the CR and Space issues.

@jrwrigh jrwrigh changed the title Remapping ESC in insert mode does not work at all Remapping ESC in insert mode with CR or Space does work via settings~does not work at all~ Apr 30, 2018
@jrwrigh jrwrigh changed the title Remapping ESC in insert mode with CR or Space does work via settings~does not work at all~ Remapping ESC in insert mode with CR or Space does work via settings Apr 30, 2018
@jrwrigh
Copy link
Author

jrwrigh commented Apr 30, 2018

A way I just found around it is to do a keyboard mapping of Shift+Enter in normal VS Code keyboard maps:

    {
        "key": "shift+Enter",
        "command": "extension.vim_escape",
        "when": "editorTextFocus"
    }

Probably not ideal, but it doesn't appear to interfere with anything.

@jpoon
Copy link
Member

jpoon commented Jun 19, 2018

Mis-read this original issue. The remapping example works for me...

"vim.insertModeKeyBindings": [
        {
            "before": ["j", "j"],
            "after": ["<Esc>"]
        }
    ]

The <Shift> are a little weird. We support remapping of shift + character which in simplified English terms means, the capital form of that character (ie. you can remap "A", "B", etc). This extension does not bind to a + Carriage Return/Alt/Tab -- we do support shift+backspace (https://github.com/VSCodeVim/Vim/blob/master/package.json#L290) though. What this means is if you press these keycombos, vscode doesn't pass it along to the extension and therefore we know nothing about it.

Closing this as a dupe of #1908

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants