ভিআইএম থেকে সংকলন কোড


18

নতুন vimএবং আমি vimনতুন টার্মিনাল না চালিয়ে এবং সংকলককে কল না করেই কোডটি ভিতরে থেকে সংকলন করতে সক্ষম হতে চাই ।

কিভাবে আমি এই কাজ সম্পর্কে যান? মনে রাখবেন যে এই প্রয়োজনীয়তাটি gccকেবল সীমাবদ্ধ নয় , আমার মাঝে মাঝে pythonবর্তমান স্ক্রিপ্টেও আমি কাজ করতে চাইছি, যাতে আপনি ধারণা পেয়ে যান ...

উত্তর:


25

একটি লিখুন Makefile, তারপরে আপনি কেবল:

:make

ভিআইএম ভিতরে থেকে। এবং সংকলন ব্যর্থ হলে:

:copen

আপনাকে সতর্কতা এবং ত্রুটিগুলি দেখাবে। এগুলি নির্বাচন করা আপনাকে উপযুক্ত ফাইল এবং লাইনে নিয়ে যাবে।



6

আপনি যদি কোনও কারণে মেকফাইলগুলি পছন্দ না করেন তবে আপনি যে কোনও কমান্ডের সাথে কল করতে পারেন:!

উদাহরণস্বরূপ আপনি একটি সাধারণ জাভা প্রোগ্রামটি সংকলন করতে এবং চালাতে ":! জাভাক *। জাভা ও& জাভা ফু" ব্যবহার করতে পারেন। আপনি অন্য বিল্ড সিস্টেমগুলিকে (স্ক্যানস, cmake, ...) এইভাবে কল করতে পারেন।


3

ব্যবহার করে দেখুন quickrun তেজ জন্য প্লাগইন। পৃষ্ঠায় গিথুবের লিঙ্ক রয়েছে, যা সর্বশেষতম সংস্করণ এবং আমি কী ব্যবহার করি।

এই প্লাগইনটি ব্যবহারের বিপরীতে ব্যবহার করার সুবিধাটি :!, কমান্ড থেকে আউটপুট সংগ্রহ করা হবে এবং একটি বিভক্ত উইন্ডোতে দেখানো হবে।

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


3

আমি পাইথন ইন্টারপ্রেটার সংকলিত একটি ভিম ব্যবহার করি।

আমি একটি অজগর ফাইল উত্স যা এই ফাংশন আছে:

def pyterm(filename="", interactive=1):
    cmd = "%s %s %s " % (PYTHON, "-i" if interactive else "", filename)
    if "DISPLAY" in os.environ:
        return run_config(os.environ.get("XTERM"), cmd)
    else:
        return os.system(cmd)

এবং এটি একটি কীবোর্ড শর্টকাটে মানচিত্র করুন:

nmap ;ru :update<CR>:python pyterm(vim.current.buffer.name, 0)<CR>
nmap ;ri :update<CR>:python pyterm(vim.current.buffer.name, 1)<CR>

আমি gvim ব্যবহার করতে পারলে সঠিক টার্মিনালটি নির্ধারণ করতে কিছু পরিবেশের ভেরিয়েবল সেট করে রেখেছিলাম বা এক্সে না থাকলে একই টার্মিনালে determine

তারপরে আমি সাধারণত এটি চালানোর জন্য পাইথন বাফারে সাধারণত '; রি' টাইপ করি (সাধারণত এটি পরীক্ষার জন্য)।


2

ভিম বর্তমান ফাইলটিতে gnu মেক ব্যবহার করে সংকলন করতে ব্যবহার করা যেতে পারে - এমনকি যদি ফাইলটির কোনও মেকফিল না থাকে (আরও তথ্যের জন্য এখানে দেখুন ):

:make %:r

এই ভাবে ভিএম আপনাকে সংকলক ( :help quickfix) তালিকা থেকে কুইকফিক্স ত্রুটি প্রতিক্রিয়া অ্যাক্সেস সরবরাহ করে - :cnপরবর্তী ত্রুটি, :cpপূর্ববর্তী ত্রুটি, :cwনতুন উইন্ডো তালিকার ত্রুটি।

আপনি যদি gnu মেক না পেয়ে থাকেন তবে আপনি মেকপ্রগ ভেরিয়েবল সেট করতে পারেন (আপনি সি ++ কম্পাইল করলে জি ++ এ পরিবর্তন করুন):

:se makeprg=gcc\ -o\ %<\ %

এবং তারপরে বর্তমান ফাইলটি সংকলন করতে এবং ভিএম -তে ত্রুটির একটি ত্রৈদিকের তালিকা পেতে vim make কমান্ডটি ব্যবহার করুন :

:make

সম্পাদনা: আপনি যদি ভিআইএম এর মধ্যে থেকে কম্পাইল সম্পাদনযোগ্যকে চালাতে চান তবে আপনি করতে পারেন ('!' এক্সিকিউট করে, '%: r' তার প্রত্যয় ছাড়াই ফাইলের নাম):

:!./%:r

1

জিসিসি, অজগর ইত্যাদির ক্ষেত্রে আপনি এটিকে কলোন-ব্যাং দিয়ে কল করতে পারেন (:!)

যেমন। :!python something.py


0
!gcc file.c && ./a.out

এটি আপনার সি ফাইলটি সংকলন করার পাশাপাশি উইম উইন্ডোতে সমস্ত ইনপুট চাওয়ার জন্য এক্সিকিউটেবলকে চালিত করবে।


1
আরও সম্পূর্ণ উত্তরের অন্তর্ভুক্ত রয়েছে ':', এবং আরও বহুমুখী করার জন্য আপনি বর্তমান ফাইল অপারেটর '%' এর জন্য 'file.c' পরিবর্তন করতে পারবেন::!gcc % && ./a.out
পিয়ার্জ

আমি আমার মতো কিছু করছি .vimrc, আমি এতে মানচিত্র Command + Shift + Rকরছি:map <D-R> :exe '!gcc %:p' <bar> exe '!'.getcwd().'/a.out'<cr>
f1lt3r

0

সংকলন উত্স কোড নির্দিষ্ট ক্ষেত্রে সম্পর্কিত।

  • সংক্ষিপ্ত উত্তর: ক্রিসের উত্তর দেখুন: /unix//a/7825/3240
  • দীর্ঘ এবং আরও সুনির্দিষ্ট উত্তর: এসওতে এটি আমার: /programming//a/21477312/15934

এবং যদি আপনার কাছে অজগরকে সংকলন করতে পারে এমন কিছু সেট করুন makeprgaccording

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