Is there a way to configure IDLE to use spaces instead of tabs for indenting?

A

Alex

I'm new to Python and have been using IDLE 3.2.3 to experiment with
code as I learn. Despite being configured to use a 4 space indentation
width, sometimes IDLE's "smart" indentation insists upon using width-8
tabs.

From what I've been able to find on Google, this is due to a
shortcoming in Tk. While it's not that big a deal in the grand scheme
of things, I think it looks like poop, and I'd like to change IDLE to
use 4-space indentation instead of tabs for all indentation levels.

Is there any way for me to achieve what I want in IDLE, or do I have to
start up my full-blown IDE if I want consistent 4-space indentation?

Alex
 
T

Terry Reedy

I'm new to Python and have been using IDLE 3.2.3 to experiment with
code as I learn. Despite being configured to use a 4 space indentation

That applies to the editor and works in the editor for me and others. A
tab becomes 4 space characters, and a backspace in the appropriate place
deletes 4 space characters.
width, sometimes IDLE's "smart" indentation insists upon using width-8
tabs.

Only for the simulated interpreter. There is a tracker issue about
changing that but no consensus.
 
A

Alex

Terry said:
Despite being configured to use a 4 space
indentation ....
sometimes IDLE's "smart" indentation insists upon using
width-8 tabs.

[The 4-space indentation setting] applies to the editor and works in
the editor for me and others.

[The width-8 tabs are inserted] Only for the simulated interpreter.
There is a tracker issue about changing that but no consensus.

Yes, it works in the editor. I was referring to the simulated
interpreter. I guess I didn't make that clear.

In my search for a solution, I did see some of the traffic regarding
the tracker issue, but the posts were all several years old and I was
hoping maybe there was a fix by now. I guess not. Maybe in Python 4, eh?

Thanks.

Alex
 
M

Mark Lawrence

Terry said:
Despite being configured to use a 4 space
indentation ...
sometimes IDLE's "smart" indentation insists upon using
width-8 tabs.

[The 4-space indentation setting] applies to the editor and works in
the editor for me and others.

[The width-8 tabs are inserted] Only for the simulated interpreter.
There is a tracker issue about changing that but no consensus.

Yes, it works in the editor. I was referring to the simulated
interpreter. I guess I didn't make that clear.

In my search for a solution, I did see some of the traffic regarding
the tracker issue, but the posts were all several years old and I was
hoping maybe there was a fix by now. I guess not. Maybe in Python 4, eh?

Thanks.

Alex

For the record issue 7676, yes?
 
A

Alex

Mark said:
Terry said:
On 8/24/2012 6:33 PM, Alex wrote:
Despite being configured to use a 4 space
indentation ...
sometimes IDLE's "smart" indentation insists upon using
width-8 tabs.

[The 4-space indentation setting] applies to the editor and works
in the editor for me and others.

[The width-8 tabs are inserted] Only for the simulated
interpreter. There is a tracker issue about changing that but no
consensus.

Yes, it works in the editor. I was referring to the simulated
interpreter. I guess I didn't make that clear.

In my search for a solution, I did see some of the traffic regarding
the tracker issue, but the posts were all several years old and I
was hoping maybe there was a fix by now. I guess not. Maybe in
Python 4, eh?

Thanks.

Alex

For the record issue 7676, yes?

Yes, that appears to be the issue I was talking about and is, in fact,
one of the threads I had looked at before posting here. Of course, I
didn't pay enough attention to the dates. I see the most recent posting
on the issue appears to have been made in January of this year, so I
should have realized it's an ongoing issue.
 
T

Terry Reedy

Yes, that appears to be the issue I was talking about and is, in fact,
one of the threads I had looked at before posting here. Of course, I
didn't pay enough attention to the dates. I see the most recent posting
on the issue appears to have been made in January of this year, so I
should have realized it's an ongoing issue.

There have also been a few posts this year on the idle-sig mail list.

There are only a few people working on IDLE and we have concentrated
this calendar year on fixing crashers, not semi-aesthetic issues.
 
R

Ramchandra Apte

I'm new to Python and have been using IDLE 3.2.3 to experiment with

