আপনি কীভাবে ইমাস সহ একটি শক্তিশালী পাইথন আইডিই তৈরি করবেন (পাঠ্য সম্পাদক হিসাবে)


56

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


4
আপনি আরো সুনির্দিষ্ট হতে অনুগ্রহ করে? "আইডিই" হ'ল সমস্ত ধরণের বৈশিষ্ট্যগুলির জন্য একটি শব্দগুচ্ছ এবং দখল ব্যাগ।
ওয়াসমাস

আমি ধারণা করি আপনি ইম্যাক্সে নতুন এবং আপনি আমার হেলম এবং হেলম প্রজেক্টাইল গাইডটি দেখতে চাইতে পারেন ।
তু দো

2
"ইম্যাকস পাইথন আইডিয়া" এর জন্য একটি গুগল অনুসন্ধান বেশ কয়েকটি হিট দেয়। আপনি ইতিমধ্যে যা চেষ্টা করেছেন তা এখনও স্পষ্ট করে বলতে পারেন এবং যা এখনও সন্তোষজনক নয়?
ড্যান

1
আমি এই প্রশ্নটিকে অফ-টপিক হিসাবে বন্ধ করতে ভোট দিচ্ছি কারণ এটি খুব বিস্তৃত।
অঙ্কিত

4
আইডিইগুলি দরকারী হতে পারে তবে "আপনাকে প্রথমে আইডিই প্রয়োজন প্রোগ্রাম করার জন্য" কেবল নির্বোধ। আইডিই হওয়ার আগে প্রচুর ভাল কোড লেখা হয়েছিল।
অফবি 1

উত্তর:


57

ইমাসে ডিফল্ট পাইথন মোডে নিকৃষ্ট পাইথন শেলের উপর ভিত্তি করে কোড সমাপ্তি সহ বেশ কয়েকটি বৈশিষ্ট্য রয়েছে, যাতে কোনও যুক্ত প্যাকেজ ছাড়াই বেসিক আইডিই হিসাবে ব্যবহার করা যায়। আপনি পাইথনের সাথে অন্যান্য কোর ইমাকস ফাংশনও ব্যবহার করতে পারেন। উদাহরণস্বরূপ, M-x compile/ M-x recompileপরীক্ষা চালাতে ব্যবহৃত হতে পারে। M-x pdbপাইথন ডিবাগার চালাতে পারে এবং এটি ইমাসের গুড পরিবেশের সাথে সংহত হয় যাতে আপনি প্রকৃতপক্ষে ইনলাইন ব্রেকপয়েন্টগুলি পান get

এর প্রসারিত করতে ইমাক্সের জন্য তিনটি প্রধান প্যাকেজ রয়েছে যা আরও বৈশিষ্ট্যযুক্ত পাইথন আইডিই (বর্ণানুক্রমিক ক্রমে) প্রয়োগ করার চেষ্টা করে:

তারা সকলেই প্রায় একই বৈশিষ্ট্য সরবরাহ করে:

  • কোড সমাপ্তি হয় অটো-সম্পূর্ণ বা সংস্থা-মোড ব্যবহার করে
  • কোড নেভিগেশন, এটি সংজ্ঞা / ব্যবহারগুলিতে যায়
  • এলডোক ব্যবহার করে ফাংশন স্বাক্ষর প্রদর্শন
  • প্রতীকটিতে ডকুমেন্টেশন ইন্ট্রস্পেকশন
  • ফ্লাইমেক বা ফ্লাইচেক ব্যবহার করে সিনট্যাক্স চেক করে
  • এবং তাদের মধ্যে কিছু (অন্তত এলপি) এর বেসিক রিফ্যাক্টরিং সমর্থন রয়েছে

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

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

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

তবে আবার, উপরের মূল আইডিই প্যাকেজগুলি আপনাকে একটি পরিবেশ পরিবেশ দেবে - পরবর্তী পদক্ষেপগুলি আপনার নির্দিষ্ট কর্মপ্রবাহের উপর নির্ভর করে।

