উপযুক্ত মোডে একটি 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.