কীভাবে # + BEGIN_SRC # + END_SRC এর জন্য একটি শর্ট-কাট সেট করবেন?


14

আমি org- মোড ম্যানুয়ালটি পড়েছি তবে sertোকানোর জন্য একটি শর্ট কাট পাইনি:

#+BEGIN_SRC 
#+END_SRC

আমার ধারণা আমি একটি শর্টকাট সেট করতে ~ / .emacs এ একটি কনফিগারেশন তৈরি করতে হবে? বা, একটি শর্টকাট আছে কিন্তু আমি জানতাম না?

আমি ই-এমকেসে আর ব্যবহার করি। এটি তৈরি করার জন্য আলাদা শর্টকাট তৈরি করার কোনও উপায় আছে কি?

#+BEGIN_SRC R
#+END_SRC

উত্তর:


22

অর্গ-মোডে সোর্স ব্লক serোকানোর জন্য অন্তর্নির্মিত প্রক্রিয়া রয়েছে। অর্গ ম্যানুয়ালটিতে সহজ টেম্পলেটগুলি দেখুন । ডিফল্ট কনফিগারেশনটি বেশ কয়েকটি # + ব্লকগুলির জন্য টেমপ্লেট সরবরাহ করে এবং আপনি নিজের পছন্দ অনুসারে নিজের যোগ করতে পারেন‘org-structure-template-alist’

উদাহরণস্বরূপ, একটি org বাফারটি খুলুন এবং <sTABএকটি BEGIN / END_SRC ব্লক sertোকাতে টাইপ করুন ।


13
Org সংস্করণ 9.2 এর জন্য, এটি বাক্স থেকে আমার পক্ষে কাজ করে না। (require 'org-tempo)আপনার নিজেরটি যুক্ত করা দরকার .emacs। এছাড়াও, এখানে ইজি টেমপ্লেটগুলির একটি আপডেট লিংক রয়েছে -> orgmode.org/manual/Easy-templates.html
JMT2080AD

@ জেএমটি 2080 এআরড 9.2 এর নতুন কার্যকারিতা চালু করেছে যা এটি সম্বোধন করে। আমার উত্তরটি নীচে দেখুন: emacs.stackexchange.com/a/47370/15177
Lorem Ipsum

এটা কি , i bআছে spacemacs?
জেসন গোল

16

[এটি @glucas এবং @manandearth এর উত্তরের একটি সংযোজন / স্পষ্টতা - এটি নিজের পক্ষে দাঁড়ায় না]]

নোট করুন যে অরগ-মোডের সাম্প্রতিক বিকাশের সংস্করণগুলিতে (> = 9.2) (এবং ভবিষ্যতে স্থিতিশীল সংস্করণগুলিতে জিনিস পরিবর্তন না হয়) org-structure-template-alistএর ধরণ বদলেছে। অন্তর্নির্মিত ইজি-টেম্পলেটগুলি tempoপ্যাকেজের উপর ভিত্তি করে আরও জেনেরিক ব্যবস্থার পক্ষে ছেড়ে দেওয়া হয়েছে । দুর্ভাগ্যক্রমে, নতুন প্রক্রিয়া কেবলমাত্র পরে একক অক্ষর সংক্ষেপণের অনুমতি দেয় <, সুতরাং ওপি <sযে #+BEGIN_SRC...#+END_SRCস্ট্রিংয়ের অনুরোধ করছে তার স্ট্রিংয়ে প্রসারিত হবে , তবে <el@ ম্যানডিয়ার্থের উত্তরের মতো জিনিসগুলি কার্যকর হবে না । এটি এখনও একটি কাজ চলছে, সুতরাং জিনিসগুলি পরিবর্তিত হতে পারে, তবে আপনি যদি বহু-বর্ণের <XXXসংক্ষিপ্তসারগুলি নিয়ে যান তবে আপনি যখন org- মোডকে এমন সংস্করণে আপগ্রেড করবেন তখন তাদের বিরতি দেওয়ার জন্য প্রস্তুত থাকুন।

