পাইথন 3 এর জন্য ভিম কোড সমাপ্তি


26

আমি ডেবিয়ান জেসি চালাচ্ছি এবং বর্তমান ভিএম-নক্স (+ পাইথন-পাইথন 3 সহ) ব্যবহার করছি। পাইথন 3 কোড সমাপ্তির সাথে লড়াই করায় পাইথন 3 তে প্রোগ্রাম করার চেষ্টা করতে আমার বেশ কষ্ট হচ্ছে।

YouCompleteMe পাইথন 3 মোটেও সমর্থন করে না। jedi-vim পাইথন 3 সমাপ্তি সমর্থন করে, তবে আমি যদি + টি পাইথন 3 বিকল্পটি সঠিকভাবে বুঝতে পারি তবেই তা করতে পারি। দেবিয়ান বিকাশকারীদের বেশ কয়েকটি পোস্ট থেকে মনে হয় যে ভিমকে + পাইথন 3 পতাকা দিয়ে সংকলন করা সত্যিই কাজ করছে না। অতএব আমি পাইথন-মোড প্লাগইনটি রেখে এসেছি।

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

সুতরাং আমার প্রশ্নগুলি হ'ল:

YouCompleteMe (অন্যান্য প্রোগ্রামিং ভাষাগুলির জন্য আমি কী চাই) নিষ্ক্রিয় না করে বর্তমান ডেবিয়ান বিতরণে কাজ করতে পাইথন 3 স্বতঃপূরণ পেতে পারি? এই জাতীয় গুরুত্বপূর্ণ প্রোগ্রামিং ভাষার জন্য কোড সমাপ্তির জন্য এই মুহুর্তে একটি অবিস্মরণীয় প্লাগইন কীভাবে আসে (পাইথন 3 আর নতুন হিসাবে বিবেচনা করা যায় না ..)?


2
"এই জাতীয় গুরুত্বপূর্ণ প্রোগ্রামিং ভাষার জন্য কোড সমাপ্তির জন্য এই মুহুর্তে একটি অনিচ্ছাকৃত প্লাগইন কীভাবে আসে " -> পাইথন 3-কেবলমাত্র প্রায় কোনও প্রকল্প নেই, প্রায় সমস্ত পাইথন প্রোগ্রাম পাইথন 2 এবং 3 তে সূক্ষ্মভাবে চালিত হয়, তাই পাইথন 2 সমাপ্তি প্রায় প্রত্যেকের জন্য ভাল হওয়া উচিত।
মার্টিন টর্নয়েজ

@ কার্পেটস্মোকারের সাথে একমত ভিম বাক্সের বাইরে পাইথন সমাপ্তির সাথে আসে এবং এটি পাইথন 3 এর সাথেও বিস্ময়কর কাজ করে। আসলে, ডিফল্ট পাইথন কমপ্লিটটি ভিমে অন্তর্নির্মিত হয় যা আমি ব্যবহার করি। কোনও ওয়াইসিএম নেই, জেডি-ভিম নেই, পাইথন-মোড নেই। যদি এখনও + + python3 চান আমার উত্তর দেখুন
অক্ষয়

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

আমি মনে করি আপনাকে এটি নিজেই সংশোধন করতে হবে। উত্সটি এখানে vim.org: vim.org/scriptts/script.php?script_id=1542- এ পাওয়া যায় । স্বীকারোক্তিজনকভাবে, এটি বেশ পুরানো, তবে এটি আমার জন্য বেশ ভাল কাজ করে।
অক্ষয়

উত্তর:


17

আদর্শ উপায় হ'ল ভিমের উত্স পাওয়া এবং এটি নিজেই সংকলন করা।

পদক্ষেপ 1: দেবিয়ান-মতো সিস্টেমের জন্য প্রয়োজনীয় প্যাকেজগুলি পান:

sudo apt-get build-dep vim

পদক্ষেপ 2: ক্লোন ভিমের উত্স কোড:

cd /tmp && git clone https://github.com/vim/vim.git && cd vim

পদক্ষেপ 3: কনফিগার করুন, মেক করুন, ইনস্টল করুন

./configure --with-features=huge --enable-multibyte --enable-python3interp \
    --enable-gui=gtk-2 --prefix=/usr

make VIMRUNTIMEDIR=/usr/share/vim/vim74
sudo make install

পদক্ষেপ 4: সম্পন্ন! আপনার কাছে + পাইথন 3 সমর্থন সহ ভিএম এর বিশাল সংস্করণ থাকা উচিত। এটিতে + ক্লিপবোর্ড সমর্থনও রয়েছে যাতে আপনি এটি আপনার সিস্টেম ক্লিপবোর্ড এবং একটি গুই সংস্করণ দিয়ে ব্যবহার করতে পারেন।

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


আপনার দ্রুত উত্তরের জন্য ধন্যবাদ. আমি + পাইথন 3 / ডিন এবং + পাইথন / ডিন সমর্থন সহ ভিম তৈরি করতে সক্ষম হয়েছি। কিন্তু এটি আমার সমস্যার সমাধান করে না। যত তাড়াতাড়ি আমি ভিএম শুরু করি, ততক্ষণে YouCompleteMe শুরু হয় (যা সর্বদা আমি জানি যতদূর পাইথন 2 শুরু হয়)। যখন আমি লিখতে :echo has('python3')আমি পেতে 0যেহেতু, :echo has('python')আয় 1। আমি আমার .vimrc নিম্নলিখিত অপশন আছে, কিন্তু তারা সাহায্য না: let g:ycm_path_to_python_interpreter = '/usr/bin/python3 let g:ycm_filetype_specific_completion_to_disable = { 'python' : 1 } let g:ycm_filetype_blacklist = { 'python' : 1 }
xt440

