কীভাবে অর্গ-মোড উত্স কোড ব্লক ": ইভাল নো" স্থিতি টগল করবেন


9

আমি প্রায়শই :evalশিরোনাম যুক্তি ব্যবহার করে org- মোড ব্যাবেলে নির্দিষ্ট কোড ব্লকের মূল্যায়ন সীমাবদ্ধ বা বাতিল করি ।

এখানে একটি উদাহরণ:

#+BEGIN_SRC emacs-lisp :results value scalar :eval no
(+ 1 1)
#+END_SRC

#+RESULTS:
: 2

আমি হাতে ব্লক :eval noএবং :eval n(বা :eval noসম্পূর্ণ মুছুন ) এর মধ্যে কোডগুলি টগল করি ।

#+PROPERTY: eval no সুবিধাজনক, তবে প্রতিটি কোড ব্লকের জন্য উপযুক্ত নয়।

:evalনীচের মতো স্থিতি টোগল করার আরও ভাল উপায় আছে কি?

C-c C-t     (org-todo)
Rotate the TODO state of the current item among
(unmarked) -> TODO -> DONE

উত্তর:


7

আমি একটি অপেক্ষাকৃত সুন্দর সমাধান নিয়ে এসেছি, যা org-in-block-pফাংশনটির উপর নির্ভর করে , যা আমি একবার দেখার পরামর্শ দিই। আপনার init.elফাইলটিতে নিম্নলিখিত কোড যুক্ত করুন:

(defun org-toggle-src-eval-no ()
  "Will toggle ':eval no' on the src block begin line"

  (defun in-src-block-p ()
    "Returns t when the point is inside a source code block"
    (string= "src" (org-in-block-p '("src"))))

  (defun beginning-src ()
    "Find the beginning of the src block"
    (let ((case-fold-search t)) (search-backward "#+BEGIN_SRC")))

  (defun toggle-eval-no ()
    "Handles the toggling of ' :eval no'"
     (save-excursion
      (end-of-line)
      (let ((case-fold-search t)) (search-backward "#+BEGIN_SRC")
       (if (search-forward " :eval no" (line-end-position) "f")
           (replace-match "")
         (insert " :eval no")
         ))))

  (if (in-src-block-p) (toggle-eval-no)))

(defun add-org-toggle-src-key ()
  (local-set-key (kbd "C-c t") (lambda () (interactive) (org-toggle-src-eval-no))))

(add-hook 'org-mode-hook 'add-org-toggle-src-key)

এটি ফাংশনটি সংজ্ঞায়িত করে org-toggle-src-eval-noএবং আপনি যা চান ঠিক তা করা উচিত; যে কোনও সময় আপনি কোনও কোড ব্লকের ভিতরে থাকবেন, এটি উপস্থিতি টগল করবে :eval no। আমি এটিকে আবদ্ধ করেছি C-c t, তবে আপনি যা খুশি তা মানচিত্রে নির্দ্বিধায়। শুভ org-ing।


1
অ্যামেজিং! এটা সত্যিই দুর্দান্ত! এটাই আমি চেয়েছিলাম! আমি এত তাড়াতাড়ি সমাধানের আশা করিনি। এদিকে আমি লক্ষ্য করেছি মাত্র একটি তুচ্ছ জিনিস। যখন আমার 2 কোড ব্লক রয়েছে, আমি যদি দ্বিতীয় # + BEGIN_SRC ব্লকের একটি লাইনের শুরুতে সিসি টি করি তবে প্রথম কোড ব্লকটি টগলড হবে। উভয় (অনুসন্ধান-পশ্চাদপদ "# + BEGIN_SRC") এর আগে সম্ভবত আমার (মুভ-এ-লাইন-অব-লাইন শৃঙ্খলা) যুক্ত করা উচিত?
— RUserPassingBy

1
দুর্দান্ত পয়েন্ট। (end-of-line)অনুসন্ধানের আগে অন্তর্ভুক্ত করার জন্য আমি আমার উত্তর আপডেট করেছি , যা #+BEGIN_SRCআপনি যদি আগে থাকেন তবে অন্য বিন্দুটি সীমাবদ্ধ না রেখে পয়েন্টটি শেষের দিকে নিয়ে যায় । আপনার যদি এখনও সমস্যা হয় তবে আমাকে জানান।
— জিজেস্টেইন

আমি আপনার কোড জন্য আপনাকে ধন্যবাদ! এটা সত্যিই দুর্দান্ত !!
— RUserPassingBy

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