I decided to give neovim a try and things mostly work with my vim8 configuration. However, function keys are dead in the text user interface (ok in nvim-qt), i.e. with :map <F1> iFoo!<esc> nothing gets inserted when pressing F1. The same goes for <PgUp>, <Home> etc. Only the arrow keys work. Also, when I try to map with :map CTRL-V followed by a function key, no characters are produced. It is as if the function keys are dead, not providing any characters. The function keys produce the expected escape sequence at the shell prompt, i.e. for F1:

$ od -c
0000000  033   [   2   2   4   z  \n

This is on FreeBSD, TERM=xterm-256color with both the installed /usr/local/bin/nvim 0.4.4 as well as the current version cloned from github.

I've also tried under zsh and bash, same behavior. I've tried as a guest user without any dot files, nothing changed. The :healthcheck looks spotless (except for unwanted python 2):

## Configuration
  - OK: no issues found

## Performance
  - OK: Build type: Release

## Remote Plugins
  - OK: Up to date

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

## Python 2 provider (optional)
  - WARNING: No Python executable found that can `import neovim`. Using the first available executable for diagnostics.
  - ERROR: Python provider error:
    - ADVICE:
      - provider/pythonx: Could not load Python 2:
          python2 not found in search path or not executable.
          python2.7 not found in search path or not executable.
          python2.6 not found in search path or not executable.
          /usr/local/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/local/bin/python3
  - INFO: Python version: 3.7.10
  - INFO: pynvim version: 0.4.3
  - OK: Latest pynvim is installed.

## Ruby provider (optional)
  - INFO: Ruby: ruby 2.7.3p183 (2021-04-05 revision 6847ee089d) [amd64-freebsd13]
  - INFO: Host: /usr/local/bin/neovim-ruby-host
  - OK: Latest "neovim" gem is installed: 0.8.1

## Node.js provider (optional)
  - INFO: Node.js: v15.14.0
  - INFO: Neovim node.js host: /usr/local/lib/node_modules/neovim/bin/cli.js
  - OK: Latest "neovim" npm/yarn package is installed: 4.10.0

I'm running out of ideas to try. What am I doing wrong? What's funny with my system?

1 Answer 1


I tracked it down to an Xterm resource setting in my $XAPPLRESDIR/XTerm file. To allow shifted function keys, I have specified

*keyboardType: sun

The sequence generated by Xterm for F1 with this setting is <ESC>[224z, Shift-F1 is <ESC>[224;2z. If I remove/comment this resource line, neovim recognizes F1 (Xterm sends <ESC>[OP). However, Shift-F1 and Alt-F1 also produce <ESC>[OP, so I can't map them differently anymore. Since all of this works fine in vim, I consider it a bug missing feature.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.