0
0
mirror of https://github.com/vim/vim.git synced 2025-07-04 23:07:33 -04:00

runtime(defaults): Detect putty terminal and switch to dark background

Vim tries to determine the default background and checks for $TERM
and even checks for the "putty" value. But unfortunately, putty by
default uses "xterm" as $TERM value and as such Vim uses a "light"
background.

So use a TermResponse autocommand to set the background for putty back
to dark.

Note: this only works on non-tiny builds and when defaults.vim is in
use.

Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
Christian Brabandt 2024-10-27 21:33:09 +01:00
parent ce35ee8986
commit 2abec431e1
No known key found for this signature in database
GPG Key ID: F3F92DA383FDDE09
4 changed files with 24 additions and 6 deletions

View File

@ -115,6 +115,11 @@ if 1
\ | execute "normal! g`\""
\ | endif
" Set the default background for putty to dark. Putty usually sets the
" $TERM to xterm and by default it starts with a dark background which
" makes syntax highlighting often hard to read with bg=light
" undo this using: ":au! vimStartup TermResponse"
autocmd TermResponse * if v:termresponse == "\e[>0;136;0c" | set bg=dark | endif
augroup END
" Quite a few people accidentally type "q:" instead of ":q" and get confused

View File

@ -1,4 +1,4 @@
*autocmd.txt* For Vim version 9.1. Last change: 2024 Aug 18
*autocmd.txt* For Vim version 9.1. Last change: 2024 Oct 27
VIM REFERENCE MANUAL by Bram Moolenaar
@ -1254,10 +1254,19 @@ TerminalWinOpen Just after a terminal buffer was created, with
TermResponse After the response to |t_RV| is received from
the terminal. The value of |v:termresponse|
can be used to do things depending on the
terminal version. Note that this event may be
triggered halfway executing another event,
especially if file I/O, a shell command or
anything else that takes time is involved.
terminal version.
This is used in |defaults.vim| to detect
putty terminal and set a dark background: >
au TermResponse *
\ if v:termresponse == "\e[>0;136;0c"
\ set bg=dark
\ endif
<
Note: that this event may be triggered halfway
executing another event, especially if file
I/O, a shell command or anything else that
takes time is involved.
*TermResponseAll*
TermResponseAll After the response to |t_RV|, |t_RC|, |t_RS|,
|t_RB|, |t_RF|, or |t_u7| are received from

View File

@ -1,4 +1,4 @@
*version9.txt* For Vim version 9.1. Last change: 2024 Oct 22
*version9.txt* For Vim version 9.1. Last change: 2024 Oct 27
VIM REFERENCE MANUAL by Bram Moolenaar
@ -41600,6 +41600,8 @@ Changed~
- |:keeppatterns| preserves the last substitute pattern when used with |:s|
- |setqflist()| and |setloclist()| can optionally try to preserve the current
selection in the quickfix list with the "u" action.
- the putty terminal is detected using an |TermResponse| autocommand in
|defaults.vim| and Vim switches to a dark background
*added-9.2*
Added ~

View File

@ -1701,6 +1701,8 @@ func Test_verbose_option()
CheckScreendump
let lines =<< trim [SCRIPT]
" clear the TermResponse autocommand from defaults.vim
au! vimStartup TermResponse
command DoSomething echo 'hello' |set ts=4 |let v = '123' |echo v
call feedkeys("\r", 't') " for the hit-enter prompt
set verbose=20