# 14. Etkileşimli Girdi Düzenleme ve Geçmiş İkame

Python yorumlayıcısının bazı sürümleri, Korn kabuğunda ve GNU Bash kabuğunda bulunan tesislere benzer şekilde, mevcut girdi satırının ve geçmiş ikamesinin düzenlenmesini destekler. Bu, çeşitli düzenleme stillerini destekleyen GNU Readline kütüphanesi kullanılarak gerçekleştirilir. Bu kütüphanenin burada kopyalamayacağımız kendi belgeleri vardır.

## 14.1. Tab Tamamlama ve Geçmiş Düzenleme

Completion of variable and module names is automatically enabled at interpreter startup so that the `Tab` key invokes the completion function; it looks at Python statement names, the current local variables, and the available module names. For dotted expressions such as `string.a`, it will evaluate the expression up to the final `'.'` and then suggest completions from the attributes of the resulting object. Note that this may execute application-defined code if an object with a `__getattr__()` method is part of the expression. The default configuration also saves your history into a file named `.python_history` in your user directory. The history will be available again during the next interactive interpreter session.

## 14.2. Etkileşimli Yorumlayıcıya Alternatifler

Bu olanak, tercümanın önceki sürümleriyle karşılaştırıldığında ileriye doğru atılmış çok büyük bir adımdır; ancak, bazı eksiklikler var: Devam satırlarında uygun girinti önerilmiş olsaydı iyi olurdu (ayrıştırıcı, daha sonra bir girinti jetonunun gerekip gerekmediğini bilir).

Oldukça uzun bir süredir var olan alternatif geliştirilmiş etkileşimli yorumlayıcı, tab tamamlama, nesne keşfi ve gelişmiş geçmiş yönetimi özelliklerine sahip IPython ‘dur. Ayrıca, tamamen özelleştirilebilir ve diğer uygulamalara gömülebilir. Bir başka benzer geliştirilmiş etkileşimli ortam da bpython ‘dur.