Problem: libvterm with modifyOtherKeys level 2 does not match xterm.
Solution: Adjust key code escape sequences to be the same as what xterm
sends in modifyOtherKeys level 2 mode. Check the value of
no_reduce_keys before using it.
Problem: :confirm does not work properly for a terminal buffer.
Solution: Handle :confirm for a terminal buffer differently. (Yee Cheng
Chin, closes#11312)
Problem: Focus change is not passed on to a terminal window.
Solution: If the current window is a terminal and focus events are enabled
send a focus event escape sequence to the terminal.
Problem: When renaming a terminal buffer the status text is not updated.
Solution: Clear the cached status text when renaming a terminal buffer.
(closes#9162)
Problem: Terminal window does not have transparent background when
'termguicolors' is used.
Solution: Fix the background color. (closes#2361, closes#9002)
Problem: Terminal colors are not updated when 'background' is set.
Solution: Call term_update_colors() for all terminals. (Marcin Szamotulski,
closes#8171, closes#8150)
Problem: Cannot put a terminal in a popup window.
Solution: Allow opening a terminal in a popup window. It will always have
keyboard focus until closed.
Problem: CTRL-W dot does not work in a terminal when modifyOtherKeys is
enabled.
Solution: Use the modifier when needed. Pass the modifier along with the
key to avoid mistakes.
Problem: Having job_status() free the job causes problems.
Solution: Do not actually free the job or terminal yet, put it in a list and
free it a bit later. Do not use a terminal after checking the job
status. (closes#3873)
Problem: Buffer of a terminal only updated in Terminal-Normal mode.
Solution: Copy the terminal window content to the buffer when in
Terminal-Job mode.
Problem: Terminal window is redrawn too often and scrolling is repeated.
Solution: Don't scroll immediately but only when redrawing. Avoid redrawing
the whole terminal window on every change.
Problem: Can't set ANSI colors of a terminal window.
Solution: Add term_setansicolors(), term_getansicolors() and
g:term_ansi_colors. (Andy Massimino, closes#2747)
Problem: Shell commands in the GUI use a dumb terminal.
Solution: Add the "!" flag to 'guioptions' to execute system commands in a
special terminal window. Only for Unix now.
Problem: Cannot select text in a terminal with the mouse.
Solution: When a job in a terminal is not consuming mouse events, use them
for modeless selection. Also stop Insert mode when clicking in a
terminal window.
Problem: Terminal windows in a session are not properly restored.
Solution: Add "terminal" in 'sessionoptions'. When possible restore the
command running in a terminal.
Problem: Terminal window colors wrong when using Terminal highlighting.
Solution: Set ansi_index when setting the default color. Also cache the
color index for Terminal. (Ozaki Kiichi, closes#2393)
Problem: term_start() does not take callbacks. When using two terminals
without a job only one is read from. A terminal without a window
returns the wrong pty.
Solution: Support "callback", "out_cb" and "err_cb". Fix terminal without a
window. Fix reading from multiple channels.
Problem: Sending buffer lines to terminal doesn't work on MS-Windows.
Solution: Send CTRL-D to mark the end of the text. (Yasuhiro Matsumoto,
closes#2043) Add the "eof_chars" option.
Problem: Can't use the alternate screen in a terminal window.
Solution: Initialze the alternate screen. (Yasuhiro Matsumoto, closes
#1957) Add term_getaltscreen().
Problem: Using mouse scroll while a terminal window has focus and the mouse
pointer is on another window does not work. Same for focus in a
non-terminal window ahd the mouse pointer is over a terminal
window.
Solution: Send the scroll action to the right window.
Problem: Cannot get the name of the pty of a job.
Solution: Add the "tty" entry to the job info. (Ozaki Kiichi, closes#1920)
Add the term_gettty() function.