- RE: как в bash сделать bind на клавишу , gp, 22:15 , 05-Сен-02 (1)
Не дождался я помощи, да и отвечаю себе сам:1. В ~/.bash_profile добавляем: INPUTRC=~/.initrc export INPUTRC 2. В ~/.inputrc добавляем: $include /etc/inputrc #чтобы читался system-wide inputrc "\e[A": history-search-backward "\e[B": history-search-forward PS: А правильного способа определения значений кодов клавиш я так и не нашёл. В итоге методом перебора делал следующее: >bind -p| grep forward-char (показывает все функции REDLINE и их привязки) "\C-f": forward-char "\eOC": forward-char "\e[C": forward-char Т.е. варианта три - либо "стрелка влево" это "\eOC", или "\e[C", или два кода сразу. Перебор сказал что "\e[C". Т.о. стрелки курсора в стиле emacs - это: \e[А - "вверх" \e[B - "вниз" \e[C - "влево" \e[D - "вправо" PPS: Странно но у меня не получилось сделать bind на текущий bash (bind "\e[A": history-search-backward не только приводит к необъяснимым последствиям типа пропадания символов "b" и "c", но и не выполняет привязку вообще...)
- RE: как в bash сделать bind на клавишу , gp, 19:54 , 26-Сен-02 (2)
В общем, я разобрался в проблеме ещё немного... 1. INPUTRC необходимо определять, если только требуется ипользовать файл не ~/.inputrc, а другой. ~/.inputrc используется по-умолчанию без всяких переменных. 2. И САМОЕ ВАЖНОЕ, то из-за чего у меня были глюки - файлы инициализации READLINE не понимают НИЧЕГО кроме комментариев, пустых строк,$-условных операторов и определения переменных, всё остальное они воспринимают как определения привязок клавиш! А я в них кучу команд засунул, которые READLINЕ и принял за привязки клавиш. 3. Есть такая штука: `cat -v` - можно нажимать на спец. клавиши и видеть их escape-последовательности!
|