{"action":"created","issue":{"url":"https://api.github.com/repos/neovim/neovim/issues/2093","labels_url":"https://api.github.com/repos/neovim/neovim/issues/2093/labels{/name}","comments_url":"https://api.github.com/repos/neovim/neovim/issues/2093/comments","events_url":"https://api.github.com/repos/neovim/neovim/issues/2093/events","html_url":"https://github.com/neovim/neovim/issues/2093","id":59810079,"number":2093,"title":"bad characters inserted occasionally immediately after <ESC>","user":{"login":"aeruder","id":130169,"avatar_url":"https://avatars.githubusercontent.com/u/130169?v=3","gravatar_id":"","url":"https://api.github.com/users/aeruder","html_url":"https://github.com/aeruder","followers_url":"https://api.github.com/users/aeruder/followers","following_url":"https://api.github.com/users/aeruder/following{/other_user}","gists_url":"https://api.github.com/users/aeruder/gists{/gist_id}","starred_url":"https://api.github.com/users/aeruder/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aeruder/subscriptions","organizations_url":"https://api.github.com/users/aeruder/orgs","repos_url":"https://api.github.com/users/aeruder/repos","events_url":"https://api.github.com/users/aeruder/events{/privacy}","received_events_url":"https://api.github.com/users/aeruder/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/neovim/neovim/labels/bug","name":"bug","color":"fc2929"},{"url":"https://api.github.com/repos/neovim/neovim/labels/tui","name":"tui","color":"bfd4f2"}],"state":"closed","locked":false,"assignee":{"login":"tarruda","id":842846,"avatar_url":"https://avatars.githubusercontent.com/u/842846?v=3","gravatar_id":"","url":"https://api.github.com/users/tarruda","html_url":"https://github.com/tarruda","followers_url":"https://api.github.com/users/tarruda/followers","following_url":"https://api.github.com/users/tarruda/following{/other_user}","gists_url":"https://api.github.com/users/tarruda/gists{/gist_id}","starred_url":"https://api.github.com/users/tarruda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tarruda/subscriptions","organizations_url":"https://api.github.com/users/tarruda/orgs","repos_url":"https://api.github.com/users/tarruda/repos","events_url":"https://api.github.com/users/tarruda/events{/privacy}","received_events_url":"https://api.github.com/users/tarruda/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/neovim/neovim/milestones/10","html_url":"https://github.com/neovim/neovim/milestones/0.2","labels_url":"https://api.github.com/repos/neovim/neovim/milestones/10/labels","id":1183808,"number":10,"title":"0.2","description":"beta release, codename: \"keanu\"","creator":{"login":"justinmk","id":1359421,"avatar_url":"https://avatars.githubusercontent.com/u/1359421?v=3","gravatar_id":"","url":"https://api.github.com/users/justinmk","html_url":"https://github.com/justinmk","followers_url":"https://api.github.com/users/justinmk/followers","following_url":"https://api.github.com/users/justinmk/following{/other_user}","gists_url":"https://api.github.com/users/justinmk/gists{/gist_id}","starred_url":"https://api.github.com/users/justinmk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/justinmk/subscriptions","organizations_url":"https://api.github.com/users/justinmk/orgs","repos_url":"https://api.github.com/users/justinmk/repos","events_url":"https://api.github.com/users/justinmk/events{/privacy}","received_events_url":"https://api.github.com/users/justinmk/received_events","type":"User","site_admin":false},"open_issues":113,"closed_issues":23,"state":"open","created_at":"2015-06-27T19:05:24Z","updated_at":"2015-10-08T18:40:22Z","due_on":null,"closed_at":null},"comments":54,"created_at":"2015-03-04T15:07:03Z","updated_at":"2015-10-10T11:57:51Z","closed_at":"2015-09-07T11:40:38Z","body":"Finally found a pretty easy way to reproduce this.\r\n\r\n* Run nvim -u NONE\r\n* :set showmatch\r\n* Type i(1**)\\<ESC\\>j**\r\n\r\nThe )\\<ESC\\>j needs to be typed pretty quickly.  For me I almost always end up with a ê character and I'm still in insert mode.  Set showmatch seems to make it happen almost every time but I'm guessing it is just as possible anytime a plugin or otherwise causes some lag and results in processing the \\<ESC\\>j really quickly."},"comment":{"url":"https://api.github.com/repos/neovim/neovim/issues/comments/147081859","html_url":"https://github.com/neovim/neovim/issues/2093#issuecomment-147081859","issue_url":"https://api.github.com/repos/neovim/neovim/issues/2093","id":147081859,"user":{"login":"leonerd","id":350941,"avatar_url":"https://avatars.githubusercontent.com/u/350941?v=3","gravatar_id":"","url":"https://api.github.com/users/leonerd","html_url":"https://github.com/leonerd","followers_url":"https://api.github.com/users/leonerd/followers","following_url":"https://api.github.com/users/leonerd/following{/other_user}","gists_url":"https://api.github.com/users/leonerd/gists{/gist_id}","starred_url":"https://api.github.com/users/leonerd/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/leonerd/subscriptions","organizations_url":"https://api.github.com/users/leonerd/orgs","repos_url":"https://api.github.com/users/leonerd/repos","events_url":"https://api.github.com/users/leonerd/events{/privacy}","received_events_url":"https://api.github.com/users/leonerd/received_events","type":"User","site_admin":false},"created_at":"2015-10-10T11:57:51Z","updated_at":"2015-10-10T11:57:51Z","body":"To add to what @tarruda says: there is a way to reduce that coupling of the <kbd>Escape</kbd> key, which involves requesting `S8C1T` from the terminal, because if it accepts that (which is fairly likely on most terminals), it will use the single 8bit byte encoding of CSI instead of the two-byte `ESC [` sequence. This reduces the occasions where a real `ESC` byte is seen.\r\n\r\nAnnoyingly, it is slightly insufficient because of the way most (legacy) terminals encode simple <kbd>Alt</kbd> modified printing characters, is also to prefix `ESC` on them. If those too are changed to use `CSI u` encoding, which itself uses the single 8bit value, then now the only time an `ESC` byte is ever seen comes from the real <kbd>Escape</kbd> key; at which point all those annoying timing issues disappear.\r\n\r\nIt's this latter part which requires more work and support from terminals."}}