Квадратный кронштейн квадратной скобки A ^ [[A – Что это значит?

Извиняюсь, если это уже было задано, но я понятия не имею, как я могу это узнать сам – когда я ищу «^ [[А» в любой поисковой системе, он игнорирует «^ [[» часть вообще.

В любом случае, мой вопрос: иногда в терминале (на Mac), когда я нажимаю клавиши со стрелками, появляются символы «^ [[A», «^ [[B», «^ [[C» или «^ [[D» , Кажется, я помню, как встречался этот год назад при использовании (скорее всего) DOS, и я думаю, что это происходило намного чаще.

Почему это происходит и что они означают?

One Solution collect form web for “Квадратный кронштейн квадратной скобки A ^ [[A – Что это значит?”

Это escape-коды ANSI . ^[ Представляет символ ESC (escape), следующий [ является фактической левой квадратной скобкой, а буква указывает функцию escape-кода). Esc [ часть называется CSI (Control Sequence Introductioncer). Таким образом, последовательность CSI A означает стрелку вверх или CUU (CUrsor Up).

Во всяком случае, эта схема восходит ко времени вывода терминала VT100 (введена в 1978 году). Некоторые из управляющих последовательностей, используемые VT100, были стандартизованы ANSI в начале 1980-х годов и с тех пор оставались в общих чертах.

Обычно, когда вы нажимаете клавиши со стрелками, какая-то программа (скажем, оболочка) прослушивает и может действовать на них. Поэтому, когда вы нажимаете стрелку вверх, она прокручивается назад в вашей истории команд. Однако, если запущена программа, которая не понимает escape-последовательности для клавиш со стрелками, они обычно заканчивают тем, что возвращаются обратно на терминал, как и любой другой ключ, который вы могли бы нанести. Поэтому вы иногда видите ^[[A если вы нажимаете клавишу со стрелкой вверх.

  • Может ли groff создать файл ps с интерпретируемыми символами escape-кода ANSI?
  • Значение обратной косой черты
  • Вывод двойных кавычек для переменных в bash и qmake
  • Выход из режима «>» в ​​оболочке Unix
  • выделение текста в оболочке
  • Найдите комбинацию клавиш терминала OS X / escape-последовательность для Ctrl-
  • Другой вопрос об исключении строки Bash (с использованием эха)
  • Есть ли причина, по которой я получаю ^ [[A, когда я нажимаю стрелку на экране входа в консоль?
  • Что делает опция escape-последовательности xterm и как ее включить?
  • Вопрос о поведении контрольных клавиш
  • Как избежать метасимволов для egrep, как метакод из Perl?
  • Есть ли способ заблокировать название терминала?
  • Linux и Unix - лучшая ОС в мире.