# 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

Değişken ve modül adlarının tamamlanması, yorumlayıcı başlangıcında otomatik olarak etkinleştirilir, böylece `Tab` tuşu tamamlama işlevini çağırır; Python deyim adlarına, mevcut yerel değişkenlere ve kullanılabilir modül adlarına bakar. `string.a` gibi noktalı ifadeler için, ifadeyi `'.'` sonuna kadar değerlendirecek ve ardından ortaya çıkan nesnenin niteliklerinden tamamlamalar önerecektir. `__getattr__()` yöntemine sahip bir nesne ifadenin bir parçasıysa bunun uygulama tanımlı kodu çalıştırabileceğini unutmayın. Varsayılan yapılandırma aynı zamanda geçmişinizi kullanıcı dizininizdeki `.python_history` adlı bir dosyaya da kaydeder. Geçmiş, bir sonraki interaktif tercüman oturumu sırasında tekrar kullanılabilir olacaktır.

## 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.