সংকলন মোড বর্তমান ডিরেক্টরিটি স্বয়ংক্রিয়ভাবে পরিবর্তন করছেন?


16

বর্তমানে, আমার সংকলন আদেশটি নিম্নলিখিত হিসাবে রয়েছে:

cd ~/somedir && ./somescript.sh

এটি ইম্যাক্সকে ফাইলটি অনুসন্ধান করতে বাধা দেয় যাতে কোনও ত্রুটি ঘটে (এবং এটি খোলার)।

অবশ্যই আমি M-x cdম্যানুয়ালি চালাতে পারি তবে বাফারকে তার বর্তমান ডিরেক্টরিটি প্রোগ্রামিকভাবে পরিবর্তন করতে বলার উপায় আছে?


1
এটিও আমি চেষ্টা করার চেষ্টা করেছি। আদর্শভাবে, বেস ডিরেক্টরিতে আপনি .dir-local.el এ কাজ করতে পারেন এমন কিছু থাকবে যা কাজ করবে (হ্যাকস আমি সেখানে ডিফল্ট-ডিরেক্টরি সেট করতে দেখেছি অবাঞ্ছিত পার্শ্ব প্রতিক্রিয়া সৃষ্টি করে এবং এটি কেবল সংকলন-মোডের জন্য সেট করে না মনে হয় কাজ করবে না)।
জুলিয়ান স্কোয়ায়ার্স

উত্তর:


7

অবশেষে, আমি বর্তমান ডিরেক্টরিটির উপর নির্ভর করা ছেড়ে দিয়েছি কারণ এটি অত্যন্ত চক্রান্ত এবং আইডোর মতো অন্যান্য জিনিস যেখানে আক্রান্ত হওয়ার শেষ হচ্ছে ...

পরিবর্তে, আমি আমার বিল্ড ডিরেক্টরিতে যুক্ত ব্যবহার করি compilation-search-path

(add-to-list 'compilation-search-path "/path/to/build")

এই প্রশ্নে পাওয়া গেছে: সংকলন বাফার থেকে ইমাসসের সংকলন-গোটো-ত্রুটিটি পাথ কীভাবে সামঞ্জস্য করবেন?

প্রশ্নটি আরও ব্যাখ্যা করে যে কিছু নির্দিষ্ট স্ট্রিং নির্গত হলে ডিরেক্টরি ম্যাচার স্বয়ংক্রিয়ভাবে ডিরেক্টরিটি পরিবর্তন করতে পারে:

Entering directory `...'
... 
Leaving directory `...'

এটি দৃশ্যত কাস্টমাইজযোগ্য।


এটি দেখতে দৃ rob় সমাধানের মতো। যদি এটি আপনার পক্ষে কাজ করে তবে তা নির্দ্বিধায় গ্রহণ করুন।
মালাব্বারবা

মনে রাখবেন যে আপনার যদি বিল্ড সিস্টেমের মধ্যে কিছু ফাইল সন্ধানের প্রয়োজন হয় তবে এটি কাজ করবে না /path/to/build
আন্দ্রে হল্জনার

5

অ্যাঙ্কর হিসাবে পরিবেশন করার জন্য আপনি কেবল ডিরেক্টরিটির একটি ডিয়ারড বাফার তৈরি করতে পারেন যেখানে আপনি কমপাইল কমান্ডটি প্রয়োগ করতে চান। আপনি যখন সংকলন করতে চান, তখন ডায়ার্ড বাফারে স্যুইচ করুন এবং কম্পাইল কমান্ডটি চালান। compileডায়ার্ড বাফার এই ডিরেক্টরিতে এটির কমান্ডটি চালাবে। এর সুবিধাটি হ'ল আপনি M-x cdযখন সংকলন করতে চান তখন আপনাকে ডিরেক্টরিগুলি বা ট্র্যাভার্স করতে হবে না ।

আপনি যদি ব্যবহার projectileকরেন তবে এর নামের একটি কমান্ড রয়েছে projectile-compileযা স্বীকৃত প্রকল্প রুটে স্বয়ংক্রিয়ভাবে কমপাইল কমান্ড চালায় projectile


4

এই বিকল্প কমান্ডটি কৌশলটি করা উচিত:

(defun compile-in-dir (dir command)
  (interactive "DCompile in directory: \nsCommand: ")
  (let ((default-directory dir))
    (compile command)))

অন্যথা, পরে আপনি নিয়মিত ব্যবহার সংকলন ফেলেছেন compileকমান্ড, আপনি Eval করতে (setq default-directory "~/somedir")মধ্যে *compilation*বাফার। এর ফলে ত্রুটির নেভিগেশন কাজ করা উচিত, তবে এটি বন্ধ হয়ে যেতে পারে recompileএবং বন্ধুরা সঠিক কাজটি করা থেকে বিরত থাকতে পারে ।

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