IDLE dedent/unindent key bindings for non-us keybord?

Franz Steinhaeusler franz.steinhaeusler at gmx.at
Wed Oct 5 04:50:00 EDT 2005


On 2 Oct 2005 08:52:53 -0700, gjohannes at gmail.com wrote:

>Hi.
>
>I use Idle 1.1.1 on Python 2.4.1.
>
>The "Ctrl-[" and "Ctrl-]" key bindings for indenting do not work on
>non-us keyboards where brackets are accessed by the "Alt Gr" key.
>
>The Tab key seem to work for indenting a selected textblock on my
>swedish keyboard, but Shift-tab does not dedent as you would have
>expected.
>
>If I try to redefine key bindings in "options->Configure IDLE->Keys" so
>that Shift-Tab is bound to dedent, things seem to get really weird.
>
>After creating a "Custom key set"
>- the "Ok"-button does not close the options window, I have to use
>"Cancel" to get out.
>

I'v seen this also:
this must be a bug.


Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Python24\lib\lib-tk\Tkinter.py", line 1345, in __call__
    return self.func(*args)
  File "C:\Python24\lib\idlelib\configDialog.py", line 1197, in Apply
    self.ActivateConfigChanges()
  File "C:\Python24\lib\idlelib\configDialog.py", line 1185, in
ActivateConfigCh
anges
    instance.ResetKeybindings()
  File "C:\Python24\lib\idlelib\EditorWindow.py", line 585, in
ResetKeybindings
    self.apply_bindings()
  File "C:\Python24\lib\idlelib\EditorWindow.py", line 837, in
apply_bindings
    text.event_add(event, *keylist)
  File "C:\Python24\lib\lib-tk\Tkinter.py", line 1299, in event_add
    self.tk.call(args)
TclError: bad event type or keysym "tab"
Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Python24\lib\lib-tk\Tkinter.py", line 1345, in __call__
    return self.func(*args)
  File "C:\Python24\lib\idlelib\configDialog.py", line 1192, in Ok
    self.Apply()
  File "C:\Python24\lib\idlelib\configDialog.py", line 1197, in Apply
    self.ActivateConfigChanges()
  File "C:\Python24\lib\idlelib\configDialog.py", line 1185, in
ActivateConfigCh
anges
    instance.ResetKeybindings()
  File "C:\Python24\lib\idlelib\EditorWindow.py", line 585, in
ResetKeybindings
    self.apply_bindings()
  File "C:\Python24\lib\idlelib\EditorWindow.py", line 837, in
apply_bindings
    text.event_add(event, *keylist)
  File "C:\Python24\lib\lib-tk\Tkinter.py", line 1299, in event_add
    self.tk.call(args)
TclError: bad event type or keysym "tab"


next time, I start:

C:\Python24\Lib\idlelib>idle.py
error reading package index file C:/Python24/tcl/tix8.1/pkgIndex.tcl:
invalid co
mmand name "lt}]}"
Traceback (most recent call last):
  File "C:\Python24\Lib\idlelib\idle.py", line 21, in ?
    idlelib.PyShell.main()
  File "C:\Python24\lib\idlelib\PyShell.py", line 1355, in main
    if not flist.open_shell():
  File "C:\Python24\lib\idlelib\PyShell.py", line 275, in open_shell
    self.pyshell = PyShell(self)
  File "C:\Python24\lib\idlelib\PyShell.py", line 793, in __init__
    OutputWindow.__init__(self, flist, None, None)
  File "C:\Python24\lib\idlelib\OutputWindow.py", line 16, in __init__
    EditorWindow.__init__(self, *args)
  File "C:\Python24\lib\idlelib\EditorWindow.py", line 108, in __init__
    self.apply_bindings()
  File "C:\Python24\lib\idlelib\EditorWindow.py", line 837, in
apply_bindings
    text.event_add(event, *keylist)
  File "C:\Python24\lib\lib-tk\Tkinter.py", line 1299, in event_add
    self.tk.call(args)
_tkinter.TclError: bad event type or keysym "tab"

(On Windows)
I discovered, looking in C:\.idlerc\config-keys.cfg

there was the entry
dedent-region = <Shift-Key-tab>

with an editor you can change it to uppercase:

dedent-region = <Shift-Key-Tab>

then it works again.

HTH


-- 
Franz Steinhaeusler



More information about the Python-list mailing list