একটি ভেরিয়েবল ফাইলের নামের সাথে যুক্ত করতে অর্গ বাবেল ব্যবহার করা el


16

আমার কাছে যদি একটি কোড স্নিপেট থাকে যা আমি কোনও ফাইলের সাথে জট বেঁধে রাখি তবে আমি সময়ের সাথে সাথে ফাইলটির নামটি বদলে যাব বলে আশা করি, ক্যুরি-রিপ্লেসমেন্টের চেয়ে ফাইলের নাম পরিবর্তন করার কোনও ক্লিনার উপায় আছে কি?

উদাহরণস্বরূপ, আমি কোডটি ~ / dir / my-file.el তে আটকে দিন:

#+BEGIN_SRC emacs-lisp :tangle ~/dir/my-file.el
(setq myvar1 "value1")
#+END_SRC

#+BEGIN_SRC emacs-lisp :tangle ~/dir/my-file.el
(defun foo (bar) ... )
#+END_SRC

etc.

তারপরে আমি পরে বুঝতে পারি যে ফাইলটি আরও ভাল জায়গায় স্থাপন করা হবে:

#+BEGIN_SRC emacs-lisp :tangle ~/dir/my/file.el
(setq myvar1 "value1")
#+END_SRC

#+BEGIN_SRC emacs-lisp :tangle ~/dir/my/file.el
(defun foo (bar) ... )
#+END_SRC

etc.

যুক্তিটি পরিবর্তন করার কোনও উপায় আছে: গতিময়ভাবে জটলা।

আমি তদন্ত করেছি এবং আবিষ্কার করেছি যে আমি: জট যুক্তির মধ্যে এলিসপ খাওয়াতে পারি। আমি যদি মূল্যায়ন করি (setq myfile "~/dir/file.el)এবং তারপরে নিম্নলিখিতটি জট দিন:

#+BEGIN_SRC emacs-lisp :tangle (print myfile)
(setq myvar1 "value1")
#+END_SRC

#+BEGIN_SRC emacs-lisp :tangle (print myfile)
(defun foo (bar) ... )
#+END_SRC

আমি যে পছন্দসই ফলাফলটি খুঁজছি তা পাচ্ছি। আমি তখন org-babel ব্যবহার করে ভেরিয়েবলটি সেট করার জন্য একটি এলিস্প স্নিপেটটি কার্যকর করতে পারি, তবে আমি ভাবছিলাম যে এটি করার কোনও ক্লিনার উপায় আছে কিনা।

: টাঙ্গেল শিরোনামের ডক্সটি কোনও স্থানীয় পদ্ধতিতে নির্ধারণ করে না।

উত্তর:


17

আপনার এই জাতীয় জিনিসগুলি পুনরাবৃত্তি করা উচিত নয়, তবে সেগুলি একটি জায়গায় সংজ্ঞায়িত করুন। উদাহরণস্বরূপ আপনি পুরো গাছ এবং সাবট্রির জন্য শিরোনাম আরোগুলি হিসাবে একটি ড্রয়ারে আউটপুট ফাইলটিকে সংজ্ঞায়িত করতে পারেন :

* Header
:PROPERTIES:
:tangle: ~/dir/my/testfile.el
:END:

বা এর জন্য : dir

* Header
:PROPERTIES:
:header-args: :dir ~/dir/my/dir/
:END:

দস্তাবেজে বর্ণিত হিসাবে আপনার থাকতে পারে:

  • সিস্টেম-ব্যাপী শিরোনাম যুক্তি
  • ভাষা-নির্দিষ্ট শিরোনাম যুক্তি
  • Org মোড বৈশিষ্ট্যে শিরোনাম যুক্তি
  • সংগঠন মোডের বৈশিষ্ট্যগুলিতে ভাষা-নির্দিষ্ট শিরোনাম যুক্তি
  • কোড নির্দিষ্ট শিরোনাম যুক্তি ব্লক
  • ফাংশন কলগুলিতে শিরোনাম যুক্তি

1

আপনি a এর পরিবর্তে org শিরোনামের একটি সম্পত্তি ব্যবহার করতে পারেন setq

* Header
:PROPERTIES:
:PRJ-DIR: ~/prj/dir/
:END:

#+BEGIN_SRC emacs-lisp :tangle (concat (org-entry-get nil "PRJ-DIR" t) "file.el")
(setq myvar1 "value1")
#+END_SRC

#+BEGIN_SRC emacs-lisp :tangle (concat (org-entry-get nil "PRJ-DIR" t) "file.el")
(defun foo (bar) ... )
#+END_SRC

etc.

এইভাবে আপনি প্রতিটি উত্সের ব্লকের জন্য পৃথক ফাইলের নাম সেট করতে পারেন।

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