Intereting Posts

Длина строки режима чтения в приглашении bash

Как найти длину строки режима readline (например, @ или (cmd) или (ins) ), которая печатается перед приглашением bash? Строка этого режима активируется set show-mode-in-prompt on в .inputrc .

Я хочу определить длину этой строки из $PROMPT_COMMAND .

Я пытаюсь сделать движение курсора с помощью tput внутри подсказки, чтобы напечатать некоторую информацию о правой стороне терминала (чтобы ее можно было перезаписать, если это необходимо), а затем возобновить печать приглашения слева, но мне нужно принять с учетом длины строки режима.

$PROMPT_COMMAND снова $PROMPT_COMMAND а приглашение переиздается, если изменить режим (например) emacs-mode-string в vi-ins-mode-string в качестве префикса?

Не совсем ответ на вопрос о длине строки режима, но обходной путь:

Я закончил использовать коды ANSI CSI, чтобы сохранить и восстановить положение курсора. (Спасибо @tripleee за указатель).

Я все еще не мог найти длину строки режима, даже когда привязывал, чтобы получить позицию курсора, используя PS1=$(getColumn) где getColumn – это разные вещи, которые я пробовал на основе:

Моя работа с использованием кодов ANSI CSI может быть найдена, как в ответе «Правая выравнивающая часть подсказки» .

Я очень доволен обходным процессом, так как мне удалось сделать это без единого shellcheck и сделать его shellcheck .