Отображение клавишей символов

Можно вычислить различие каждого соотношения сторон со ссылкой. Похож на ответ derobert, но более простой:

ref=4/3
identify -format "%[fx:abs(w/h - $ref)] %M\n" *.jpg | sort -n -k1
3
06.11.2013, 07:49
2 ответа

Для ссылки вот копия archive.org (мертвой) ссылки в вопросе OP. Коды, показанные там, являются кодами стиля шепелявости emacs. Я не знаю много о них. Конечно, существует больше чем один способ освежевать кошку, но что следует, является, вероятно, самым легким:

Во-первых, использовать showkey -a получить шестнадцатеричное представление для Вашей последовательности клавиатуры. Например, когда я нажимаю CtrlShift ~, я добираюсь:

^^       30 0036 0x1e

Так, мое шестнадцатеричное представление 0x1e. Я могу затем добавить строку к моему ~/.inputrc:

"\x1e": beginning-of-line

И в следующий раз я открываю оболочку удара (или любая программа, которая использует readline), введение CtrlShift ~ переместит мой курсор в начало строки. Можно также сделать что-то как:

"\x1b\x5a": "type this text whenever I press alt+shift+z"
4
27.01.2020, 21:17

Основная проблема, поставленная в вопросе OP, заключается в том, как обойти ограничение readline (и bash):

  • специальные клавиши, такие как функциональные клавиши и клавиши курсора, обычно отправляют управляющие последовательности,
  • управляющие последовательности могут (в зависимости от терминал и способ его инициализации) отличаться.
  • Одно из основных различий между описаниями терминала - это использование прикладного режима по сравнению с нормальным режимом .
  • в прикладном режиме a Клавиша курсора может отправить \ eOA (используя имя bash в качестве escape-символа), в то время как в обычном режиме она отправит \ e [A .
  • полноэкранные приложения (т.е. что поддерживает база данных терминала) обычно используют режим приложения; есть исключения, такие как описание терминала, предоставленное для консоли Linux, которые этого не делают.
  • Описание терминала использует режим приложения, ключи, определенные в описании терминала, не соответствуют значениям, отображаемым в оболочке (поскольку оболочка не включает соответствующую функцию smkx ).

readline sort-of обращает внимание на базу данных терминала (чтобы он мог перемещать курсор по строке, которую вы редактируете), но этого недостаточно, чтобы сделать что-нибудь полезное с информацией о режиме приложения по сравнению с обычным режимом в привязках клавиш. Для работы с readline вы должны предоставить жестко запрограммированные escape-последовательности, соответствующие каждому терминалу, который вы используете.Конечно, вы можете сопоставить несколько последовательностей с одной и той же функцией. К счастью, конфликтующие случаи использования одной и той же последовательности редки.

Для портативного поиска символов, отправленных специальной клавишей, используйте cat -v , т.е. введите эту команду и нажмите свои клавиши, чтобы увидеть результат. Он будет ^ [ для каждого escape-символа. Остальные символы можно использовать как есть.

Кстати, showkey специфичен для Linux и работает только в консоли .

Дополнительная литература:

1
27.01.2020, 21:17

Теги

Похожие вопросы