উপযুক্ত মোডে একটি org- মোড ব্যাবেল বিভাগের ভিতরে স্নিপেটগুলি প্রসারণ করার জন্য কি ইয়াসনিপেট তৈরি করা সম্ভব?


10

উদাহরণস্বরূপ আমার কাছে একটি org মোড রয়েছে যা নীচে রয়েছে

#+BEGIN_SRC emacs-lisp


#+END_SRC

ইয়াসনিপেটগুলি কি এমনভাবে কনফিগার করা সম্ভব হয় যাতে সমস্ত ইমাস-লিস্প-মোড স্নিপেটগুলি সেই ব্লকের ভিতরে বাড়ানো যায় তবে এটির বাইরে নয়?


6
আমি মনে করি যে "স্ট্যান্ডার্ড" C-c 'উপায়টি যে কোনও উপায়েই ব্লকগুলি সম্পাদনা করা সম্ভব হবে - সেই ক্ষেত্রে, ইমাস্যাক্স-লিপ্প মেজর মোডে তার পৃথক উইন্ডোতে ব্লকটি সম্পাদনা করার সময় উপযুক্ত ইয়াসনিপেট স্নিপেটগুলি লোড করা হত (এটি ডান ইন্ডেন্টেশনেরও যত্ন নেয়) ইত্যাদি)
— ভ্যানলাসার

হ্যাঁ, আমি ভ্যানলাসারের প্রতিক্রিয়াতে সম্মত। এটি ইমাস সমর্থিত যে কোনও ভাষার জন্য কাজ করে।
— dmg

ওহ সত্য। তুমি ঠিক. আমি আপনার প্রতিক্রিয়াটিকে সঠিক হিসাবে চিহ্নিত করি তাই আপনি কি কোনও প্রতিক্রিয়া রাখতে পারেন? আমি সে সম্পর্কে ভেবে দেখিনি: পি
— রাফা দে কাস্ত্রো

উত্তর:


7

2017 সালের 22 শে জানুয়ারী, আপনি যদি সেট করে থাকেন org-src-tab-acts-nativelyএবং org-src-fontify-nativelyতবে সোর্স ব্লকগুলিতে থাকা ট্যাব ব্লকের ভাষার স্নিপেটগুলি প্রসারিত করবে। আপনি yas-buffer-local-conditionব্লক মোডের স্নিপেটগুলি ছায়া থেকে org মোড স্নিপপেটগুলি থামাতে সেট করতে চাইতে পারেন :

(defun my-org-mode-hook ()
  (setq-local yas-buffer-local-condition
              '(not (org-in-src-block-p t))))
(add-hook 'org-mode-hook #'my-org-mode-hook)

আরও দেখুন https://github.com/joaotavora/yasnippet/issues/761 , https://github.com/joaotavora/yasnippet/pull/760


2

আমি এটির জন্য দুটি পদ্ধতি ব্যবহার করি। বাবেল শিরোনামগুলি তৈরি করতে আমাকে সহায়তা করার জন্য আমার কাছে কিছু org স্নিপেট রয়েছে। উদাহরণস্বরূপ, এটি বাবেলের জন্য সি ++ - 14 শিরোনাম তৈরি করে। আমি টাইপ <s C++_এবং প্রসারিত:

# -*- mode: snippet -*-
# name: c++_header
# key: C++_
# --
C++ :main no :flags -std=c++14 -Wall --pedantic -Werror :results output :exports both
#include <iostream>
int main()
{
   $0

   return 0;
}

তারপরে আমি সিসি ব্যবহার করি যা নির্দিষ্ট ভাষা মোডে স্যুইচ করে এবং সেই ভাষার জন্য স্নিপেট ব্যবহার করে। তারপরে org ফাইলে ফিরে আসতে সিসি ব্যবহার করুন। এটি ভালই কাজ করে.


0

এনপোস্টাভগুলি ইতিমধ্যে উত্তর হিসাবে, স্নিপেটগুলি একটি org- মোড ফাইলের মধ্যে ভাষার উপর নির্ভর করে আলাদাভাবে প্রসারিত করা হয়।

পাইথন বা ইমাস লিস্প কোড ব্লকের মধ্যে কেবল "কো" এবং [ট্যাব] টাইপ করুন।

#+BEGIN_SRC python :session *Python* :results output
co[tab]
# comment
#+END_SRC

#+BEGIN_SRC emacs-lisp :results value scalar
co[tab]
                                        ; comment
#+END_SRC
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.