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

Escape no longer closes pop-up-menu if expression mapped to CTRL-E #910

Qyriad opened this Issue Jan 9, 2019 · 1 comment


None yet
2 participants
Copy link

Qyriad commented Jan 9, 2019

Problems summary

As of 67c49f7, if the pop-up-menu is open, and there is not a completion selected, pressing escape (expression mapped to CTRL-E when the pop-up-menu is open) will not close the pop up menu.


When the pop-up-menu is open, and there is not a completion selected, pressing escape (expression mapped to CTRL-E when the pop-up-menu is open) should close the pop-up-menu. This was the case until 67c49f7.

Environment Information

  • deoplete version (SHA1): bf6db3b, master, as of the submission of this issue.

  • OS: Linux (Arch Linux, Linux 4.20.0)

  • neovim :version output:

NVIM v0.3.3
Build type: Release
LuaJIT 2.0.5
Compilation: /usr/bin/cc -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt -Wconversion -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 -Wno-array-bounds -DINCLUDE_GENERATED_DECLARATIONS -D_GNU_SOURCE -DNVIM_MSGPACK_HAS_FLOAT32 -DNVIM_UNIBI_HAS_VAR_FROM -I/build/neovim/src/build/config -I/build/neovim/src/neovim-0.3.3/src -I/usr/include -I/build/neovim/src/build/src/nvim/auto -I/build/neovim/src/build/include
Compiled by builduser

Features: +acl +iconv +jemalloc +tui
See ":help feature-compile"

   system vimrc file: "$VIM/sysinit.vim"
  fall-back for $VIM: "/usr/share/nvim"

Run :checkhealth for more info
  • :checkhealth or :CheckHealth result(neovim only):
Running healthchecks...
## deoplete.nvim
  - OK: exists("v:t_list") was successful
  - OK: has("timers") was successful
  - OK: has("python3") was successful
  - OK: Python3.5+ was successful
  - INFO: If you're still having problems, try the following commands:
    $ export NVIM_PYTHON_LOG_FILE=/tmp/log
    $ nvim
    $ cat /tmp/log_{PID}
    and then create an issue on github

## Configuration
  - OK: no issues found

## Performance
  - OK: Build type: Release

## Remote Plugins
  - OK: Up to date

## terminal
  - INFO: key_backspace (kbs) terminfo entry: key_backspace=^H
  - INFO: key_dc (kdch1) terminfo entry: key_dc=\E[3~
  - INFO: $VTE_VERSION='5402'
  - INFO: $COLORTERM='truecolor'

## tmux
  - OK: escape-time: 0ms
  - INFO: $TERM: tmux-256color

## Clipboard (optional)
  - OK: Clipboard tool found: xclip

## Python 2 provider (optional)
  - WARNING: No Python interpreter was found with the pynvim module.  Using the first available for diagnostics.
  - ERROR: Python provider error
    - ADVICE:
      - provider/pythonx: Could not load Python 2:
          /usr/bin/python2 does not have the "neovim" module. :help provider-python
          /usr/bin/python2.7 does not have the "neovim" module. :help provider-python
          python2.6 not found in search path or not executable.
          /usr/bin/python is Python 3.7 and cannot provide Python 2.
  - INFO: Executable: Not found

## Python 3 provider (optional)
  - INFO: `g:python3_host_prog` is not set.  Searching for python3 in the environment.
  - INFO: Executable: /usr/bin/python3
  - INFO: Python version: 3.7.2
  - INFO: pynvim version: 0.3.1
  - OK: Latest pynvim is installed.

## Ruby provider (optional)
  - WARNING: `ruby` and `gem` must be in $PATH.
    - ADVICE:
      - Install Ruby and verify that `ruby` and `gem` commands work.

## Node.js provider (optional)
  - WARNING: `node` and `npm` (or `yarn`) must be in $PATH.
    - ADVICE:
      - Install Node.js and verify that `node` and `npm` (or `yarn`) commands work.

Minimal init.vim

scriptencoding utf-8

syntax on
filetype plugin indent on

set completeopt=menu,menuone,preview,noselect,noinsert
inoremap <expr> <Esc> pumvisible() ? "\<C-e>" : "\<Esc>"
let g:deoplete#enable_at_startup = 1

call plug#begin('~/.config/nvim/plugged')
Plug 'Shougo/deoplete.nvim'
call plug#end()

Reproduction instructions from neovim startup

  1. Type something to open the pop-up-menu
  2. Press escape
  3. If a completion was previously selected, press escape again
  4. Observe that the pop-up-menu has not closed, and will not close no matter how many times escape is pressed

Given that CTRL-E doesn't close the pop-up-menu normally, and that, in the given configuration, escape is supposed to map to CTRL-E whenever the pop-up-menu is open, I'm actually not sure how this ever worked, or how bf6db3b broke it. Regardless, I've attached a logfile as requested in the GitHub issue template.


@Shougo Shougo closed this in 64f36b5 Jan 10, 2019


This comment has been minimized.

Copy link

Shougo commented Jan 10, 2019


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