[Çözüldü]konsolda python kod tamamlama sorunu

Başlatan erinbulut, 28 Aralık 2011 - 13:16:28

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

erinbulut

Daha önce Pardus'u kullanıyordum,
konsolde ve/ya yakuakede python kodlarını yazarken tab tuşu ile otomatik tamamlama özelliği vardı.
Aynı özellik Mandriva'da da var.

Sanırım Ubuntu'da da var ama nasıl ayarlanır bilmiyorum.

Saygılarımla.

heartsmagic

#1
Biraz bakındım da uçbirimde kullandığımız normal Python uçbirimi bunu desteklemiyor gibi. Destekleyecek bir ek paket de çarpmadı gözüme. Pardus bunu hangi paketle sağlıyor acaba? Mandriva üzerinde de KDE mi kullanıyorsun?
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

alquirel

Ben de şimdi baktım IDLE bunu yapabiliyor.


sudo apt-get install idle
idle


erinbulut

Sayın heartsmagic,
inanın hangi paketi kullandığını ben de bilmiyorum.
Evet, KDE'nin bir özelliği sanırım.
Not: Mandriva'yı aslında kulanmıyorum. Ama gözüme çarpmıştı.

Sayın alquirel,
idle zaten yüklü. Ama çok fazla kullandığım söylenemez. İşlerimi genellikle konsolde özellikle Yakuake ile yapmayı seviyorum.

Sanırım Ubuntu'yu iyice öğrenmem gerekecek.
Ayrıca, Vim'de de bu özellik vardı.

İlginiz için teşekkür ederim.

Saygılarımla...

if


heartsmagic

Metin düzenleyiciler veya IDE'ler için bu özellik kazandırılabilir. Benim merakım doğrudan kullanabildiğimiz Python uçbirimi içindi aslında. KDE'de olsa bile bu iş tek başına yapılmıyordur sanırım. Birisi KDE üzerinde doğrudan denerse durumu anlamış oluruz.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

erinbulut

Sayın if,
bu, sadece vim'e özgü bir özellik değil. Konsol'de bile python başlattığımda bu özellik vardı.
Örneğin
>>> degisken = [1,2,3]
dedikten sonra
de yazıp tab tuşuna basınca de**, deg** olasılıkları görünüyordu.
Bunun bir source dosyası mıdır, yoksa farklı bir özellik midir inanın bilmiyorum.

Sayın heartsmagic,
Tek başına bir özellik olsaydı dediğiniz gibi tümünde olurdu. Örneğin Slax Linux'ta da yok bu özellik.

Aklımdayken;
vim'de bir C kodu yazarken : diyelim ki "#i" den sonra tab tuşuna basınca otomatik olarak "#include<"" tamamlanıyor.

.bashrc ve .vimrc'ye baktım: "imap" gibi bir özellikle karşılaşmamıştım.

Saygılarımla....









ironic

Şöyle bir anlatım buldum.

gedit .pythonstartup

ile metin belgesi açıp aşağıdaki içeriği kaydediyoruz.


# pythonstartup
import os
import readline
import rlcompleter
import atexit
#Bind 'TAB' to complete
readline.parse_and_bind('tab:complete')
#Set history file – ~\.pythonhistory

histfile = os.path.join(os.environ['HOME'], '.pythonhistory')
#Attempt read of histfile
try:
readline.read_history_file(histfile)
except IOError:
pass
#Write history file at shell exit
atexit.register(readline.write_history_file, histfile)
#Cleanup
del os, histfile, readline, rlcompleter


Son olarak dosyayı çevresel değişken olarak bash kabuğuna bildiriyoruz.


export PYTHONSTARTUP=~/.pythonstartup

Eğer dosya işe yararsa yukarıdaki komutu .bashrc dosyasına işleyin.

Ayrıca bu dosyayla python kabuğundan girilen komutların geçmişini tutma da varmış.

http://blog.eznet.frih.net/?p=116

erinbulut

#8
Sayın ironic,

hatta bilgisayarı tekrar kapatıp açtım. Ama değişen bir şey olmadı.

inanın sizin ve diğer arkadaşların ilgisinden ben bile utanmaya başladım desem yerinde olur.

İlk fırsatta ben de ilgileneceğim bu konuyla.

Saygılarımla.

heartsmagic

Eğer işlemleri yaptıktan hemen sonra denemeden sistemi yeniden başlattıysan etkisi olmaz. Zira export ile yapılan atama sıfırlanır bir sonraki başlangıçta. Fakat, ondan öncesinde de çalışmadıysa bilemiyorum.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

erinbulut

Sayın heartsmagic,

"Eğer işlemleri yaptıktan hemen sonra denemeden sistemi yeniden başlattıysan etkisi olmaz" diye yazmışsınız ya.
Sinirlerim mi bozulmuş nedir, gülmeye başladım.
Sanki bir büyü tarifi.
"root olmadan önce kurutulmuş yarasa kanadını masaya koy, entere basmadan yılan kabuğu ve kertenkele kabuğu kokla...." , allahım insanın aklına neler geliyor....
Lütfen rica ediyorum alınmayınız, inanın dalga geçmiyorum.

Şaka bir yana: Sistemi anlıyorum sanırım. Vim'deki şu ünlü source çağrısı gibi bir durum.

Teşekkür ederim. En kısa zamanda sonucu bildireceğim.
Saygılarımla.

heartsmagic

@erinbulut, büyü ile ilgili yorumu neden yaptın bilmiyorum ancak alınmak gibi bir niyetim yok :) Bu tarafa yeni geçiyorsan bazı şeylere alışman zaman alacaktır ve ilk yaptığın işlemlerde çok yabancılık çekeceksin. Ben senelerdir kullanıyorum Linux'u, hâlâ ilk defa yaptığım işlemlerde bazen yabancılık çekebiliyorum. Bunun Linux ile de alakası yok aslında, her ortam için aynı şey geçerli.

Gelelim konumuza. Son yorumu yaptığımda ilk elden deneme imkânım yoktu, şu an oldu. Buraya yorum yapmaya geldiğinde muhtemelen yine işe yaramadığını söyleyeceksin :) @ironic, çözümü doğru bulmuş, muhtemelen diğer taraflarda kullanılan şey de buna benzer bir şey veya aynısıdır. Ancak, @ironic'in aktardığı kodlarda ufak tefek sıkıntılar var, asıl kaynakta da var bu sıkıntılar. Az biraz Python meşgalesi ile çözülüyor. Sıkıntı derken, utf8 mızmızlanması, bir iki ' karakterinin yanlış girilmiş olması (muhtemelen siteye yanlış geçmiştir kaynak sahibi) iki yerde de sekmenin atlanmış olması. Aşağıya çalışan şeklini geçiyorum:

# -*- coding: utf-8 -*-
# pythonstartup
import os
import readline
import rlcompleter
import atexit
#Bind 'TAB' to complete
readline.parse_and_bind('tab:complete')
#Set history file – ~\.pythonhistory

histfile = os.path.join(os.environ['HOME'], '.pythonhistory')
#Attempt read of histfile
try:
        readline.read_history_file(histfile)
except IOError:
        pass
#Write history file at shell exit
atexit.register(readline.write_history_file, histfile)
#Cleanup
del os, histfile, readline, rlcompleter


Bu çalışan şekli doğruladıktan sonra kalıcı olması için (bir önceki yorumumda gözümden kaçırmışım ancak yine @ironic söylemiş) export satırını bir yerlere eklemen gerekiyor.  Ev dizinindeki gizli .bashrc dosyana ekleyebilirsin:

gedit ~/.bashrc
Ardından en alt satıra:
export PYTHONSTARTUP=~/.pythonstartup

Bende kod tamamlama, değişken tamamlama çalıştı.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

erinbulut

Sayın heartsmagic,

size ve ironic'e çok teşekkür ediyorum.
Sonunda tab tuşu ila tamamlama yapabiliyorum.

Şimdi de apache ile bir sorunum var, ama sanırım yeni bir konu açmam gerekecek.

if

@erinbulut, yeni bir konu açmanız gerek onun için. Çözülen konuların ilk iletisinin başlığına çözüldü etiketi vurmak bizlere yardımcı olmaktadır. Bu sefer ben vurayım da gelecek sefere unutmazsanız memnun oluruz.