এছাড়াও আরও একটি প্রক্রিয়া রয়েছে: আপনি যে ধরণের ব্লক sertোকাতে চান তার জন্য C-c C-,আবদ্ধ হয় org-insert-structure-template(একটি মেনু যা সমস্ত উপলব্ধ ব্লককে তালিকাবদ্ধ করে এবং আপনাকে একটি একক কী প্রেসের সাহায্যে চয়ন করতে দেয়)। এর সুবিধাটি হ'ল এটি begin/endকোনও অঞ্চলকে ঘিরে রাখবে , সুতরাং আপনি যদি ইতিমধ্যে কিছু গুছা টাইপ করেছেন এবং আপনি এটি একটি ব্লকে মুড়তে চান, আপনাকে কেবল অঞ্চল হিসাবে নির্বাচন করতে হবে এবং C-c C-.তারপরে একটি একক চরকে অনুসরণ করতে হবে type ব্লকের ধরণ চয়ন করতে।

এই নোটটি দেখুন [fn: 1], (নতুন) ফাংশনের ডক স্ট্রিং org-insert-structure-templateএবং ফাইল org-tempo.el

[fn: 1] লিঙ্কটি ভুল হতে পারে কারণ এটি কোনও ফাইলের একটি নির্দিষ্ট লাইন নম্বরকে নির্দেশ করে যা (না, হবে!) পরিবর্তিত হতে পারে। যদি লিঙ্কটি আপনাকে সঠিক জায়গায় না নিয়ে যায় তবে স্ট্রিং "স্ট্রাকচার টেম্পলেট সম্প্রসারণ" সন্ধান করুন - এবং এই উত্তরটি সম্পাদনা করতে এবং লাইন নম্বর ঠিক করতে নির্দ্বিধায় - ধন্যবাদ!