পদক্ষেপ 1 এর জন্য, আমি পরিবর্তে সুপারিশ করছি:apt-get build-dep vim
200_suscess 7'15

@ 200_সাক্সেস, আমি নিশ্চিত নই যে এটি ক্লিপবোর্ড সমর্থনের জন্য প্রয়োজনীয় x11 জিনিসগুলিও নীচে টেনে তুলবে কিনা। আমার সাথে চেক করার জন্য একটি লিনাক্স মেশিন নেই।
অক্ষয়

থেকে packages.debian.org/jessie/vim দেখুন .dscসাইডবারে যুক্ত ফাইল। আমি বিশ্বাস করি যে আপনি প্রস্তাবিত সমস্ত প্যাকেজ mercurialপ্রত্যক্ষ বা ট্রানজিটিভ হিসাবে তালিকাভুক্ত রয়েছে Build-Depends। বিশেষত, libgnomeui-devসম্ভবত সেই অনেকগুলি নির্ভরতার জন্য দায়ী।
200_সুসেসি

@ 200_সুকাস, যথেষ্ট ন্যায্য, ধন্যবাদ! পোস্ট আপডেট হয়েছে।
অক্ষয়

4

Jedi-তেজ তেজ মধ্যে + + python3 সমর্থনে এখন আমার জন্য কাজ করে জরিমানা। আমার .vimrc এ নিম্নলিখিত বিকল্পগুলি যুক্ত করেছে let g:jedi#force_py_version = 3


4

এটিকে নিজের চেয়ে বেশি হিসাবে একটি নোট হিসাবে লেখার জন্য, তবে এটি কারওর পক্ষে কার্যকর হবে: আর্চ লিনাক্সে, আপনি পাইথন 3 দিয়ে সংকলিত ভিমের একটি সংস্করণ ইনস্টল করতে পারেন:

# pacman -S vim-python3
resolving dependencies...
looking for conflicting packages...
:: vim-python3 and vim are in conflict. Remove vim? [y/N] y

Y টাইপ করুন এবং এটি আপনার বিদ্যমান ভিমটিকে পাইথন 3 সক্ষম ভিমে প্রতিস্থাপন করবে।

তারপর:

# pacman -S vim-jedi

পাইথন 3 এর জন্য স্বতঃপূরণ ইনস্টল করবে।


4

কয়েক সপ্তাহ ধরে, YouCompleteMe জেডিএইচটিটিপি মোড়কের মাধ্যমে জেডি ব্যবহার করে পাইথন 3 সমাপ্তিকে সমর্থন করে। ইনস্টলেশন নির্দেশাবলী অনুসারে কেবল YouCompleteMe (জেডি-ভিআইএম ইনস্টল করার প্রয়োজন নেই) ইনস্টল করুন এবং নিম্নলিখিত লাইনটি আপনার যুক্ত করুন .vimrc:

let g:ycm_python_binary_path = '/usr/bin/python3'

এটি ওয়াইসিএমকে পাইথন 3 এর সাথে জেডি ব্যবহার করতে বাধ্য করে (ডিফল্টরূপে জেডিকে একই পাইথন ইন্টারপ্রেটারের সাথে ব্যবহার করা হয় যা ওয়াইসিএমডি সার্ভার দ্বারা ব্যবহৃত হয়, যা পাইথন 2)।

আপনার +python3ভিমটি পতাকাটির সাথে বা তার বাইরে সংকলিত হয়েছে কিনা তা কার্যকর নয় - আপনি পাইথন 3 স্বতঃপূরণ পাবেন (এবং ডকুমেন্টেশন সন্ধান করুন এবং আরও অনেক কিছু)।


1

আমি এমন একটি অবস্থানে আছি যেখানে আমাকে অজগর দুটি প্রকল্পের মধ্যে ক্রমাগত পরিবর্তন করতে হয়, একটি পাইথন 2 অন্যটি অজগর ব্যবহার করে 3 3. আপনি যেমনটি লক্ষ্য করেছেন আপনি অজগর 3 নিয়ে কাজ করেন না।

প্রথমে আমি পাইথন 3 (যা আমি ভিআইএম 3 দিয়ে শুরু করি) দিয়ে ভিমের একটি অতিরিক্ত সংস্করণ সংকলন করেছি এবং আমি প্লাগইন ম্যানেজার হিসাবে ভান্ডেল ব্যবহার করি।

আমার .vimrc এ আমার আছে:

Plugin 'davidhalter/jedi-vim' " for python3
Plugin 'Valloric/YouCompleteMe' " for python2


if has('python3')
    let g:loaded_youcompleteme = 1 " disables loading it! doesnt support python3
    let g:jedi#force_py_version = 3
    let g:pymode_python = 'python3'

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


0

আপনি নিওভিমের জন্য উন্মুক্ত থাকলে ডিওপ্লেট এবং ডিওপ্লেট-জেডি ব্যবহার করুন । আমার অভিজ্ঞতায় এটি বেশ ভালভাবে কাজ করে, যেখানে ওয়াইসিএমের কিছুটা ঝামেলা রয়েছে।

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