code as I learn. Despite being configured to use a 4 space indentation

width, sometimes IDLE's "smart" indentation insists upon using width-8

tabs.



From what I've been able to find on Google, this is due to a

shortcoming in Tk. While it's not that big a deal in the grand scheme

of things, I think it looks like poop, and I'd like to change IDLE to

use 4-space indentation instead of tabs for all indentation levels.



Is there any way for me to achieve what I want in IDLE, or do I have to

start up my full-blown IDE if I want consistent 4-space indentation?



Alex

I think an IDE is better than IDLE. Try NINJA IDE. http://ninja-ide.org
 
A

Alex

Ramchandra said:
I think an IDE is better than IDLE. Try NINJA IDE.
http://ninja-ide.org

Agreed. I like PyDev in Eclipse, but sometimes I just want to try out
something quick in the interpreter, to ensure I understand it or do a
quick experiment. Since indentation is syntactically significant in
Python, I think fixing the interpreter to produce good, readable,
cut-and-pasteable, and Pythonic code is more important than a cosmetic
feature, but less important than true bugs.
 
R

Ramchandra Apte

Ramchandra Apte wrote:







Agreed. I like PyDev in Eclipse, but sometimes I just want to try out

something quick in the interpreter, to ensure I understand it or do a

quick experiment. Since indentation is syntactically significant in

Python, I think fixing the interpreter to produce good, readable,

cut-and-pasteable, and Pythonic code is more important than a cosmetic

feature, but less important than true bugs.

Agree.
 
T

Terry Reedy

[snip]

Agreed. I like PyDev in Eclipse, but sometimes I just want to try out
something quick in the interpreter, to ensure I understand it or do a
quick experiment.

You have two choices that come with the distribution: the console and
IDLE. I prefer IDLE. IPython and other shells and IDEs are other choices.
Since indentation is syntactically significant in
Python, I think fixing the interpreter to produce good, readable,
cut-and-pasteable, and Pythonic code is more important than a cosmetic
feature, but less important than true bugs.

IDLE is not the interpreter. As I said before, the IDLE editor *already*
does what you want. The IDLE Shell is intended mainly for single-line
inputs. For compound statements, it does automatic indenting, unlike the
console (at least not on Windows). It uses a tab to guarantee that the
code is visually indented. It does not use secondary prompts because a)
they would not line up anyway with proportional fonts and b) they would
appear in cut and paste copies. This probably count be improved, and has
been discussed, but someone has to volunteer to write a patch that shows
that it can be improved without introducing negative consequences. I
would test one if one appears.

For more than a three-line compound statement, I use the editor with a
scratchpad file where editing is *much* easier. If the compound
statement is a class or function definition, you need more statements
anyway to actually exercise the definition. Hitting F5 to run is as easy
as putting the cursor at the end of the statement and hitting Enter. And
it runs multiple statements at once, not just one.
 
A

Alex

Terry Reedy wrote:

[snip]
IDLE is not the interpreter.

Fine, I meant shell. Thanks for fixing that for me.
The IDLE Shell is intended mainly for single-line inputs.

Maybe it should be limited to that, then. That way stoopid noobs like
me don't use it wrong and then use the wrong nomenclature to complain
about it.
For more than a three-line compound statement, I use the editor with
a scratchpad file where editing is much easier.

Great tip, thanks. That's how I'll do it from now on.
 
F

Fabio Zadrozny

Agreed. I like PyDev in Eclipse, but sometimes I just want to try out
something quick in the interpreter, to ensure I understand it or do a
quick experiment. Since indentation is syntactically significant in
Python, I think fixing the interpreter to produce good, readable,
cut-and-pasteable, and Pythonic code is more important than a cosmetic
feature, but less important than true bugs.
--


Actually, if you're in PyDev/Eclipse already, you can just use the
interactive shell that PyDev provides:
http://pydev.org/manual_adv_interactive_console.html

Cheers,

Fabio
 

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

Forum statistics

Threads
473,982
Messages
2,570,190
Members
46,736
Latest member
zacharyharris

Latest Threads

Top