2021年4月30日(金) 11:41 L A Walsh <b...@tlinx.org>: > On 2021/04/26 17:16, Chet Ramey wrote: > > Readline is tab-agnostic, or tab-stop-agnostic, in a sense. It > > performs tab > > expansion itself during redisplay, and currently uses a tab stop of 8. > > That's not user-settable. > --- > It doesn't always do it correctly because it doesn't always know > where it is in a line.
I think Readline always knows the current cursor position in terminals of any tabstops because it just never sends TABs to terminals. "It performs tab expansion itself" means that Readline internally converts TABs to an appropriate number of spaces using virtual tabstops of 8. In fact, I rearranged tabstops to 4n by the following command (in Mintty which supports CTC [CSI W] and HTS [ESC H]), but Readline continues to align characters with tabstops of 8n and there are no glitches. $ printf '\r\e[5W'; for a in {4..80..4}; do printf '\e[4C\eH'; done Maybe it is more friendly to reflect the current terminal settings of tabstops, but I wouldn't call it a bug that Readline doesn't emulate it. > That readline can't be used with a variable font or tabsize seems like > a limitation associated with only relating to computers through a fixed-size > window w/fixed-sized characters & fixed tabstops. I don't think curses/ncurses or any other terminal applications support the cursor movements taking account of variable character sizes of proportional fonts. Currently, there is no terminal protocol to retrieve/control the variable width of each character in the proportional fonts. It's not the specific problem of Readilne.