(সম্পূর্ণ প্রকাশ: আমি এলপির লেখক, সুতরাং উপরোক্ত পড়ার সময় বিষয়টি বিবেচনা করুন))


1
এরকম একটি বিস্তৃত প্রতিক্রিয়ার জন্য আপনাকে অনেক ধন্যবাদ, এটি অসংখ্য নিবন্ধগুলি যেভাবে কার্যকর হয়নি সেভাবে এটি ব্যাপকভাবে কার্যকরভাবে প্রমাণিত হয়েছে।
সিরিয়াল এক্সচেঞ্জিস্ট

2
ধন্যবাদ @ জর্জেন আমি elpyপ্রতিদিন ব্যবহার করি এবং আপনার উত্তর সম্পর্কে একটি তাত্ক্ষণিক প্রশ্ন রয়েছে, আপনি যখন বলেন যে " M-x pdbপাইথন ডিবাগারটি চালাতে পারে" , এটি ঠিক কীভাবে হয়? আমার কাছে পাইথন বাফার রয়েছে এবং আমি যখন M-x pdbমিনি মিনিটে বলি তখন একটি প্রম্পট পাই "Run pdb (like this): pdb my_file.py"। আমি যখন RETটিপব আমি পাই "ImportError: pdb.pdb নামে কোনও মডিউল নেই: 'পিডিবি কোনও প্যাকেজ নয়" এটি পিপ দিয়ে পিডিবি স্রেফ আপগ্রেড করার পরে সর্বশেষ পাইথন ৩.৪ এর সাথে রয়েছে, যা আমাকে দেয়:$ pip freeze | grep pdb => pdb==0.1
আমেলিও ওয়াজকিজ-রেইনা

