lesskey :добавить привязку клавиш alt+right к less

ИМХО это было бы проще в awk или perl, по изложенным здесь причинам:grep с логическими операторами (, в частности, что в grep )нет естественного ANDоператора. Например

awk 'gsub(/[a-z]/,"&") == 5 && gsub(/[0-9]/,"&") == 5' file

или

perl -ne 'print if tr/[a-z]// == 5 && tr/[0-9]// == 5' file

напечатает строки, содержащие ровно 5 символов каждого из наборов символов.


Если вы настаиваете на grep, может сработать что-то вроде этого:

grep -xE '([^a-z]*[a-z][^a-z]*){5}' file | grep -xE '([^0-9]*[0-9][^0-9]*){5}'

1
06.10.2021, 12:01
1 ответ

В руководстве указано:

You may define your own less commands by creating a lesskey source file [...]

If the environment variable LESSKEYIN is set, less uses that as the name of the lesskey source file. Otherwise, less looks in a standard place for the lesskey source file: On Unix systems, less looks for a lesskey file called "$XDG_CONFIG_HOME/lesskey" or "$HOME/.lesskey". [...]

Previous versions of less (before v582) used lesskey files with a binary format, produced by the lesskey program. It is no longer necessary to use the lesskey program.

И определение переменнойLESSKEY:

LESSKEY
Name of the default lesskey binary file. (Not used if "$LESSKEYIN" exists.)

Насколько я понимаю, вам не нужно определять переменную LESSKEY, так как ваша версия старше 582. Достаточно просто иметь текстовый файл ~/.lesskey. (Примечание: переменные окружения должны быть определеныexport VARIABLE=value).


Теперь мне удалось заставить его работать Alt + Стрелка вправо с этой конфигурацией в~/.lesskey(после использования команды lesskey, но вам не нужно это):

#command
^[[ forw-scroll

...но это также работает и с другими клавишами со стрелками.


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

Допустим, вы выбрали символ m, так как ^[\krне работает. Сначала найдите восьмеричное значение с помощью команды:

$ echo m | od -b | head -n1 | cut -d' ' -f2
155

Затем в вашем.lesskey:

#command
^[\155 forw-scroll

Теперь, когда вы нажмете Alt + m , вы получите желаемый результат.


Это не проверено для lessверсии 590, так как у меня 551.

1
07.10.2021, 12:42

Теги

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