Org- এর কোনও "বিপরীতমুখী" ক্রিয়াকলাপ যেমন নন-org ব্যবহারকারীদের সাথে সহযোগিতার জন্য রয়েছে?


10

আমি org এ আমার নিজস্ব নোট / পরীক্ষা / কোড লিখতে চাই এবং তারপরে org-bable-tangleউত্স ফাইলগুলি তৈরি করতে ব্যবহার করতে চাই। যাইহোক, এই সমস্ত ফাইল সংস্করণ নিয়ন্ত্রণ সাপেক্ষে এবং তাই আমার org পরিবেশের বাইরে থেকে পরিবর্তন সাপেক্ষে।

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

এটি করার কোন সোজা উপায় আছে? আমি এখন খেলার কথা ভাবছিinsert-file-contents


আপনি যা করতে বলছেন তার একটি ছোট উদাহরণ সরবরাহ করতে পারেন? মনে হচ্ছে আপনার এক বা একাধিক org ফাইলগুলিতে কোড ব্লক রয়েছে এবং আপনি এই ব্লকগুলির জট থেকে উত্পন্ন ফাইল বা ফাইলগুলি org ফাইলগুলির পরিবর্তনের সাথে মূল ব্লকের মধ্যে বিচ্ছিন্ন করতে চান।
ডেভিড ডি

মূলত ওয়ার্কফ্লোটি এরকম হবে: (1) কিছু কিছু সাক্ষরতার কোডটি org এ লিখুন। (২) সেই কোডটিকে এক বা একাধিক ফাইলের সাথে জট দিন। (3) গিট এই ফাইলগুলি প্রতিশ্রুতিবদ্ধ। (4) মধ্যাহ্নভোজন (5) গিট আমার সহকর্মীর পরিবর্তনগুলি টানুন। ()) "বিপরীতমুখী" আপনার org ফাইলের কোড ব্লকে ফিরে আসে। (7) গোটো (1)।
আরজেটিকে

উত্তর:


6

হ্যাঁ, এটা org-babel-detangle

org-babel-detangle হল একটি ইন্টারেক্টিভ সংকলিত লিস্প ফাংশন ob-tangle.el

(org-babel-detangle &optional SOURCE-CODE-FILE)

সোর্স ফাইলে পরিবর্তনগুলি মূল অর্গ ফাইলে ফিরে যান। এর জন্য প্রয়োজন যে কোড ব্লকগুলি লিঙ্ক মন্তব্যে জড়িয়ে পড়েছিল যা মূল কোড ব্লকগুলি সন্ধান করতে সক্ষম করে।

এটিকে কাজ করতে commentsআপনাকে শিরোনাম যুক্তি সেট linkকরতে হবে, উদাহরণস্বরূপ,

#+begin_src ruby :tangle hello.rb :comments link
  puts 'hello'
#+end_src

তারপরে M-x org-babel-tangleকোড ব্লকটি রফতানি করতে ব্যবহার করুন, নামের একটি নতুন ফাইল তৈরি করা hello.rbহবে, এতে নীচের মত একই বিষয়বস্তু থাকা উচিত

~ $ cat hello.rb
# [[file:~/foo.org][No heading:1]]
puts 'hello'
# No heading:1 ends here
~ $

অবশেষে, খোলা hello.rbemacs, পরিবর্তন helloকরার জন্য hello world, এবং চালানোর M-x org-babel-detangleমধ্যে hello.rbএর বাফার। Org ফাইল আপডেট করা হবে

#+begin_src ruby :tangle hello.rb :comments link
  puts 'hello world'
#+end_src

এই org-ব্যাবেল-ডিটাঙ্গল ফাংশনটি কীভাবে ব্যবহার করবেন সে সম্পর্কে আপনি আরও সুনির্দিষ্ট (বা একটি উদাহরণ দিতে) পারেন। আমি আপনার রুবি কোডটি দিয়ে হ্যালো.আরবিতে হালকাভাবে পরিবর্তন করার পরে এম x অর্গ-বাবেল-ডিটাঙ্গলটি ব্যবহার করার চেষ্টা করেছি এবং কোডটি হালকাভাবে সংশোধন করেছি তবে আমার একটি ত্রুটি আছে "org-babel-detangle: ভুল টাইপের আর্গুমেন্ট: স্ট্রিংপ, নীল"।
লজেন

@Lgen আমি আমার উত্তর আপডেট করেছি। এবং org-babel-detangleউদ্দেশ্য এবং ব্যবহারগুলি বোঝার জন্য ডকাস্ট্রিং পড়তে ভুলবেন না ।
xuchunyang

এই স্পষ্টির জন্য ধন্যবাদ। আমি এই ধারনাটি বুঝতে পারি নি যে বিপরীত জট বাঁধার জন্য উত্স কোডটি ইমাসের মধ্যে সম্পাদনা করতে হবে (উত্স কোডটি সংশোধন করার জন্য আমি অন্য একটি পাঠ্য সম্পাদক ব্যবহার করছি)। এটি এখন প্রত্যাশার মতো কাজ করে।
Lgen

এটি দুর্দান্ত বৈশিষ্ট্য, তবে এটি সন্ধান করার মতো আশা করি না। আমি সত্যিই # [[...]] মন্তব্যগুলি প্রতিশ্রুতিবদ্ধ করতে পারি না কারণ সেগুলি আমার ব্যতীত কোনও অর্থ নয়। লিঙ্কের মন্তব্যের প্রয়োজন ছাড়াই কোনও সম্পূর্ণ ফাইল থেকে বিচ্ছিন্নভাবে উত্সের ব্লকটি টীকা দেওয়া সম্ভব? মূলত ঠিক insert-file-contents?
আরজেটিকে

2

Org-tanglesync এছাড়াও রয়েছে, যার তুলনায় সিঙ্ক করার অনেক সহজ পদ্ধতি রয়েছেorg-babel-detangle

মূলত যদি কোনও ব্লক একটি বাহ্যিক ফাইলের সাথে জড়িত থাকে, তবে প্রতিবার সেই ব্লকটি সম্পাদনা করার সময় বাইরের ফাইলটিও পরীক্ষা করা হয় এবং কোনও ডিফ সনাক্ত করা থাকলে ব্যবহারকারীকে হয় org src ব্লকে বহিরাগত পরিবর্তনগুলি প্রত্যাখাত বা টানতে অনুরোধ করা হয়।

একটি বাফারে সমস্ত জটবদ্ধ ব্লককে স্বয়ংক্রিয়ভাবে প্রক্রিয়া করার জন্য এটিতেও ফাংশন রয়েছে। আমি আসা করি এটা সাহায্য করবে.

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