Python/editline на OS X: знак £, кажется, связан с ed-prev-word
В Mac OS X я не могу ввести знак фунта стерлингов (£) в интерактивную оболочку Python.
* Mac OS X 10.5.5
* Python 2.5.1 (r251:54863, Jan 17 2008, 19:35:17)
* European keyboard (£ is shift-3)
Когда я набираю shift-3 в интерактивной оболочке Python, мне кажется, что я вызываю предыдущую функцию слова, то есть курсор переместится в начало последнего "слова" (т. Е. Элемента, разделенного пробелом), набранного в строке. Когда я вернусь в оболочку bash, набрав shift-3, мы получим £, как и ожидалось.
Эта версия Python, по-видимому, использует editline для своей интерактивной оболочки, в отличие от readline. Я предполагаю, что одна из привязок клавиш строки редактирования по умолчанию связывает shift-3 (или любую строку редактирования, которую я вижу, когда я набираю shift-3) с командой ed-prev-word.
Я попытался несколько вещей в моем файле ~/.editrc, чтобы удалить эту привязку, и они не имеют никакого эффекта:
bind -r £
bind -r \243
bind -r \156
И еще один, который вызывает ошибку шины:
bind £ \243
Есть идеи?
1 ответ
Это может быть проблема редактирования строки; libedit может не принимать символы UTF-8: