পাইথন ইন্টারপ্রেটার শেলটিতে শেষ কমান্ডটি পুনরাবৃত্তি করবেন কীভাবে?


134

কিভাবে আমি শেষ আদেশটি পুনরাবৃত্তি করব? সাধারণ কীগুলি: আপ, Ctrl + আপ, আল্ট-পি কাজ করে না। তারা নির্বোধ চরিত্র উত্পাদন।

(ve)[kakarukeys@localhost ve]$ python
Python 2.6.6 (r266:84292, Nov 15 2010, 21:48:32) 
[GCC 4.4.4 20100630 (Red Hat 4.4.4-10)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> print "hello world"
hello world
>>> ^[[A
  File "<stdin>", line 1
    ^
SyntaxError: invalid syntax
>>> ^[[1;5A
  File "<stdin>", line 1
    [1;5A
    ^
SyntaxError: invalid syntax
>>> ^[p
  File "<stdin>", line 1
    p
    ^
SyntaxError: invalid syntax
>>> 

আপ তীর আমার (উবুন্টু) জন্য সঠিকভাবে কাজ করে, এটি অদ্ভুত।
ভিনসেন্ট সাভার্ড

3
তবে, উইন্ডোতে আমার জন্য তীর কাজ করে। আপনি কোন শেল ব্যবহার করছেন এবং কোন ওএসে টার্মিনাল প্রোগ্রাম রয়েছে?
fmark

আমি ফেডোরা ১৩-তে পৃথক পাইথন ২.6..6 ইনস্টলেশন ইনস্টল করেছি,
জেনোম

5
কেবল একটি এফওয়াইআই, সেই "অযৌক্তিক" চরিত্রগুলি "এস্কেপ সিকোয়েন্সস" যা ডিসি এবং অন্যরা সেই দিনগুলিতে ফিরে এসেছিল যখন ফোন লাইনের মাধ্যমে টার্মিনালগুলির মাধ্যমে মেইনফ্রেম কম্পিউটারগুলি অ্যাক্সেস করা হত। ^ [ইসএসসি (পলায়ন), ^ [[পলায়ন- [বা সিএসআই (নিয়ন্ত্রণ সিকোয়েন্স ইনিশিয়েটর, আইআইআরসি)) এবং সিএসআই-এ হ'ল "আপ" এর ক্রম। এবং যখন আপনি নীচের উত্তরটি ব্যবহার করে এনক্রাশগুলি সক্ষম করবেন, তখন এই সিকোয়েন্সগুলি প্রদর্শন করার পরিবর্তে ব্যাখ্যা করা হবে।
jcomeau_ictx

4
উত্স থেকে পাইথনের একটি সংস্করণ ইনস্টল করার কারণে আমার এই সমস্যা হয়েছিল (পাইথন 3.4)। নীচের কয়েকটি মন্তব্য আইপিথন ইনস্টল করার পরামর্শ দেয় এবং আমি উল্লেখ করতে চাই যে আইপাইথনের সাথেও আমার একই আচরণ রয়েছে। উবুন্টু 12.04 সার্ভারের জন্য, আমি ইনস্টল করার ছিল libncurses-dev libreadline-devএবং তারপর configure-make-installপাইথন এবং এটি যে পরে কাজ করেন। উত্তর হিসাবে যুক্ত হয়েছে ...
এরেওক

উত্তর:


60

পাইথন শেলটিতে ইতিহাস সক্ষম করতে আমি নিম্নলিখিতটি ব্যবহার করি।

এটি আমার .pythonstartup ফাইল। পাইথনস্টার্টআপ পরিবেশের ভেরিয়েবলটি এই ফাইলের পথে সেট করা আছে।

# python startup file 
import readline 
import rlcompleter 
import atexit 
import os 
# tab completion 
readline.parse_and_bind('tab: complete') 
# history file 
histfile = os.path.join(os.environ['HOME'], '.pythonhistory') 
try: 
    readline.read_history_file(histfile) 
except IOError: 
    pass 
atexit.register(readline.write_history_file, histfile) 
del os, histfile, readline, rlcompleter

এটি সক্ষম করতে আপনার কাছে মডিউলগুলির পাঠ্যলাইন, rlcompleter থাকা দরকার।

: এই উপর তথ্য পরীক্ষা করে দেখুন http://docs.python.org/using/cmdline.html#envvar-PYTHONSTARTUP

মডিউলগুলি প্রয়োজনীয়:

  1. http://docs.python.org/library/readline.html
  2. http://docs.python.org/library/rlcompleter.html

@ user496852: কেবল উপরের কোডযুক্ত ফাইলপথটিতে এনভির ভেরিয়েবল PYTHONSTARTUP সেট করুন। এছাড়াও আপনার প্রয়োজনীয় মডিউল আছে কিনা তা পরীক্ষা করে দেখুন।
পাইফুঙ্ক

6
এটি প্রয়োজনীয় নয়, কেবল বসাকের উত্তরের নির্দেশ অনুসরণ করুন এবং কী বাইন্ডিংগুলি নির্ধারণ করুন
টিমোফাই

1
একটি ওভারকিল শুধু Alt + পি করুন
ব্যবহারকারী 32882

164

আইডিএল-তে বিকল্পগুলি -> আইডিএল কনফিগার করুন -> কীগুলিতে যান এবং সেখানে কীগুলি পরিবর্তন করতে ইতিহাস-পরবর্তী এবং তারপরে ইতিহাস-পূর্ববর্তী নির্বাচন করুন।

তারপরে নির্বাচনের জন্য নতুন কীগুলি ক্লিক করুন এবং আপনি যে কী কী সংমিশ্রণটি চান তা চয়ন করতে প্রস্তুত।


4
অনুসন্ধানকারীদের জন্য এটি লিনাক্স মিন্ট 17 দারুচিনিতেও কাজ করে।
ব্যবহারকারী 1063287

4
উইন্ডোজ 10, অজগর 3.6.1 এর জন্যও কাজ করে। অনেক অনেক ধন্যবাদ, এটি পরিষ্কার এবং পরিষ্কার, esp। নতুন শিখার জন্য দরকারী।
jyao

1
সর্বাধিক উপযুক্ত উত্তর। সঠিক হিসাবে চয়ন করা উচিত ছিল।
ডেভিডসন লিমা

পাইথন ২.7 এর জন্য
আইডিএল

আমি সেটিংস / পছন্দগুলি (পাইথন 2.7, ম্যাক জন্য নিষ্ক্রিয়) যেতে প্রয়োজন এবং আমি সেখানে পাওয়া ইতিহাস-পরবর্তী, ধন্যবাদ এত ভাল হয় :)
DaniPaniz

48

হিস্ট্রয় থেকে পূর্ববর্তী কমান্ডের জন্য Alt + p, ইতিহাস থেকে পরবর্তী কমান্ডের জন্য Alt + n।

এটি ডিফল্ট কনফিগার, এবং আপনি বিকল্পগুলি -> আইডিএল কনফিগার করুন থেকে আপনার পছন্দগুলিতে এই কী শর্টকাটটি পরিবর্তন করতে পারেন।


2
একে ইতিহাস-পরের / ইতিহাস-পূর্ব বলা হয়
ড্যানিপানিজ

17

আপনি কোন পরিবেশ নির্দিষ্ট করেন নি। ধরে নিচ্ছি আপনি আইডিএল ব্যবহার করছেন।

আইডিএল ডকুমেন্টেশন থেকে: কমান্ডের ইতিহাস:

Alt-p retrieves previous command matching what you have typed.
Alt-n retrieves next.
      (These are Control-p, Control-n on the Mac)
Return while cursor is on a previous command retrieves that command.
Expand word is also useful to reduce typing.


1
আইডিএল-তে এটিই আমি সমাধান খুঁজছি। আপ তীর বাশ শেল থেকে শুরু করা পাইথন দোভাষীকে নিয়ে কাজ করেছিল।
জন দো

8

ALT + p উইন্ডোজের এনটহুট পাইথনে আমার জন্য কাজ করে।


7

Ctrl + p হ'ল উপরের তীরটির স্বাভাবিক বিকল্প। আপনার পাইথন বিল্ডে আপনি gnu রিডলাইন সক্ষম করেছেন তা নিশ্চিত করুন।


1
আমি জিজ্ঞাসা করি যে আমি মুদ্রণ করতে চাই
ashleedawg

7

উবুন্টু সার্ভার 12.04-এ উত্স থেকে পাইথনের একটি সংস্করণ ইনস্টল করার পরে আমার এই সমস্যা হয়েছিল (পাইথন 3.4)।

এখানে কিছু মন্তব্য আইপাইথন ইনস্টল করার পরামর্শ দেয় এবং আমি উল্লেখ করতে চাই যে আইপাইথনের সাথেও আমার একই আচরণ রয়েছে। আমি যা বলতে পারি তা থেকে এটি একটি পঠনের সমস্যা।

উবুন্টু 12.04 সার্ভারের জন্য, আমি ইনস্টল করার ছিল libncurses-devএবং libreadline-devএবং তারপর আপ-ইতিহাস (readline) আচরণের জন্য উৎস থেকে পাইথন ইনস্টল সক্রিয় করা। আমি বেশ অনেক কিছুই করেছি:

sudo apt-get install libncurses-dev libreadline-dev

এর পরে, আমি পূর্বে ইনস্টল করা পাইথন (সিস্টেম থেকে পাইথন নয়, আমি উত্স থেকে ইনস্টল করেছিলাম!) মুছে ফেলেছি এবং উত্স থেকে পুনরায় ইনস্টল করেছি এবং প্রত্যাশার মতো সবকিছুই কাজ করে।

পাইপ বা সম্পাদনা .পিথস্টান্টআপে আমাকে কিছু ইনস্টল করতে হবে না।


2
এমন যে কেউ এই সমস্যার encounters জন্য, আমি 14.04 আছি এবং এখনও এই সমাধান ব্যবহার করার জন্য এই সমস্যা থেকে যাচ্ছে ঠিক করতে পেরেছিলেন 3.4.0করতে 3.4.2
সিটিজদেব

2
sudo pip install readlineএটি কাজ করার জন্য আমার এটি করার পরেও দরকার ছিল (অজগর ২.7.১১)
রব ওয়াটস

1
এটি আমার পক্ষেও 64-বিট উবুন্টু 16 তে কাজ করেছিল। ইতিমধ্যে অ্যাপটি ইনস্টলড 64৪-বিট পাইথনস ছাড়াও আমার কাছে 32-বিট পাইথন ৩.৩.২ রয়েছে, উত্স থেকে সংকলিত এবং ইনস্টল করা আছে। ঠিক কি sudo apt-get install libncurses-dev libncurses-dev:i386 libreadline-dev libreadline-dev:i386এবং উৎস নির্মিত পাইথন পুনরায়।
অ্যালেক্স চে

7

পূর্ববর্তী কমান্ডের জন্য ডিফল্টরূপে ALT + p ব্যবহার করুন, আপনি IDLE GUi এর পরিবর্তে আপ-অ্যারোতে পরিবর্তন করতে পারেন >> বিকল্পগুলি >> আইডিএল কনফিগার করুন >> কী >> কাস্টম কী বাইন্ডিং এটি কাস্টম স্ক্রিপ্ট চালানো প্রয়োজনীয় নয়, পাশাপাশি পাঠ্যলাইন মডিউলটিও না উইন্ডোজ চালান। আশা করি যে সাহায্য। :)


3

CentOS এ, আমি এটি ঠিক করে নিই

yum install readline-devel

এবং তারপরে অজগরটি পুনরায় কম্পাইল করুন ৩.৪।

ওপেনসুসে, আমি এটিকে ঠিক করে দিই

pip3 install readline

এই উত্তরের উল্লেখ করে: https://stackoverflow.com/a/26356378/2817654 । সম্ভবত "পাইপ 3 ইনস্টল রিডলাইন" একটি সাধারণ সমাধান। আমার সেন্টোজে চেষ্টা করা হয়নি।


3

আমার ম্যাক ওএস পাইথন 3 এ আপনি ব্যবহার করতে পারেন: কন্ট্রোল + পি প্রারম্ভিক কমান্ড কনট্রোল + n পরবর্তী কমান্ড


3

আমি নীচে অনুলিপি করেছি এমন প্রশ্নের সন্ধান করুন প্রশ্নের উত্তর দিন

নিজেকে আইডিএল-এর সাথে মানিয়ে নিন: পূর্ববর্তী কমান্ডটি ফিরিয়ে আনতে উপরের তীরটিকে আঘাত করার পরিবর্তে, আপনি যদি পূর্ববর্তী কমান্ডটি পুনরাবৃত্তি করতে চান এবং আপনার "প্রবেশ" টিপুন তবে সেই কমান্ডটি বর্তমান কমান্ড প্রম্পটে পুনরাবৃত্তি হবে। আবার এন্টার টিপুন, এবং কমান্ডটি কার্যকর হবে।

আইডিএলকে আপনার সাথে নিজেকে মানিয়ে নিতে বাধ্য করুন: আপনি যদি আইডিএলই কমান্ড প্রম্পট উইন্ডোতে তীর কীগুলি প্রতিটি অন্যান্য কমান্ড প্রম্পটের মতো করে কাজ করার জন্য জোর করেন, আপনি এটি করতে পারেন। "বিকল্পগুলি" মেনুতে যান, "আইডিএল কনফিগার করুন" এবং তারপরে "কীগুলি" নির্বাচন করুন। "পূর্ববর্তী কমান্ড" এবং "পরবর্তী কমান্ড" ক্রিয়াগুলির সাথে সম্পর্কিত কীটি যথাক্রমে উপরের তীর এবং নীচে তীর হিসাবে পরিবর্তন করা।

উৎস


2
alt+p  
go into options tab
configure idle
Keys

নীচে তাকান history-previousকমান্ড, আপনি কিছু আপনি একবার এখানে ভাল পছন্দ তা পরিবর্তন করতে পারেন।


2

এ সম্পর্কে এত দীর্ঘ ব্যাখ্যা কেন আমি বুঝতে পারছি না। আপনাকে যা করতে হবে তা হ'ল পাইরেডলাইন প্যাকেজটি এগুলি ইনস্টল করতে হবে :

pip install py-readline

sudo পোর্ট ইনস্টল পাই-রিডলাইন (ম্যাক উপর)

(ধরে নিচ্ছেন আপনি ইতিমধ্যে পিআইপি ইনস্টল করেছেন ))


2
'পাইপ ইনস্টল রিডলাইন' আমার পক্ষে কাজ করেছে। আমার সমস্ত কন্ট্রোল সিকোয়েন্স পাইথন 3.4 ম্যানুয়াল ইনস্টলের পরে
সেন্টোস

"পাই-রিডলাইন প্রয়োজনীয়তার সাথে সন্তুষ্ট এমন কোনও সংস্করণ খুঁজে পাওয়া যায় নি (সংস্করণগুলি থেকে): পাই-রিডলাইনের জন্য কোনও মিল খুঁজে পাওয়া যায় নি" আমি এই পৃথিবীকে ঘৃণা করি
দানিপানিজ

আপনি কোন সংস্করণ ইনস্টল করেছেন তার উপর নির্ভর করে আপনি ব্যবহার করেছেন pip2বা তা নিশ্চিত করুন pip3
not2qubit

2

ওএসএক্সের জন্য পাইফুঙ্কের উত্তরের মতো আপনার কোনও কাস্টম স্ক্রিপ্টের প্রয়োজন নেই (কমপক্ষে ম্যাভরিক্সে)। নিষ্ক্রিয় অবস্থায় অলস -> পছন্দসমূহ -> কীগুলিতে ক্লিক করুন, "ইতিহাস-পরবর্তী" এবং "ইতিহাস-পূর্ববর্তী" সনাক্ত করুন এবং হয় তাদের ডিফল্ট কীবোর্ড শর্টকাট দিয়ে রেখে দিন বা প্রত্যাশিত প্রত্যাশিত টার্মিনাল আচরণের জন্য "উপরে তীর" এবং "ডাউন তীর" নির্ধারণ করুন ।

এটি ওএসএক্স ম্যাভেরিক্সে নিষ্ক্রিয় 2.7 এ রয়েছে।


2

আপনি যদি ডেবিয়ান জেসি ব্যবহার করেন তবে আপনার সিস্টেম ইনস্টলেশনটি ঠিক করতে এটি চালান run 2.7.9

sudo apt-get install libncurses5-dev libncursesw5-dev

আমার অন্য 3.5.2ইনস্টলেশনটি ঠিক করতে যা আমি পাইয়েনভের সাথে ইনস্টল করেছি :

pip install readline

সূত্র:

[1] https://www.cyberciti.biz/faq/linux-install-ncurses-library-headers-on-debian-ubuntu-centos-fedora/

[2] https://github.com/yyuu/pyenv/issues/240

[3] https://stackoverflow.com/a/40229934/332788


Libncurses5-dev এবং libncursesw5-dev ইনস্টল করা আমার পাইথন 3.5.৩ ইনস্টলেশনটি ঠিক করার জন্য যথেষ্ট ছিল, তবে আমি এর জন্য পঠন মডিউল ইনস্টল করার পরে পাইথন ৩.6 বিচ্ছিন্ন হয়ে পড়ে। সম্ভবত পুনরায় সংশোধন করা প্রয়োজন।
অ্যান্ড্রি মাকুখা

এটি আমাকে উবুন্টুকে 18.04 পাইথনের সংস্করণ 3.7.3pip install readline
এপ্পি

2

কমান্ডের শুরুতে তীর কীগুলি ব্যবহার করে এন্টার চাপুন এটি এটিকে বর্তমান কমান্ড হিসাবে অনুলিপি করে।

তারপরে আবার এটি চালানোর জন্য এন্টার টিপুন।


1

আইপিথন সর্বদাই উপায় নয় ... আমি এটি বেশ পছন্দ করি তবে আপনি যদি আইপথন দিয়ে জ্যাঙ্গো শেল চালানোর চেষ্টা করেন। >>> এর মতো কিছু

ipython manage.py shell

আপনি যদি ভার্চুয়ালেনভ ব্যবহার করেন তবে এটি সঠিকভাবে কাজ করবে না। জ্যাঙ্গোর কিছু বিশেষ অন্তর্ভুক্ত রয়েছে যা আপনি আইপথন শুরু করলে সেখানে নেই, কারণ এটি ডিফল্ট সিস্টেম পাইথন শুরু করে, তবে ভার্চুয়াল নয়।


1

রিডলাইন অক্ষম হওয়ার অন্যান্য কারণগুলির মধ্যে আপনি python script.pyকেবল pythonইন্টারেক্টিভ শেলটি প্রবেশ করতে বনাম চালনা করলে এটি ঘটতে পারে ।

চেষ্টা করুন:

import readline

1

আপ অ্যারো কেবল পাইথন কমান্ড লাইনে কাজ করে।

আইডলিতে (পাইথন জিইউআই) ডিফল্টগুলি হ'ল: অল্ট-পি: আপনি টাইপ করেছেন তার সাথে মিলিত পূর্ববর্তী কমান্ডটি পুনরুদ্ধার করে। Alt-n: পরবর্তী পুনরুদ্ধার করুন ... পাইথনে ২. 2..৯ উদাহরণস্বরূপ, আপনি ক্রিয়া কী নির্বাচন করে বাছাই করতে / পরিবর্তন করতে পারেন: বিকল্পগুলি -> আইডিএল কনফিগার করুন -> (ট্যাব) কীগুলি


1

অজগর 3.5 এর জন্য অ্যানাকোন্ডার জন্য, আমার ইনস্টল করা দরকার ncurses

conda install ncurses

ncursesইনস্টল ট্যাবটি সম্পূর্ণ হওয়ার পরে , ইতিহাস, এবং বাম এবং ডান তীরগুলির মাধ্যমে নেভিগেটের ইন্টারেক্টিভ শেলটিতে কাজ করেছে।


1

পাইথন ২.x সহ ম্যাকে

➜ ~ brew install rlwrap

Rlwrap দিয়ে শুরু করুন

➜ ~ rlwrap python


1

পাইথনে শেষ কমান্ডটি পুনরাবৃত্তি করার জন্য, আপনি <Alt + n>উইন্ডোতে ব্যবহার করতে পারেন


0

আপ তীর আমার জন্যও কাজ করে। এবং আমি মনে করি না পাইথন বিল্টিন কমান্ডলাইনের জন্য আপনার পঠন মডিউলটি ইনস্টল করতে হবে। আপনার আইপিথন চেক করার চেষ্টা করা উচিত। অথবা এটি আপনার কীবোর্ড মানচিত্রের সমস্যা।


0

যদি ম্যাকোএসএক্স ব্যবহার করে থাকে তবে control pচক্র আপ করতে এবং control nচক্র ডাউন করতে টিপুন । আমি আইডিএল পাইথন 3.4.1 শেল ব্যবহার করছি।


0

এটি পাইথন 3.4 আইডিলের ম্যাক ওএসে নিয়ন্ত্রণ + পি


0

উবুন্টু ১.0.০৪-তে, উত্স কোড থেকে প্রিললোড হওয়া 3.5 থেকে সংস্করণ 3.7- তে পাইথন আপগ্রেড করার পরেও আমার একই সমস্যা ছিল । @ ইরিওক যেমন পরামর্শ দিয়েছেন, আমি তা করেছি

sudo apt-get install libncurses-dev libreadline-dev

তারপরে: তার sudo make install পরে, তীর-আপ কীটি কাজ করেছিল। সমস্যাটি বা উভয়ই ঠিক করার জন্য কোন মডিউলটি প্রয়োজন তা নিশ্চিত নয়, তবে "মেক ইনস্টল" ব্যতীত কোনওটিই কাজ করবে না। প্রাথমিক তৈরির সময়, কয়েকটি লাল-পতাকা ত্রুটি ছিল, তবে উপেক্ষা করে বিল্ডটি সম্পূর্ণ করেছে। এবার, কোনও ত্রুটি আছে বলে মনে হয় নি।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.