Bash: проблема привязки клавиш/прерывания

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

Если Вы не заботитесь и хотите быстро преобразовать, существуют программы как fromdos/todos и dos2unix/unix2dos это делает это для Вас. Можно использовать find: find . -type f -name '*.php' -exec dos2unix '{}' +.

4
04.08.2011, 01:46
2 ответа

Вставьте это Ваш ~/.inputrc::

"\M-l":    "ls -ltrF\r"
0
27.01.2020, 21:02

Я могу воспроизвести это с намного меньшим примером. Я попробовал в ударе 4.1 от Debian, сжимают и удар 4.2.8 (9) скомпилированный из источника.

% bash --norc
bash-4.1$ echo $BASH_VERSION
4.1.5(1)-release
bash-4.1$ bind -x '"\037":echo foo;'
bash-4.1$ trap '$()' DEBUG
foo
bash-4.1$ echo bar
bash: bar: command not found

bash-4.1$

Я нажал Ctrl +_ (\037) сразу после trap команда возвращается. Команда в прерывании $() пустая команда, производящая пустой вывод, таким образом нет. Замена команды, кажется, преступник, поскольку ничего неожиданного не происходит, если я заменяю его : или пространством.

Я не вижу, как объяснить различие в поведении между $() и пространство, таким образом, это похоже на ошибку. Поверхностный поиск в списке удара ошибки ничего не поднял.

1
27.01.2020, 21:02

Теги

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