Ale sometimes messes with the gutter display:

Disabling Ale and Airline integration resolves the issue:

I'm not sure if this is an issue with Airline or Ale.
The relevant config from my .vimrc:
" Airline ---------------------------------------------------------------------- {{{2
let g:airline#extensions#tabline#enabled = 1 " Display Tabs
let g:airline_powerline_fonts = 1
" Display Ale status in Airline
call airline#parts#define_function('ALE', 'ALEGetStatusLine')
call airline#parts#define_condition('ALE', 'exists("*ALEGetStatusLine")')
let g:airline_section_error = airline#section#create_right(['ALE'])
" Ale --------------------------------------------------------------------- {{{2
let g:ale_sign_error = '✗'
let g:ale_sign_warning = '❱'
let g:ale_statusline_format = ['✗ %d', '❱ %d', '✔ ok']
nmap <silent> [e <Plug>(ale_previous_wrap)
nmap <silent> ]e <Plug>(ale_next_wrap)
$ vim --version
NVIM v0.2.1-134-gd76a9582
Build type: RelWithDebInfo
Compilation: /usr/local/Homebrew/Library/Homebrew/shims/super/clang -Wconversion -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -DNVIM_MSGPACK_HAS_FLOAT32 -O2 -g -DDISABLE_LOG -Wall -Wextra -pedantic -Wno-unused-parameter -Wstrict-prototypes -std=gnu99 -Wvla -fstack-protector-strong -fdiagnostics-color=auto -DINCLUDE_GENERATED_DECLARATIONS -I/tmp/neovim-20170509-45126-18url74/build/config -I/tmp/neovim-20170509-45126-18url74/src -I/usr/local/include -I/usr/local/include -I/usr/local/include -I/usr/local/include -I/usr/local/include -I/usr/local/include -I/usr/local/opt/gettext/include -I/usr/include -I/usr/include -I/tmp/neovim-20170509-45126-18url74/build/src/nvim/auto -I/tmp/neovim-20170509-45126-18url74/build/include
Compiled by jottr@titan
Optional features included (+) or not (-): +acl +iconv +jemalloc +tui
For differences from Vim, see :help vim-differences
system vimrc file: "$VIM/sysinit.vim"
fall-back for $VIM: "/usr/local/Cellar/neovim/HEAD-d76a958/share/nvim"
Current Filetype: javascript
Available Linters: ['eslint', 'flow', 'jscs', 'jshint', 'standard', 'xo']
Enabled Linters: ['eslint', 'flow', 'jscs', 'jshint', 'standard', 'xo']
Linter Variables:
let g:ale_javascript_eslint_executable = 'eslint'
let g:ale_javascript_eslint_options = ''
let g:ale_javascript_eslint_use_global = 0
let g:ale_javascript_flow_executable = 'flow'
let g:ale_javascript_flow_use_global = 0
let g:ale_javascript_jshint_executable = 'jshint'
let g:ale_javascript_jshint_use_global = 0
let g:ale_javascript_standard_executable = 'standard'
let g:ale_javascript_standard_options = ''
let g:ale_javascript_standard_use_global = 0
let g:ale_javascript_xo_executable = 'xo'
let g:ale_javascript_xo_options = ''
let g:ale_javascript_xo_use_global = 0
Global Variables:
let g:ale_echo_cursor = 1
let g:ale_echo_msg_error_str = 'Error'
let g:ale_echo_msg_format = '%s'
let g:ale_echo_msg_warning_str = 'Warning'
let g:ale_enabled = 1
let g:ale_keep_list_window_open = 0
let g:ale_lint_delay = 200
let g:ale_lint_on_enter = 1
let g:ale_lint_on_save = 1
let g:ale_lint_on_text_changed = 'always'
let g:ale_linter_aliases = {}
let g:ale_linters = {}
let g:ale_open_list = 0
let g:ale_set_highlights = 1
let g:ale_set_loclist = 1
let g:ale_set_quickfix = 0
let g:ale_set_signs = 1
let g:ale_sign_column_always = 0
let g:ale_sign_error = '‚úó'
let g:ale_sign_offset = 1000000
let g:ale_sign_warning = '‚ù±'
let g:ale_statusline_format = ['‚úó %d', '‚ù± %d', '‚úî ok']
let g:ale_warn_about_trailing_whitespace = 1
Command History:
(started) ['/bin/zsh', '-c', '''standard'' --stdin ''/Users/jottr/dev/js/tmp/t.js'' < ''/var/folders/mv/dy0670cn3255t3fjlv5dwk1m0000gn/T/nvimsOffUe/1244/t.js''']
(started) ['/bin/zsh', '-c', '''standard'' --stdin ''/Users/jottr/dev/js/tmp/t.js'' < ''/var/folders/mv/dy0670cn3255t3fjlv5dwk1m0000gn/T/nvimsOffUe/1245/t.js''']
(started) ['/bin/zsh', '-c', '''standard'' --stdin ''/Users/jottr/dev/js/tmp/t.js'' < ''/var/folders/mv/dy0670cn3255t3fjlv5dwk1m0000gn/T/nvimsOffUe/1246/t.js''']
(started) ['/bin/zsh', '-c', '''standard'' --stdin ''/Users/jottr/dev/js/tmp/t.js'' < ''/var/folders/mv/dy0670cn3255t3fjlv5dwk1m0000gn/T/nvimsOffUe/1247/t.js''']
(started) ['/bin/zsh', '-c', '''standard'' --stdin ''/Users/jottr/dev/js/tmp/t.js'' < ''/var/folders/mv/dy0670cn3255t3fjlv5dwk1m0000gn/T/nvimsOffUe/1248/t.js''']
(started) ['/bin/zsh', '-c', '''standard'' --stdin ''/Users/jottr/dev/js/tmp/t.js'' < ''/var/folders/mv/dy0670cn3255t3fjlv5dwk1m0000gn/T/nvimsOffUe/1249/t.js''']
(finished - exit code 0) ['/bin/zsh', '-c', '''standard'' --stdin ''/Users/jottr/dev/js/tmp/t.js'' < ''/var/folders/mv/dy0670cn3255t3fjlv5dwk1m0000gn/T/nvimsOffUe/1250/t.js''']
(started) ['/bin/zsh', '-c', '''standard'' --stdin ''/Users/jottr/dev/js/tmp/t.js'' < ''/var/folders/mv/dy0670cn3255t3fjlv5dwk1m0000gn/T/nvimsOffUe/1251/t.js''']
(finished - exit code 1) ['/bin/zsh', '-c', '''standard'' --stdin ''/Users/jottr/dev/js/tmp/t.js'' < ''/var/folders/mv/dy0670cn3255t3fjlv5dwk1m0000gn/T/nvimsOffUe/1252/t.js''']
(finished - exit code 0) ['/bin/zsh', '-c', '''standard'' --stdin ''/Users/jottr/dev/js/tmp/t.js'' < ''/var/folders/mv/dy0670cn3255t3fjlv5dwk1m0000gn/T/nvimsOffUe/1253/t.js''']
(finished - exit code 0) ['/bin/zsh', '-c', '''standard'' --stdin ''/Users/jottr/dev/js/tmp/t.js'' < ''/var/folders/mv/dy0670cn3255t3fjlv5dwk1m0000gn/T/nvimsOffUe/1254/t.js''']
(finished - exit code 0) ['/bin/zsh', '-c', '''standard'' --stdin ''/Users/jottr/dev/js/tmp/t.js'' < ''/var/folders/mv/dy0670cn3255t3fjlv5dwk1m0000gn/T/nvimsOffUe/1256/t.js''']
(started) ['/bin/zsh', '-c', '''standard'' --stdin ''/Users/jottr/dev/js/tmp/t.js'' < ''/var/folders/mv/dy0670cn3255t3fjlv5dwk1m0000gn/T/nvimsOffUe/1257/t.js''']
(finished - exit code 1) ['/bin/zsh', '-c', '''standard'' --stdin ''/Users/jottr/dev/js/tmp/t.js'' < ''/var/folders/mv/dy0670cn3255t3fjlv5dwk1m0000gn/T/nvimsOffUe/1258/t.js''']
(started) ['/bin/zsh', '-c', '''standard'' --stdin ''/Users/jottr/dev/js/tmp/t.js'' < ''/var/folders/mv/dy0670cn3255t3fjlv5dwk1m0000gn/T/nvimsOffUe/1259/t.js''']
(started) ['/bin/zsh', '-c', '''standard'' --stdin ''/Users/jottr/dev/js/tmp/t.js'' < ''/var/folders/mv/dy0670cn3255t3fjlv5dwk1m0000gn/T/nvimsOffUe/1260/t.js''']
(finished - exit code 1) ['/bin/zsh', '-c', '''standard'' --stdin ''/Users/jottr/dev/js/tmp/t.js'' < ''/var/folders/mv/dy0670cn3255t3fjlv5dwk1m0000gn/T/nvimsOffUe/1261/t.js''']
(started) ['/bin/zsh', '-c', '''standard'' --stdin ''/Users/jottr/dev/js/tmp/t.js'' < ''/var/folders/mv/dy0670cn3255t3fjlv5dwk1m0000gn/T/nvimsOffUe/1262/t.js''']
(finished - exit code 0) ['/bin/zsh', '-c', '''standard'' --stdin ''/Users/jottr/dev/js/tmp/t.js'' < ''/var/folders/mv/dy0670cn3255t3fjlv5dwk1m0000gn/T/nvimsOffUe/1263/t.js''']
(finished - exit code 0) ['/bin/zsh', '-c', '''standard'' --stdin ''/Users/jottr/dev/js/tmp/t.js'' < ''/var/folders/mv/dy0670cn3255t3fjlv5dwk1m0000gn/T/nvimsOffUe/1266/t.js''']
Do you see any issues if you use the default signs? Try removing your g:ale_sign_error and g:ale_sign_warning variables.
Not sure. I'll have to test it for some time.
I'll report back once I know more.
Check this again with the default signs, and let me know if it works.
Was your problem here that you couldn't see the characters in the gutter? Or something else. It's not obvious what the problem is by looking at the images.
Yes, the signs are not displayed occasionally, then reappear i.e. after a vim restart.
Since this rendering issue seems to crop up randomly I was wondering if might be related to #697 somehow.
After I reset to default signs the issue seems to have gone away. I wasn't able to test it in-depth though.
One trick that I've had success in dealing with similar issues is adding
hi clear SignColumn
to my vimrc. Try this. Does it work? Does it cause anything else to mess up?
(In particular, you might have to add it after setting the colorscheme.)
Most helpful comment
One trick that I've had success in dealing with similar issues is adding
to my vimrc. Try this. Does it work? Does it cause anything else to mess up?