ইয়াসনিপেট এবং পলিমোড দিয়ে আর মার্কডাউনে কোড খণ্ড .োকান


10

আমি আর মার্কডাউন ফাইলটিতে কোড খণ্ডগুলি sertোকানোর জন্য একটি ইয়াসনিপেট লেখার চেষ্টা করছি। আমি একক ফাইলে একাধিক বড় মোড (মার্কডাউন, ইএসএস [এস]) রাখতে পলিমোড ব্যবহার করি। এটি আমার স্নিপেট:

# -*- mode: snippet -*-
# name: chunk
# key: chunk
# --
\`\`\`{r $1}
$0
\`\`\`

আমি যখন মার্কডাউন মোডে স্নিপেটটি একটি .আরএমডি ফাইলে সন্নিবেশ করানোর চেষ্টা করি তখন আমি এই ত্রুটিটি পাই:

Error in post-command-hook (yas--post-command-handler): (error "Marker points into wrong buffer" #<marker at 7 in test.Rmd>)

স্নিপেট উপস্থিত হয় এবং আমার কার্সারটি সঠিক জায়গায় রয়েছে (দ্বিতীয় কোঁকড়া ধনুর্বন্ধকের ঠিক আগে):

```{r }

```

আমি যখন ট্যাবটি হিট করি তখন আমি নিম্নলিখিতগুলি পাই:

yas-next-field: Wrong type argument: overlayp, nil

আমি অনুমান করছি যে আমি পলিমোডের সাথে একটি মিথস্ক্রিয়াতে চলেছি: আমি স্নিপেটটি sertোকানোর সময় আমি মার্কডাউন মোডে আছি, তবে পলিমোড কোড খণ্ডের বিষয়বস্তুগুলিকে ESS [S] মোডে রূপান্তর করে। দেখে মনে হচ্ছে অবশেষে পলিমোডে একটি নতুন অংশ toোকানোর জন্য একটি আদেশ থাকবে, তবে এর মধ্যে এই স্নিপেটটি কাজ করার কোনও উপায় আছে কি?

উত্তর:


6

আমি একটি অনুরূপ সমস্যা গাড়ীতে আঘাত, এবং একটি অনুষঙ্গহীন ফাংশন লিখেছিলেন মধ্যে অদ্ভুত কথাবার্তাও কাছাকাছি পেতে yasnippetএবং polymode

নীচের ফাংশনটি আপনি যে স্নিপেটের চেষ্টা করেছেন তার আচরণের অনুকরণ করে, প্রথমে শিরোনাম তথ্যের জন্য অনুরোধ জানানো হয়, যা আপনার $1এ sertedোকানো হয় এবং তারপরে আপনাকে খণ্ড দেহে ফেলে দেবে (আপনার $0):

(defun tws-insert-r-chunk (header) 
  "Insert an r-chunk in markdown mode. Necessary due to interactions between polymode and yas snippet" 
  (interactive "sHeader: ") 
  (insert (concat "```{r " header "}\n\n```")) 
  (forward-line -1))

এর জন্য ধন্যবাদ. আমি একজন উত্সাহী ইম্যাক্স ব্যবহারকারী কিন্তু লিস্পের সাথে পরিচিত, আপনি কীভাবে এই ফাংশনটি আরএমডি ওয়ার্কফ্লো বাস্তবায়িত করবেন তা বর্ণনা করতে পারবেন ??
শ্যান্ডলার

4
আপনার .emacs ফাইলে কোডটি রাখুন, তাই আপনি যখনই Emacs শুরু করবেন তখন এটি লোড হয়ে যায়। তারপরে আপনি এটি মাধ্যমে কল করতে পারেন M-x tws-insert-r-chunk। সম্ভবত আপনি এই কমান্ডটি একটি কীবোর্ড শর্টকাটে আবদ্ধ করতে চান - কী-বাইন্ডিং সেট করার বিষয়ে এখানে প্রচুর প্রশ্ন রয়েছে।
টাইলার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.