আমি কীভাবে একই স্নিপেটের জন্য বেশ কয়েকটি ট্রিগার ব্যবহার করতে পারি?


11

আমি একটি স্নিপেট তৈরি করেছি যা আমি বিভিন্ন ট্রিগার দিতে চাই, তাই বলার পরিবর্তে triggerআমি এটি দিয়েও ট্রিগার করতে চাই myothertrigger:

snippet trigger "just an example" 
my text ...
endsnippet

স্নিপেটটি অনুলিপি করার পরিবর্তে এটি করার সহজ উপায় কি আছে?

সম্পাদনা: পরিষ্কার হওয়ার জন্য, আমি UltiSnips ব্যবহার করছি , তবে আরও ভাল প্লাগইন থাকলে আমি এটিতে সন্ধান করতে পারি।


2
উত্তরটি আপনি যে স্নিপেট ইঞ্জিনটি ব্যবহার করছেন তার উপর নির্ভর করবে। মু-টেমপ্লেটের সাহায্যে আপনি অন্যের একটি স্নিপেট অন্তর্ভুক্ত করতে পারতেন, স্নিপেট ফাইলটি অন্য কোনও নামে কপি করতে বা কেবল একটি প্রতীকী লিঙ্ক তৈরি করতে পারেন। আমি নিশ্চিত নই যে অন্যান্য ইঞ্জিনগুলি এটির অনুমতি দিতে পারে। যদি কোনও দিন তারা "কলার" স্নিপেট থেকে স্নিপেট অন্তর্ভুক্তি সমর্থন করতে আসে। সম্ভবত আপনি আপনার স্নিপেটের মূলটি একটি অজগর বা ভিএমএল ফাংশনে সংজ্ঞায়িত করতে পারেন এবং আপনার স্নিপেটগুলি একই ফাংশনটিতে কল করতে পারেন?
লুক হার্মিটে

3
প্রশ্নটি ট্যাগ হিসাবে রয়েছে plugin-ultisnips, তাই আমি ধরে নেব যে ওপি আল্টিসনিপ ব্যবহার করছে।
চিরসবুজ

আমার ভুল ^^ '(μTemplate শুধু খুব, বিভিন্ন পুরোনো, এবং (আমি এটা বজায় রাখার করছি) আমার চাহিদা দিকে আরো অনুপযোগী উত্তম: আমি রুট স্নিপেট করেছি যে ফাংশন যে আমি উত্পাদন করতে বিভিন্ন বিকল্প কল করতে পারেন মতো আচরণ ভিন্ন তবে খুব কাছের জিনিস। সি ++ এ আমার কাছে বেস-ক্লাস, মান-শ্রেণি, ব্যতিক্রম-শ্রেণির জন্য স্নিপেট রয়েছে ... যা সমস্ত শ্রেণি-স্নিপেট + ফাংশন-স্নিপেট + এর একই সেটের উপর নির্ভর করে ... তবে আমি যেমন বলেছি, বাক্য গঠনটি সম্পূর্ণ আলাদা, এবং স্থানধারক বৈশিষ্ট্যটি আপনি যেটি ব্যবহার করেছেন তার চেয়ে কম
আর্গোনমিক you're

2
আপনি যদি শোগোর neosnippetপ্লাগইনে স্যুইচ করেন তবে এর সিনট্যাক্সটির aliasখুব প্রয়োজনে এই কীওয়ার্ড রয়েছে ।
ভ্যানল্যাসার

উত্তর:


8

বর্তমানে UltiSnips এ করার কোনও উপায় নেই। যদিও এটির জন্য গিথুবে একটি মুক্ত বৈশিষ্ট্য-অনুরোধ রয়েছে । ব্যক্তিগতভাবে, আমি এখানেও নির্দেশিত অনুসারে ট্রিগারগুলির জন্য একটি উপনাম কার্যকারিতা চাই ।

আসুন আশা করি স্যারওয়ার (আলটিসনিপসের রক্ষণাবেক্ষণকারী )ও এটি ভাববে এবং ভবিষ্যতে এটি অন্তর্ভুক্ত করবে :)


5

যদিও এলিয়াসগুলির জন্য কোনও নির্দিষ্ট বাক্য গঠন নেই তবে আপনি একই প্রভাবটি ব্যবহার করে অর্জন করতে পারেন post_jump:

# c.snippets
global !p
def expand(snip):
    if snip.tabstop != 1:
        return
    vim.eval('feedkeys("\<C-R>=UltiSnips#ExpandSnippet()\<CR>")')
endglobal

snippet incstdlib "#include <stdlib.h>" !b
#include <stdlib.h> /* exit(), malloc(), free() */
$0
endsnippet

post_jump "expand(snip)"
snippet incexit "#include <stdlib.h>" !b
incstdlib$1
endsnippet

এই স্নিপেট ফাইলে ট্রিগারটি ট্রিগারটির incexitএকটি "উরফ" incstdlib। বাস্তবে incexitপ্রসারিত হয় incstdlibএবং expand(snip)যখন UltiSnips ট্যাবস্টপে চলে আসে তখন তাকে ডাকা হয় $1expand(snip)শুধু VimScript ফাংশন executes UltiSnips#ExpandSnippetযা প্রসারিত হবে incstdlibএটা চূড়ান্ত প্রসারিত ফর্ম মধ্যে #include <stdlib.h>

এর পরিবর্তে অন্য বিকল্পগুলি হ'ল UltiSnips এর পরিবর্তে নিয়মিত এক্সপ্রেশন সমর্থন ব্যবহার করুন:

snippet "inc(true|false|bool)" "#include <stdbool.h>" r
#include <stdbool.h> /* true, false */
endsnippet

এখানে আপনি তিনটি ট্রিগার থাকবে inctrue, incfalseএবং incboolযে কার্যকরভাবে একই। একমাত্র অপূর্ণতা হ'ল YouCompleteMe এর মতো স্বতঃপূরণ প্লাগইনগুলি সেগুলি স্বতঃপূরণ করবে না।

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