{"action":"created","issue":{"url":"https://api.github.com/repos/neovim/neovim/issues/8213","repository_url":"https://api.github.com/repos/neovim/neovim","labels_url":"https://api.github.com/repos/neovim/neovim/issues/8213/labels{/name}","comments_url":"https://api.github.com/repos/neovim/neovim/issues/8213/comments","events_url":"https://api.github.com/repos/neovim/neovim/issues/8213/events","html_url":"https://github.com/neovim/neovim/issues/8213","id":310290705,"number":8213,"title":"Fast Esc+Key in Insert Interpretted as Meta+Key","user":{"login":"dylnmc","id":7635158,"avatar_url":"https://avatars0.githubusercontent.com/u/7635158?v=4","gravatar_id":"","url":"https://api.github.com/users/dylnmc","html_url":"https://github.com/dylnmc","followers_url":"https://api.github.com/users/dylnmc/followers","following_url":"https://api.github.com/users/dylnmc/following{/other_user}","gists_url":"https://api.github.com/users/dylnmc/gists{/gist_id}","starred_url":"https://api.github.com/users/dylnmc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dylnmc/subscriptions","organizations_url":"https://api.github.com/users/dylnmc/orgs","repos_url":"https://api.github.com/users/dylnmc/repos","events_url":"https://api.github.com/users/dylnmc/events{/privacy}","received_events_url":"https://api.github.com/users/dylnmc/received_events","type":"User","site_admin":false},"labels":[{"id":77997475,"url":"https://api.github.com/repos/neovim/neovim/labels/duplicate","name":"duplicate","color":"e6e6e6","default":true},{"id":396626349,"url":"https://api.github.com/repos/neovim/neovim/labels/input","name":"input","color":"c5def5","default":false}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2018-04-01T03:33:55Z","updated_at":"2018-04-01T14:06:25Z","closed_at":"2018-04-01T08:07:45Z","author_association":"NONE","body":"<!-- Before reporting: search existing issues and check the FAQ. -->\r\n\r\n- `nvim --version`:\r\n\r\n```\r\nNVIM v0.2.2\r\nBuild type: Release\r\nLuaJIT 2.0.5\r\nCompilation: /usr/bin/cc -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt -Wconversion -DNVIM_MSGPACK_HAS_FLOAT32 -DNVIM_UNIBI_HAS_VAR_FROM -O2 -DNDEBUG -DMIN_LOG_LEVEL=3 -Wall -Wextra -pedantic -Wno-unused-parameter -Wstrict-prototypes -std=gnu99 -Wimplicit-fallthrough -Wvla -fstack-protector-strong -fdiagnostics-color=auto -DINCLUDE_GENERATED_DECLARATIONS -D_GNU_SOURCE -I/build/neovim/src/build/config -I/build/neovim/src/neovim-0.2.2/src -I/usr/include -I/usr/include -I/usr/include -I/usr/include -I/usr/include -I/usr/include -I/usr/include -I/build/neovim/src/build/src/nvim/auto -I/build/neovim/src/build/include\r\nCompiled by builduser\r\n\r\nFeatures: +acl +iconv +jemalloc +tui \r\nSee \":help feature-compile\"\r\n\r\n   system vimrc file: \"$VIM/sysinit.vim\"\r\n  fall-back for $VIM: \"/usr/share/nvim\"\r\n\r\nRun :checkhealth for more info\r\n```\r\n- Vim (version: ) behaves differently? **yes**\r\n\r\n```\r\nVIM - Vi IMproved 8.0 (2016 Sep 12, compiled Feb 22 2018 22:28:30)\r\nIncluded patches: 1-1531\r\nCompiled by dylnmc@xps\r\nHuge version with GTK2 GUI.  Features included (+) or not (-):\r\n+acl               +farsi             +mouse_sgr         -tag_any_white\r\n+arabic            +file_in_path      -mouse_sysmouse    -tcl\r\n+autocmd           +find_in_path      +mouse_urxvt       +termguicolors\r\n-autoservername    +float             +mouse_xterm       +terminal\r\n+balloon_eval      +folding           +multi_byte        +terminfo\r\n+balloon_eval_term -footer            +multi_lang        +termresponse\r\n+browse            +fork()            -mzscheme          +textobjects\r\n++builtin_terms    +gettext           +netbeans_intg     +timers\r\n+byte_offset       -hangul_input      +num64             +title\r\n+channel           +iconv             +packages          +toolbar\r\n+cindent           +insert_expand     +path_extra        +user_commands\r\n+clientserver      +job               +perl              +vertsplit\r\n+clipboard         +jumplist          +persistent_undo   +virtualedit\r\n+cmdline_compl     +keymap            +postscript        +visual\r\n+cmdline_hist      +lambda            +printer           +visualextra\r\n+cmdline_info      +langmap           +profile           +viminfo\r\n+comments          +libcall           +python/dyn        +vreplace\r\n+conceal           +linebreak         +python3/dyn       +wildignore\r\n+cryptv            +lispindent        +quickfix          +wildmenu\r\n+cscope            +listcmds          +reltime           +windows\r\n+cursorbind        +localmap          +rightleft         +writebackup\r\n+cursorshape       +lua               +ruby              +X11\r\n+dialog_con_gui    +menu              +scrollbind        -xfontset\r\n+diff              +mksession         +signs             +xim\r\n+digraphs          +modify_fname      +smartindent       +xpm\r\n+dnd               +mouse             +startuptime       +xsmp_interact\r\n-ebcdic            +mouseshape        +statusline        +xterm_clipboard\r\n+emacs_tags        +mouse_dec         -sun_workshop      -xterm_save\r\n+eval              +mouse_gpm         +syntax            \r\n+ex_extra          -mouse_jsbterm     +tag_binary        \r\n+extra_search      +mouse_netterm     +tag_old_static    \r\n   system vimrc file: \"$VIM/vimrc\"\r\n     user vimrc file: \"$HOME/.vimrc\"\r\n 2nd user vimrc file: \"~/.vim/vimrc\"\r\n      user exrc file: \"$HOME/.exrc\"\r\n  system gvimrc file: \"$VIM/gvimrc\"\r\n    user gvimrc file: \"$HOME/.gvimrc\"\r\n2nd user gvimrc file: \"~/.vim/gvimrc\"\r\n       defaults file: \"$VIMRUNTIME/defaults.vim\"\r\n    system menu file: \"$VIMRUNTIME/menu.vim\"\r\n  fall-back for $VIM: \"/usr/local/share/vim\"\r\nCompilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1       \r\nLinking: gcc   -L. -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -fstack-protector -rdynamic -Wl,-export-dynamic -Wl,-E -Wl,-rpath,/usr/lib/perl5/5.26/core_perl/CORE   -L/usr/local/lib -Wl,--as-needed -o vim   -lgtk-x11-2.0 -lgdk-x11-2.0 -lpangocairo-1.0 -latk-1.0 -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lglib-2.0 -lfontconfig -lfreetype -lSM -lICE -lXpm -lXt -lX11 -lXdmcp -lSM -lICE  -lm -ltinfo -lelf -lnsl    -lacl -lattr -lgpm -ldl  -L/usr/lib -llua -Wl,-E -Wl,-rpath,/usr/lib/perl5/5.26/core_perl/CORE -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -fstack-protector-strong -L/usr/local/lib  -L/usr/lib/perl5/5.26/core_perl/CORE -lperl -lpthread -lnsl -ldl -lm -lcrypt -lutil -lc    -lruby -lpthread -lgmp -ldl -lcrypt -lm     \r\n```\r\n\r\n- Operating system/version:\r\n\r\nArch / Rolling Release\r\n\r\n- Terminal name/version:\r\n\r\nURxvt `version 9.22`\r\n\r\n- `$TERM`:\r\n\r\n`rxvt-unicode-256color`\r\n\r\n### Steps to reproduce using `nvim -u NORC`\r\n\r\n`<m-l>` or, in human-speak <kbd>alt</kbd>+<kbd>l</kbd>\r\n\r\n### Actual behaviour\r\n\r\nIt inserts an `l`.\r\n\r\n### Expected behaviour\r\n\r\nSince nvim receives `<esc>l`, it should spit back `<esc>l` (**as vim does**). If do `read -r` in a terminal, you should see `^[l` when you type `<m-l>` since the terminal gets `<esc>l` when you type `<m-l>`\r\n\r\nThis is far from an issue merely about meta-key-codes. I have tried to use neovim for my purposes today, and I could not stand the fact that when I type `<esc>l` really quickly (for example, I do `<esc>la` a lot to move the character right one), nvim thinks I typed `<m-l>a` and so I get `la` inserted rather than escaping to normal mode, moving over one then going back into insert with `a`.\r\n\r\n### Fix\r\n\r\nWhat, in my humble opinion, should be done to fix the issue is *not* report back `l` when `<esc>l` or even `<m-l>` is pressed. Rather it should report back `<esc>l`. The `<esc>` is important!! Sometimes fast typers actually type an `<esc>` rather than a meta+key. It's perfectly fine to capture this if the user or a plugin maps `<m-l>` with `inoremap`, etc, but to just strip off the `<esc>` when I type `<esc>l` really quickly is causing me a lot of anguish; in fact, I am going to switch back to vim until this issue is resolved.\r\n\r\n### Questions?\r\n\r\nSince this issue may be a little murky (despite my best intentions to illuminate the issue), please ask any questions you might have, if this is still unclear.\r\n\r\nThanks so much for all the hard work,\r\ndylnmc\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/neovim/neovim/issues/comments/377789161","html_url":"https://github.com/neovim/neovim/issues/8213#issuecomment-377789161","issue_url":"https://api.github.com/repos/neovim/neovim/issues/8213","id":377789161,"user":{"login":"dylnmc","id":7635158,"avatar_url":"https://avatars0.githubusercontent.com/u/7635158?v=4","gravatar_id":"","url":"https://api.github.com/users/dylnmc","html_url":"https://github.com/dylnmc","followers_url":"https://api.github.com/users/dylnmc/followers","following_url":"https://api.github.com/users/dylnmc/following{/other_user}","gists_url":"https://api.github.com/users/dylnmc/gists{/gist_id}","starred_url":"https://api.github.com/users/dylnmc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dylnmc/subscriptions","organizations_url":"https://api.github.com/users/dylnmc/orgs","repos_url":"https://api.github.com/users/dylnmc/repos","events_url":"https://api.github.com/users/dylnmc/events{/privacy}","received_events_url":"https://api.github.com/users/dylnmc/received_events","type":"User","site_admin":false},"created_at":"2018-04-01T14:06:25Z","updated_at":"2018-04-01T14:06:25Z","author_association":"NONE","body":"yeah, I do set ttimeoutlen to 50, but the crux of the issue is that when neovim sees `<esc><char>` it returns `<char>` and this is a *bad* philosophy.\r\n\r\nPay no heed if you do not wish to.\r\n\r\nI shall keep using vim."}}
{"actor":{"display_login":"dylnmc"}}