Home Explore Blog CI



neovim

4th chunk of `runtime/doc/faq.txt`
3662469b3f8a6b947a0b9ad2c47121dd1cb846e49bde1d500000000100000ea6
 from the command line:
>bash
    locale | grep -E '(LANG|LC_CTYPE|LC_ALL)=(.*\.)?(UTF|utf)-?8'
<
If there's no results, you might not be using a UTF-8 locale. See these issues:
- https://github.com/neovim/neovim/issues/1601
- https://github.com/neovim/neovim/issues/1858
- https://github.com/neovim/neovim/issues/2386


ESC IN TMUX OR GNU SCREEN IS DELAYED ~

This is a common problem
https://www.google.com/?q=tmux%20vim%20escape%20delay in `tmux` / `screen`
(see also https://github.com/tmux/tmux/issues/131#issuecomment-145853211). The
corresponding timeout needs to be tweaked to a low value (10-20ms).

`.tmux.conf`:
>
    set -g escape-time 10
    # Or for tmux >= 2.6
    set -sg escape-time 10
<
`.screenrc`:
>
    maptimeout 10
<

"WHY DOESN'T THIS HAPPEN IN VIM?"

It does happen (try `vim -N -u NONE`), but if you hit a key quickly after
ESC then Vim interprets the ESC as ESC instead of ALT (META). You won't
notice the delay unless you closely observe the cursor. The tradeoff is that
Vim won't understand ALT (META) key-chords, so for example `nnoremap <M-a>`
won't work. ALT (META) key-chords always work in Nvim.
See also `:help xterm-cursor-keys` in Vim.

Nvim 0.3 mimics the Vim behavior while still fully supporting ALT mappings. See
|i_ALT|.


ESC IN GNU SCREEN IS LOST WHEN MOUSE MODE IS ENABLED ~

This happens because of a bug in screen https://savannah.gnu.org/bugs/?60196 :
in mouse mode, screen assumes that `ESC` is part of a mouse sequence and will
wait an unlimited time for the rest of the sequence, regardless of
`maptimeout`. Until it's fixed in screen, there's no known workaround for
this other than double-pressing escape, which causes a single escape to be
passed through to Nvim.


CALLING INPUTLIST(), ECHOMSG, ... IN FILETYPE PLUGINS AND AUTOCMD DOES NOT WORK ~

- https://github.com/neovim/neovim/issues/10008
- https://github.com/neovim/neovim/issues/10116
- https://github.com/neovim/neovim/issues/12288
- https://github.com/vim/vim/issues/4379

This is because Nvim sets `shortmess+=F` by default. Vim behaves the same way
with `set shortmes+=F`. There are plans to improve this, but meanwhile as a
workaround, use `set shortmess-=F` or use `unsilent` as follows.
>vim
    unsilent let var = inputlist(['1. item1', '2. item2'])
    autocmd BufNewFile * unsilent echomsg 'The autocmd has been fired.'
<

G:CLIPBOARD SETTINGS ARE NOT USED. ~

If the clipboard provider is already loaded, you will need to reload it after
configuration. Use the following configuration.
>vim
    let g:clipboard = { 'name' : ... }
    if exists('g:loaded_clipboard_provider')
      unlet g:loaded_clipboard_provider
      runtime autoload/provider/clipboard.vim
    endif
<

Or, if you want automatic reloading when assigning to |g:clipboard|, set
|init.vim| as follows.
>vim
    function! s:clipboard_changed(...) abort
      if exists('g:loaded_clipboard_provider')
        unlet g:loaded_clipboard_provider
      endif
      runtime autoload/provider/clipboard.vim
    endfunction

    if !exists('s:loaded")
      call dictwatcheradd(g:, 'clipboard', function('s:clipboard_changed'))
    endif
    let s:loaded = v:true
<

==============================================================================
Build issues                                                    *faq-build*


GENERAL BUILD ISSUES ~

Run `make distclean && make` to rule out a stale build environment causing the
failure.


SETTINGS IN LOCAL.MK DON'T TAKE EFFECT ~

CMake caches build settings, so you might need to run `rm -r build && make`
after modifying `local.mk`.


CMAKE ERRORS ~

`configure_file Problem configuring file`

This is probably a permissions issue, which can happen if you run `make` as the
root user, then later run an unprivileged

Title: Neovim FAQ: ESC Delay, Lost ESC in GNU Screen, InputList Issues, Clipboard Settings, and Build Problems
Summary
This section of the Neovim FAQ covers several troubleshooting topics: resolving ESC key delay in Tmux and GNU Screen, addressing lost ESC when mouse mode is enabled in GNU Screen, fixing issues with inputlist(), echomsg(), etc. in filetype plugins and autocommands, ensuring g:clipboard settings are used, and resolving general build issues, including problems with local.mk settings and CMake errors.