আমার আরসি ফাইলে কাস্টম "সেট" কমান্ডগুলি তৈরি করা এবং কোনও মডেলিন থেকে তাদের কল করা কি সম্ভব?


10

আমি সম্প্রতি একটি প্রশ্ন জিজ্ঞাসা করেছি যার মধ্যে আমি জানতে পেরেছি যে :setভিএম মডেলিনগুলিতে পরামিতিগুলি ব্যতীত আর কোনও কিছু দেওয়া সম্ভব নয় । আমি সুরক্ষা সংক্রান্ত উদ্বেগগুলি বুঝতে পারি, তবে আমি ভাবছি যে এটির আর কোনও উপায় না থাকলে। একজন তাই সাম্প্রতিক প্রশ্ন একটি কোডিং মান মেনে চলতে পরামিতি বৃহৎ ব্যাচ সেট করার বিষয়ে চিন্তা-হবে পেয়েছিলাম এটি একটি আমার RC ফাইলে যে modeline থেকে চালু বা বন্ধ করা যাবে "গ্রুপ" define করা সম্ভব হতে পারে?

সিউডো কোডটি ক্ষমা করুন, তবে কোনও সেট প্যারামিটার থেকে ট্রিগার করা কোনও ফাংশন তৈরির উপায় আছে?

set_function! codestyle()
    if &1 == 'psr-2'
        set ts=4
        set sw=4
    endfi
    if &1 == 'drupal7'
        set ts=2
        set sw=2
        iab D8 Drupal 8
    endif
endset_function

এটি তখন কোনও মডেলিন দ্বারা ট্রিগার হতে পারে

# vim: codestyle=psr-2

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


এর জন্য আপনার নিজের বিকল্পটি সংজ্ঞায়িত করতে হবে set;
আফাইক, ভিমে এটি

@ কারপেটস্মোকার এর অর্থ কি এই প্রশ্নের উত্তর হ'ল ভিমস্ক্রিপ্টটি মোড়ানো বা অন্যথায় অন্তর্নির্মিত কার্যগুলি প্রসারিত করতে পারে না?
কালেব

উত্তর:


10

আপনার কয়েকটি পছন্দ আছে।

  1. প্রথমটি: আপনি নিজের মতো করে মডেলিন ডিকোডার লিখতে পারেন, অর্থাৎ একটি প্লাগইন। এটি আমি আপনার অন্যান্য প্রশ্নের যে উত্তর দিয়েছি তার একটি খুব অনুরূপ উত্তর।

    প্রকৃতপক্ষে, আমরা নতুন ভিআইএম বিকল্পগুলি যোগ করতে পারি না (এটি দিয়ে সেট করা যায় :set) তবে আমরা নতুন ভেরিয়েবলগুলি যুক্ত করতে পারি। এবং আমরা ভিএম অপশন সেট করার চেয়ে বেশি কিছু করার জন্য স্ট্যান্ডার্ড মডেলিনগুলি ব্যবহার করতে পারি না।

  2. দ্বিতীয় সম্ভাবনা: একটি ফাংশন বা অন্যটিতে কল করার জন্য লেট-মডেলিনটি কলব্যাক বৈশিষ্ট্যের মাধ্যমে ব্যবহার করা যেতে পারে । CodeStyle()আপনার .vimrcবা একটি (অটোল্যাড?) প্লাগইনে আপনার ফাংশন থাকতে পারে , তারপরে আপনার ফাইলগুলিতে রয়েছে:

    # VIM: let b:codestyle='psr-2' b:ModeLine_CallBack='CodeStyle'
    

    তবে যদি আপনার প্রয়োজন হয় তবে এই সুনির্দিষ্টভাবে যদি আপনি লোকাল_ভিম আরসিআর মতো প্লাগইন না চান তবে নিজের মডেলিনের মতো ডিকোডার লিখুন।

  3. THIRD এবং আইএমও, ভাল যে ক্ষেত্রে পছন্দ একটি নতুন filetype: এবং সেট সংজ্ঞায়িত করতে হবে 'ft'সঙ্গে modelines এই filetype: হবে: # vim: set ft=php.psr2phpগ্লোবাল নরমাল ফাইল টাইপ হওয়ার সাথে (আমি এটি সম্পর্কে নিশ্চিত নই) এবং psr2বিশেষায়িত ফাইল টাইপ যা আপনার কোডিং শৈলীর সাথে মিলে যাবে। আপনাকে দুটি ftplugins সংজ্ঞায়িত করতে হবে: ftplugin / psr2.vim এবং এবং ftplugin / drupal7.vim যেখানে আপনি নিজের কল করবেন :setlocal(এবং না :set)।


6
বিকল্প 3 এর জন্য উত্সাহিত I আমি মনে করি এটি সর্বাধিক শব্দার্থগতভাবে উপযুক্ত এবং ভিম-উপযোগী পদ্ধতি।
tommcdo
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.