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

G

gjohannes

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.

- Tab does not longer indent selected text, but replaces it with a tab
character instead.

- Shift->Tab does nothing.

- F5 for Run module does nothing

and so on.


What could be wrong here, and do you have any other suggestions for a
"dedent" key binding that may work on a non-us/swedish keyboard (or
maybe an alternative editor for python code).

Thanks.
 
F

Franz Steinhaeusler

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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,982
Messages
2,570,185
Members
46,736
Latest member
AdolphBig6

Latest Threads

Top