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