একটা জিনিষ আমি পছন্দ C-c C-,উপর <sএটি আপনি কেবল টাইপ করে একটি টেক্সট এবং গঠন টেমপ্লেট প্রায় "মোড়ানো" এটি নির্বাচন করতে দেয় C-c C-,। আপনার সাথে <sটেমপ্লেটটি (যেমন, #+END_SRC) শেষ হওয়া লাইনটি কেটে পেস্ট করতে হবে ।
SaMeji

হ্যাঁ, আমি উত্তরে তা উল্লেখ করেছি।
নিকড

14

উৎস ব্লক আচরণ অর্গ 9.2 পরিবর্তন । সংক্ষিপ্তকরণ <sআর ডিফল্টরূপে কাজ করে না। পরিবর্তে, আপনি C-c C-,কোন কল ব্যবহার করুন org-insert-structure-template

উত্স ব্লক যুক্ত করা হচ্ছে

টিপুন C-c C-,একটি ডায়ালগ উপস্থিত করে। টিপুন TABএবং তারপরে প্রবেশ করুন src R। এই টিপে একটি উৎস ব্লক এবং রাখে দ্বিতীয় লাইন শুরুতে আপনার কার্সার (দিন |হতে বিন্দু ):

#+begin_src R
|#+end_src

তারপরে ব্লকের ভিতরে সম্পাদনা করতে, C-oএকটি নতুন লাইন খোলার জন্য টিপুন ।

আপনি একটি এন্ট্রি যোগ করে একটি টেম্পলেট সংরক্ষণ করতে পারেন org-structure-template-alist। নিম্নলিখিতটি আপনার কোথাও রাখুন init.elবা এটি ব্যবহার করে চালান C-x C-e:

(add-to-list 'org-structure-template-alist '("r" . "src R"))

এখন আপনি যখন করবেন তালিকার C-c C-,জন্য একটি এন্ট্রি দেখতে পাবেন r। আপনি কেবল প্রতিস্থাপন যেমন পাইথন, রুবি, ইত্যাদি অন্যান্য ভাষায়, একই পদ্ধতির অনুসরণ করতে পারেন CDR মধ্যে ডটেড যুগল ( "SRC কিছু" অংশ) উপরে।

উপরন্তু, উৎস ব্লক বিভেদক মধ্যে একটি লাইন সন্নিবেশ জন্য, আপনাকে ব্যবহার করে একটি newline অক্ষর সন্নিবেশ করাতে পারেন C-q C-j। অর্থাৎ টাইপ src R C-q C-jমধ্যে CDR এর ডটেড যুগল উপরে। ফলাফলটি দেখতে পাবেন:

(add-to-list 'org-structure-template-alist '("R" . "src R
"))

এখন যখন আপনি টিপুন R, এ গিয়ে Emacs উৎস ব্লক ঢুকিয়ে একটি নতুন লাইন তাদের মধ্যে আপনার কার্সার করা (দেব |হতে বিন্দু ):

#+begin_src R
|
#+end_src

4
<sএখনও বিদ্যমান বাঁধাই, আপনি শুধু অন্তর্ভুক্ত করতে হবে (require org-temp)এটি সক্ষম করতে আপনার Init হবে।
টাইলার

(require 'org-tempo)
টাইপ

8

কোড ব্লকগুলির জন্য কী বাঁধাইয়ের জন্য babel-orgনিম্নলিখিতগুলি <rপরে বাঁধতে চেষ্টা করুন <tab>:

;; add <r for R expansion
(add-to-list 'org-structure-template-alist
         '("p" "#+BEGIN_SRC r :results output org drawer\n?\n#+END_SRC"
           "<src lang=\"r\">\n?\n</src>"))

আপনি উত্সটি ইএসএসেও সংশোধন করতে পারেন।

পাইথন ব্লক কোডে <pএকটি পরে বাঁধাই <tab>, উদাহরণস্বরূপ:

;; add <p for python expansion
(add-to-list 'org-structure-template-alist
         '("p" "#+BEGIN_SRC python :results output org drawer\n?\n#+END_SRC"
           "<src lang=\"python\">\n?\n</src>"))

একটি ইম্যাক্স-লিস্প সেট <elপরে একটি <tab>হবে:

;; add <el for emacs-lisp expansion
(add-to-list 'org-structure-template-alist
         '("el" "#+BEGIN_SRC emacs-lisp\n?\n#+END_SRC"
           "<src lang=\"emacs-lisp\">\n?\n</src>"))

অন্যান্য দরকারী বাইন্ডিংগুলি হ'ল org-mode:

(add-to-list 'org-structure-template-alist
         '("ao" "#+attr_org: " ""))

(add-to-list 'org-structure-template-alist
         '("al" "#+attr_latex: " ""))

(add-to-list 'org-structure-template-alist
         '("ca" "#+caption: " ""))

(add-to-list 'org-structure-template-alist
         '("tn" "#+tblname: " ""))

(add-to-list 'org-structure-template-alist
         '("n" "#+name: " ""))

(add-to-list 'org-structure-template-alist
         '("o" "#+options: " ""))

(add-to-list 'org-structure-template-alist
         '("ti" "#+title: " ""))

আমি উত্সটি ইএসএসেও সংশোধন করতে পারলাম সে সম্পর্কে আপনি আরও কিছু ব্যাখ্যা করতে পারেন? ধন্যবাদ!
জিয়ানওয়েন চেন

ব্যাবেল আর পৃষ্ঠার এই লিঙ্কটি একবার দেখুন, আমি পাইথন এবং জুপিটার নোটবুক ব্যবহার করি einযার মাধ্যমে আরও সমর্থন করা উচিত।
manandearth

Org-version> 9.2 এর জন্য বাক্য (add-to-list 'org-structure-template-alist '("p" . "src python"))
গঠনটি

2

YASnippet Emacs প্যাকেজটি দেখুন। এটি আপনাকে কিছু কীওয়ার্ড এবং টিএবির পরে কোড স্নিপেট যুক্ত করতে দেয়। এটি org মোডের মধ্যে এবং আর স্ক্রিপ্টগুলির সাথে উভয়ের পক্ষে অনেক বেশি সহজ এবং দরকারী। আপনার .emacs.d / স্নিপেটস / ইএসএস-মোডে (এবং একটি org- মোডের জন্য একটি) ফোল্ডার থাকা উচিত যেখানে আপনি ফাইলগুলি সংরক্ষণ করুন:

    # -*- mode: snippet -*-
    # name: in
    # key: in
    # -- 
    %in% 

আপনি যখন ট্যাবে টাইপ করেন এটি% তে% তে লেগে থাকে, একইভাবে:

# -*- mode: snippet -*-
# name: source_r
# key: srcr_
# --
#+BEGIN_SRC R 
$0
#+END_SRC

https://www.emacswiki.org/emacs/Yasnippet

https://joaotavora.github.io/yasnippet/snippet-development.html


1

Org- মোডে একটি নতুন কী সংমিশ্রণ যুক্ত করতে, আপনি ব্যবহার করতে পারেন

(define-key org-mode-map "\C-cs" 
    (lambda()(interactive)(insert "#+BEGIN_SRC R\n#+END_SRC")))

আপনি টিপলে এটি স্ট্রিংটি সন্নিবেশ করবে C-cs

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