diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2016-10-16 20:14:14 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-10-16 20:14:14 +0200 |
commit | fbd6b10e1b5b68fdec70e8ae8a2ad8ac2221a710 (patch) | |
tree | 3dcdc5476f133c009d4ba43f0c820e7adae78e26 /runtime/autoload | |
parent | 0fa4f98a05bbcb60b5c317fac0e70da3821688fe (diff) | |
parent | acdc0b1955e531cd5a365066e1ce3a3fe22eefb9 (diff) | |
download | rneovim-fbd6b10e1b5b68fdec70e8ae8a2ad8ac2221a710.tar.gz rneovim-fbd6b10e1b5b68fdec70e8ae8a2ad8ac2221a710.tar.bz2 rneovim-fbd6b10e1b5b68fdec70e8ae8a2ad8ac2221a710.zip |
Merge #5493 from justinmk/checkhealth
CheckHealth: check tmux, terminfo
Diffstat (limited to 'runtime/autoload')
-rw-r--r-- | runtime/autoload/health.vim | 3 | ||||
-rw-r--r-- | runtime/autoload/health/nvim.vim | 51 |
2 files changed, 54 insertions, 0 deletions
diff --git a/runtime/autoload/health.vim b/runtime/autoload/health.vim index 783c30cbf6..336adc65e5 100644 --- a/runtime/autoload/health.vim +++ b/runtime/autoload/health.vim @@ -13,6 +13,9 @@ function! s:enhance_syntax() abort syntax keyword healthSuggestion SUGGESTIONS highlight link healthSuggestion String + + " We do not care about markdown syntax errors in :CheckHealth output. + highlight! link markdownError Normal endfunction " Runs the specified healthchecks. diff --git a/runtime/autoload/health/nvim.vim b/runtime/autoload/health/nvim.vim index d769525373..60e56034e1 100644 --- a/runtime/autoload/health/nvim.vim +++ b/runtime/autoload/health/nvim.vim @@ -57,6 +57,57 @@ function! s:check_manifest() abort endif endfunction +function! s:check_tmux() abort + if empty($TMUX) || !executable('tmux') + return + endif + call health#report_start('tmux configuration') + let suggestions = ["Set escape-time in ~/.tmux.conf: set-option -sg escape-time 10", + \ 'See https://github.com/neovim/neovim/wiki/FAQ'] + let cmd = 'tmux show-option -qvgs escape-time' + let out = system(cmd) + let tmux_esc_time = substitute(out, '\v(\s|\r|\n)', '', 'g') + + if v:shell_error + call health#report_error('command failed: '.cmd."\n".out) + elseif empty(tmux_esc_time) + call health#report_error('escape-time is not set', suggestions) + elseif tmux_esc_time > 500 + call health#report_error( + \ 'escape-time ('.tmux_esc_time.') is higher than 300ms', suggestions) + else + call health#report_ok('escape-time = '.tmux_esc_time.'ms') + endif +endfunction + +function! s:check_terminfo() abort + if !executable('infocmp') + return + endif + call health#report_start('terminfo') + let suggestions = [ + \ "Set key_backspace to \\177 (ASCII BACKSPACE). Run these commands:\n" + \ .'infocmp $TERM | sed ''s/kbs=^[hH]/kbs=\\177/'' > $TERM.ti' + \ ."\n" + \ .'tic $TERM.ti', + \ 'See https://github.com/neovim/neovim/wiki/FAQ'] + let cmd = 'infocmp -L' + let out = system(cmd) + let kbs_entry = matchstr(out, 'key_backspace=\S*') + + if v:shell_error + call health#report_error('command failed: '.cmd."\n".out) + elseif !empty(matchstr(out, '\Vkey_backspace=^H')) + call health#report_error('key_backspace (kbs) entry is ^H (ASCII DELETE): ' + \ .kbs_entry, suggestions) + else + call health#report_info('key_backspace terminfo entry: ' + \ .(empty(kbs_entry) ? '? (not found)' : kbs_entry)) + endif +endfunction + function! health#nvim#check() abort call s:check_manifest() + call s:check_tmux() + call s:check_terminfo() endfunction |