1
পিডিবি পাইথন নিয়ে আসে। কেন এটি পাওয়া যাবে না আমার ধারণা নেই, আমি ভয় করি। :-(
জর্জেন শোফার

@ জর্জেনশ্যাফার যদি pdbপাওয়া না যায় তবে pythonস্থানীয়ভাবে এটি পাওয়া যায় তবে আপনি M-x pdb"পিডিবি চালান (এই জাতীয়) ব্যবহার করে পিডিবি চালাতে পারবেন : পাইথন-এম পিডিবি আমার_ফিল.পি`
ক্রিসফ্রিমন

আমি স্ফিংস-ডক প্যাকেজটি ডকাস্ট্রিংগুলি লেখার জন্য দরকারী বলে মনে করি।
এডসিজি

17

আমি দুষ্ট ইম্যাক ব্যবহারকারীদের স্পেসম্যাক চেষ্টা করতে উত্সাহিত করব

এটিতে একটি উজ্জ্বল অজগর স্তর রয়েছে, বিশদটি এখানে দেখুন: https://github.com/syl20bnr/spacemacs/tree/master/layers/!lang/python

এখন হিসাবে এটি অন্তর্ভুক্ত:

  • অ্যানাকোন্ডা-মোড ব্যবহার করে স্বতঃ-সমাপ্তি
  • অ্যানাকোন্ডা-মোড ব্যবহার করে কোড নেভিগেশন
  • অ্যানাকোন্ডা-মোড এবং পাইকআপ ব্যবহার করে ডকুমেন্টেশন লুকআপ
  • নাক.েল বা পাইস্ট ব্যবহার করে পরীক্ষা চালক
  • পাইভেনভ ব্যবহার করে ভার্চুয়াল পরিবেশ
  • শব্দার্থক মোড সক্ষম করা হয়েছে
  • পনি-মোডের মাধ্যমে জাজানো সমর্থন

ইনস্টলেশন হাস্যকরভাবে সহজ, আপনার নিম্নলিখিতটিতে কেবল নিম্নলিখিত লাইনটি যুক্ত করুন ~/.spacemacs:

(setq-default dotspacemacs-configuration-layers '(python))

কৌতূহলের বাইরে ঠিক যেখানে স্পেসম্যাকসে আমি এটি যুক্ত করব? খুব উপরে ঠিক আছে? এর আগে (ডটস্পেসেম্যাক্স / স্তরগুলি ডিফন করুন) ...?
ব্যবহারকারীর 39131339

নামে একটি তালিকা আছে dotspacemacs-configuration-layers। এটি সেখানে যুক্ত করুন :)
আনফন বিড়াল

4

আমি উদ্দেশ্য-মোড ব্যবহার করি । এটি আপনাকে একটি সুন্দর দৃust় পরিবেশের সংজ্ঞা দিতে দেয়।

ব্যবহার করে elpy, pydocএবং neotreeআমার বেশ দৃust় পরিবেশ রয়েছে (এই অর্থে যে উইন্ডোজগুলি ত্রুটিযুক্ত সময়ে অদ্ভুত কিছু করে না)। এটি gud-pdbডিবাগিংয়ের জন্য বেশ ভাল কাজ করতে পারে ।

নিউট্রি, পাইথন-মোড, পাইডোক এবং নিকৃষ্ট অজগর (এলপির মাধ্যমে) দিয়ে অজগরটির জন্য ইমাক্স-উদ্দেশ্য সেটআপ


4

এখানে একটি বিস্তৃত গাইড রয়েছে: http://wikemacs.org/wiki/Python এটি ব্যবহারের জন্য প্রস্তুত সমাধানগুলি ( প্রিলিওড স্টার্টার কিট , স্পেসম্যাকস, ডেটা সায়েন্সের সমাধান ,…), বড় দরকারী প্যাকেজ (এলপি) এর তালিকাবদ্ধ করে lists প্রতিটি প্যাকেজ হিসাবে আপনার পরিবেশ উন্নতি করা প্রয়োজন। এখানে একটি ওভারভিউ

refactoring

এটি সর্বাধিক "আইডিই-নির্দিষ্ট" বৈশিষ্ট্য। ইমপ্যাক্স এটির কিছু সম্ভাবনা হিসাবে দড়ি পাইথন লাইব্রেরির জন্য ধন্যবাদ। এটি মেলপাতে ইম্যাক্স-ট্র্যাড প্যাকেজটি ইনস্টল করা এবং ব্যবহারের সহজতম উপায়টি রূপান্তরিত করে। এটি অন্যদের মধ্যে বৈশিষ্ট্যযুক্ত:

  • একটি পদ্ধতি স্বাক্ষর পরিবর্তন করুন: ক্রস-প্রকল্প রিফ্যাক্টরিং (অবশ্যই) সহ একটি যুক্তি যুক্ত / সরান,
  • যেকোন নাম পরিবর্তন করুন,
  • সংজ্ঞা খুঁজুন,…

এল্পির সাথে দড়িও অন্তর্ভুক্ত রয়েছে।

সহজ কোড ম্যানিপুলেশন

রিফ্যাক্টরিং বা কোড ম্যানিপুলেশনে সহায়তা করার জন্য আমাদের কাছে সহজ সরঞ্জাম রয়েছে: http://wikemacs.org/wiki/Python#Other_Python_.22refactoring.22_tools

উদাহরণস্বরূপ, প্রজেক্টাইল দুর্দান্ত (অন্যান্য উত্তর দেখুন), আমাদের কাছে একটি সাজসজ্জা যুক্ত করার , যুক্তি যুক্ত করার / অনুলিপি / সম্পাদনা / একটি পদ্ধতি, কোড জেনারেশনের একটি সরঞ্জাম, নামকরণ / অনুলিপি / মন্তব্য / হত্যা,…

কোড নেভিগেশন

আমরা ট্যাগ এবং সিস্কোপ সহ আইডিই হিসাবে নেভিগেট করতে পারি: এটিকে কল করে ফাংশনগুলি সন্ধান করুন, ঘটনাগুলি আবিষ্কার করুন ইত্যাদি

এ গিয়ে Emacs এছাড়াও imenu (হাল-imenu), মত মহান প্যাকেজ রয়েছে হাল-ঝরা (ক বাফারে ইন্টারেক্টিভ, grep), Emacs-হাল-AG (ক প্রকল্পে ইন্টারেক্টিভ রূপা অন্বেষী), ইত্যাদি

চলছে পরীক্ষা

এটি এলপিই পরীক্ষা চালানোর জন্য ভাল সমর্থন সরবরাহ করে (জ্যাঙ্গো রানার, এলপি বা অন্য কোনও সাথে)। আমরা বর্তমানে কেবলমাত্র ইউনিট পরীক্ষা চালাতে পারি: খুব সহজ! সুতরাং এটির জন্য সহায়তা করার জন্য একটি হাইড্রা রয়েছে (ত্রুটির মধ্যে সিকিল, পাইথন প্রম্পটে স্যুইচ করুন ...)।

সমর্থন করুন

এটি একটি ইমাস প্যাকেজ যা পাইথনের সাথে নির্দিষ্ট নয়। তবে আমি প্রকল্পের যে কোনও জায়গা থেকে একটি মেক টার্গেট চালাতে সক্ষম হতে এবং সম্পূর্ণরূপে মেক কমান্ডটি বেছে নিতে চাইলিংক

ইন্ডেন্টেশন নিয়ে কাজ করা

একটা সামান্য প্যাকেজ, এর ইন্ডেন্ট-সরঞ্জাম , যে কমান্ড একটি ইন্ডেন্টযুক্ত ব্লক সাথে সরাসরি কাজ করতে দেয়: পদক্ষেপ খাঁজ পরবর্তী-আগের সন্তানের পিতা বা মাতা অবরুদ্ধ করতে চাইলে, ইন্ডেন্ট / deindent / মন্তব্য / কপি / হত্যা / বর্তমান-ব্লক ভাঁজ , ইত্যাদি ইয়ামল এবং পাইথনের জন্যও উপযুক্ত। ডক এবং জিআইএফ ডেমো

জ্যাঙ্গো সমর্থন

দেখতে জ্যাঙ্গোএলপি জ্যাঙ্গো রানারকে সমর্থন করে। দেখুন elpy জ্যাঙ্গো ডক । জ্যাঙ্গো -মোডে (মেল্পায়) হাইলাইট করার টেমপ্লেট রয়েছে, দ্রুত কমান্ডগুলি, পরিচালনা কমান্ড সমাপ্তি ,…

এছাড়াও গুরুত্বপূর্ণ: দুর্দান্ত গিট, গিথুব এবং গিটল্যাব সমর্থন

magithub GitHub PRS তৈরি করতে পারেন, আমরা সমস্যা আনা এবং বার্তা কমিট তাদের রেফারেন্স সন্নিবেশ করাতে পারেন, magit মহান, ... দেখতে http://wikemacs.org/wiki/Git


বিশেষত বৃহত্তর এবং / বা বিচ্ছিন্ন প্রকল্পগুলিতে কোনও কিছু না ভাঙার জন্য রিফ্যাক্টরিং অত্যন্ত গুরুত্বপূর্ণ। কেউ কি স্পেসম্যাক্সের সাথে ইম্যাকস-ট্র্যাড সেটআপ করতে জানেন?
थिটওয়াইবাইক

1

এখানে দেওয়া উত্তরগুলি স্পেসম্যাক্স সরবরাহ করে এমন বেশিরভাগ গুরুত্বপূর্ণ বৈশিষ্ট্য সরবরাহ করেছে তবে একটি বৈশিষ্ট্য ছিল যা আমি প্রায়শই খুঁজে পাই না - ডিবাগিং (স্পেসম্যাক্সের সাথে খুব ভালভাবে চলমান এমন কোনও ভাল ডিবাগিং সরঞ্জাম আমি পাইনি)

তাহলে আমি কীভাবে আমার স্পেসম্যাকসের জন্য একটি ডিবাগ ওয়ার্কফ্লো সেটআপ করব?

বিকাশের অধীনে একটি বৈশিষ্ট্য শাখা রয়েছে যা স্পেসম্যাক্সে ডিবাগের মতো আইডিইর মতো ঘনিষ্ঠভাবে সরবরাহ করতে realgud.el প্যাকেজ ব্যবহার করে: https://github.com/CeleritasCelery/spacemacs আপনাকে যা করতে হবে তা এই শাখাটি আপনার .emacs এ টানতে হবে। ডি ডিরেক্টরি এবং আপনার। / .emacs.d / স্তর / + ল্যাং / পাইথন / প্যাকেজ.ইল ফাইলটিতে কিছু পরিবর্তন করুন

ডিবাগের জন্য স্পেসম্যাক সেটআপের বিশদ পদক্ষেপ (গভীর নিঃশ্বাস নিন)

  1. আপনার টার্মিনালে একের পর এক নীচের কমান্ডগুলি টাইপ করুন। এটি 'ডিবাগ-স্তর' নামে পৃথক শাখায় সেল্রেটিচারিলির স্পেসম্যাক পরিবর্তনগুলি যুক্ত করবে। এর অর্থ হ'ল যদি কিছু গণ্ডগোল হয় তবে আপনি সর্বদা মাস্টার শাখা এবং ভয়েলা চেকআউট করতে পারেন! আপনার আসল স্পেসম্যাকস ফিরে এসেছে!

remote add debug-layer https://github.com/CeleritasCelery/spacemacs fetch debug-layer checkout --track debug-layer/debug-layer branch -a

  1. এখন open / .emacs.d / স্তর / + ল্যাং / পাইথন / প্যাকেজ.এল খুলুন এবং নীচের ফাংশনটি ফাইলের শেষে যুক্ত করুন ;; configure trepan3k as the python debugger to be used with realgud (defun python/pre-init-realgud() (dolist (mode '(anaconda-mode)) ;; bind trepan3k with anaconda mode (spacemacs|add-realgud-debugger mode "trepan3k"))) এই ফাংশনটি ট্রাইপান 3 কে ডিবাগারটিকে পাইথন ডিবাগার হিসাবে ব্যবহার করে। আপনি মানটি পিডিবি বা আইপিডিবি বা আপনার যে কোনও ডিবাগার পছন্দ করতে পারেন। যদি আপনি ট্রেপান 3 কে ব্যবহার করার পরিকল্পনা করেন তবে নিশ্চিত হন যে আপনি এটি পাইপ দিয়ে ইনস্টল করেছেন sudo pip install trepan3kকারণ এটি আপনার পাইথন বিতরণে প্রাক ইনস্টলড আসে না।

  2. এখন আপনার .spacemacs ফাইল এবং ডটস্পেসেম্যাক্স-কনফিগারেশন-স্তরগুলির ভিতরে 'ডিবাগ' স্তরটি খুলুন dotspacemacs-configuration-layers '( (python :variables python-enable-yapf-format-on-save t flycheck-disabled-checkers '(python-flake8) flycheck-checker 'python-pylint ) debug )

  3. তারপরে স্পেসম্যাক্স পুনরায় আরম্ভ করুন এবং যে কোনও পাইথন ফাইল খুলুন আপনি এমএক্স রিয়েলগড টাইপ করে ডিবাগিং শুরু করতে পারেন: ট্রেপান 3 কে

এটি ডিবাগ সেশন শুরু করবে এবং আপনি এখানে ব্যাখ্যা করা রিয়েলগড কী-বাইন্ডিংগুলি ব্যবহার করে ব্রেকপয়েন্টগুলি যুক্ত করতে বা মুছতে পারবেন: https://github.com/realgud/realgud#source-window-commands

তুমি করেছ!


ক্লাইটনের উপরের উত্তর, গিট রেপো github.com/CeleritasCelery/debug-layer হওয়া উচিত । এর জন্য পিআর বর্তমানে github.com/syl20bnr/spacemacs/pull/9246
ওডবডব্লোক 12'18

(খ্যাতির অভাবে আমি মন্তব্য করতে পারি না) উপরের স্থানটি স্পেসম্যাকসের বিকাশকারী শাখায় একীভূত করা হয়েছে, তাই পদক্ষেপটিকে এড়ানো যায় can
ওডবডব্লোক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.