Может кто-нибудь объяснить эту последовательность клавиш?

Вопрос или проблема

Используя Fedora 27 (в виртуальной машине, хотя это и не имеет значения, но если кто-то хочет знать).

В терминале bash ввел символ ‘=’ и затем одновременно нажал ALT =, что дает список файлов так же, как если бы был введен ‘ls’, но также показывая скрытые конфигурационные файлы. Я проверил свой список алиасов, и очевидно, что ничто не соответствует этой комбинации клавиш. Какие-то предложения?

Чтобы было понятно, в терминале отображается один ‘=’ и затем я ввел ALT= сразу после этого.

Первоначальный = на самом деле не имеет значения, он нужен только потому, что дополнение не срабатывает на пустом приглашении.

Нажатие Alt+= отправит управляющую последовательность ^[=. Вы можете это выяснить, нажав Ctrl+v в терминале, а затем вашу комбинацию клавиш.

По умолчанию в bash, это привязано к функции Readline possible-completions:

$ bind -P | grep '='
possible-completions can be found on "\e=", "\e?".

possible-completions определяется в man 1 bash как:

possible-completions (M-?)

Список возможных дополнений текста перед курсором.

Возможно, это поведение вызвано функцией оболочки, конкретной настройкой Bash, вашим эмулятором терминала или вашей виртуальной машиной.

Вы можете проверить следующее:

1. Привязки клавиш Bash

В терминале выполните bind -P, чтобы узнать, связана ли эта комбинация клавиш с командой.

2. Проверка Алиасов и Функций оболочки

Проверьте, может ли функция или скрипт быть ответственными в фоновом режиме.

Вы можете поискать функции оболочки, связанные с ls, выполнив:

declare -F | grep ls

3. Настройки Эмулятора Терминала

Ваш эмулятор терминала, особенно в Fedora 27, может иметь предопределенные комбинации клавиш.

4. Также проверьте ваш inputrc или bashrc

cat ~/.inputrc

cat ~/.bashrc

Проверьте настройки вашего эмулятора терминала на предмет предопределенных сочетаний клавиш.

В некоторых оболочках или средах то, что происходит с определенными комбинациями клавиш, специфично.

В моем случае, когда я нажимаю =, а затем ALT+= или просто ALT+=, включается режим аргумента чисел.

Для меня это работает с =, за которым следует ALT+Shift+= с выводом ls, как вы описали.

Ответ или решение

Чтобы ответить на ваш вопрос о последовательности клавиш, которая связана с комбинацией клавиш ALT + = в терминале Bash на Fedora 27, давайте разберёмся детально с этим поведением.

Поведение комбинации клавиш

Когда вы вводите символ = в Bash, а затем одновременно нажимаете ALT + =, это вызывает определённый контрольный последовательность, известную как ^[= (где ^ указывает на клавишу ALT). Эта последовательность соответствует функции "possible-completions", что позволяет Bash выводить возможные варианты завершения команды на основании введённого текста.

Как это работает в Bash

  1. Функция возможных завершений:
    По умолчанию в Bash команда для завершения вывода вариантов (или возможных завершений) привязана к клавишам ALT + ? или ALT + =. Это можно проверить с помощью команды:

    bind -P | grep '='

    Вы должны увидеть строку, указывающую на то, что possible-completions связано с \e=. В документации Bash (см. man 1 bash) это описано следующим образом:

    possible-completions (M-?)
    List the possible completions of the text before point.

  2. Поведение вашего терминала:
    Действия терминала могут варьироваться в зависимости от конфигураций и настроек. Чтобы определить источники этого поведения, выполните следующие шаги:

    • Проверка привязок клавиш:
      Выполните команду bind -P, чтобы проверить, какая команда привязана к сочетаниям клавиш. Обратите внимание на возможные варианты, связанные с =.

    • Проверка алиасов и функций:
      Убедитесь, что данный результат не связан с функциями или алиасами. Запустите:

      declare -F | grep ls

      Это покажет, есть ли какие-либо функции, связанные с командой ls.

    • Настройки эмулятора терминала:
      Ваш терминал (например, GNOME Terminal или XTerm) может иметь свои собственные предустановленные сочетания клавиш. Проверьте документацию вашего терминала для получения дополнительной информации.

    • Проверка конфигурационных файлов:
      Убедитесь, что в файлах конфигурации Bash, таких как ~/.bashrc и ~/.inputrc, нет настроек, которые могли бы вызывать подобное поведение.

Дополнительные рекомендации

Если вы сталкиваетесь с странным поведением, связанным с клавиатурными сокращениями или поведением командной строки, попробуйте следующее:

  • Обновление системы: И хотя Fedora 27 — устаревшая версия, убедитесь, что у вас установлены все обновления.
  • Проверка на других машинах: Попробуйте воспроизвести ситуацию на других системах или версиях Linux.
  • Использование альтернативных терминалов: Разные эмуляторы терминала могут вести себя по-разному. Попробуйте альтернативные терминалы, такие как konsole или terminator.

Заключение

Исходя из вышеизложенного, сочетание клавиш ALT + = в вашем терминале связано с функционалом завершения команд, встроенным в Bash. Если у вас останутся вопросы или неполадки с данной функциональностью, не стесняйтесь задавать их для дальнейшего разбирательства.

Оцените материал
Добавить комментарий

Капча загружается...