উইনএন্টার, বুফএনটার, বুফআড, সিনট্যাক্স, ফাইল টাইপের ইভেন্টগুলির অর্ডার কী?


16

আমি autocmd.txtসহায়তার মধ্য দিয়ে গিয়েছি , তবে এ সম্পর্কিত তথ্য বিক্ষিপ্ত এবং সর্বদা উপস্থিত হয় না (উদাহরণস্বরূপ BufRead)।

যে কেউ এটিকে ভালভাবে বুঝতে পারে তারা এই ইভেন্টগুলির ক্রম তালিকাবদ্ধ করতে পারে - সম্ভবত প্যারান্থেসিতে চিহ্নিত শর্তাদি সহ

WinEnter   
BufEnter (if this window is for a different buffer than the current)

এবং তাই, সহজ রেফারেন্সের জন্য?

দ্রষ্টব্য (নীচে আমার নিজস্ব মন্তব্য থেকে অনুলিপি করা হয়েছে) : আমি সেগুলির পৃথক ব্যাখ্যা সম্পর্কে বলছি না, যা ঠিক আছে, তবে তারা কীভাবে একে অপরের সাথে ইন্টারঅ্যাক্ট করে এবং কীভাবে ঘটে সে সম্পর্কে। উদাহরণস্বরূপ, WinEnterবলেছেন, "উইম উইনএন্টার অটোকম্যান্ডস-এর পরে বুফএনটার অটোকমন্ডমগুলি কার্যকর করে", TabEnterবলে "" উইনন্টারকে ট্রিগার করার পরে এবং বুফএনটার ইভেন্টটি ট্রিগার করার আগে ", এটি অনেক জায়গায় ছড়িয়ে ছিটিয়ে রয়েছে। এবং কখনও কখনও এটি মোটেও উল্লিখিত হয় না (উদাহরণস্বরূপ, BufReadএটি বুফএন্টারের পরে বা এর আগে চলে কিনা তা উল্লেখ করে না - সম্ভবত কোনও বিশেষজ্ঞ সেখানকার অন্য কোনও তথ্য থেকে এটি আবিষ্কার করতে পারে, তবে আমি পারব না।
সুতরাং, আমার উদ্দেশ্য এখানে থেকে এই ইভেন্টগুলির ক্রমের জন্য একটি একক, সহজ রেফারেন্স তৈরি করুন যা অ বিশেষজ্ঞদের দ্বারা দ্রুত দেখা যায়,autocmd ইভেন্ট স্পেসিফিকেশন।


আমি মনে করি বেশিরভাগ ব্যাখ্যা ঠিক আছে, আপনি কী বুঝতে পারেন না তার একটি তালিকা দিতে পারেন?
nobe4

@ নোব 4 আমি তাদের পৃথক ব্যাখ্যার বিষয়ে কথা বলছি না, যা প্রকৃতপক্ষে ঠিক আছে, তবে তারা কীভাবে একে অপরের সাথে ইন্টারঅ্যাক্ট করে এবং কীভাবে ঘটে সে সম্পর্কে। উদাহরণস্বরূপ, WinEnterবলেছেন, "উইম উইনএন্টার অটোকম্যান্ডস-এর পরে বুফএনটার অটোকমন্ডমগুলি কার্যকর করে", TabEnterবলে "" উইনন্টারকে ট্রিগার করার পরে এবং বুফএনটার ইভেন্টটি ট্রিগার করার আগে ", এটি অনেক জায়গায় ছড়িয়ে ছিটিয়ে রয়েছে। এবং কখনও কখনও এটি মোটেও উল্লিখিত হয় না (উদাহরণস্বরূপ, BufReadএটি বুফএন্টারের পরে বা এর আগে চলে কিনা তা উল্লেখ করে না - সম্ভবত কোনও বিশেষজ্ঞ সেখানকার অন্য কোনও তথ্য থেকে এটি আবিষ্কার করতে পারে, তবে আমি পারি না
সূন্দর - মনিকা পুনরায় ইনস্টল করুন

সুতরাং, এখানে আমার উদ্দেশ্যটি হ'ল এই ইভেন্টগুলির ক্রমটির জন্য একটি একক, সাধারণ রেফারেন্স তৈরি করা যা অ-বিশেষজ্ঞদের দ্বারা আমাদের autocmdইভেন্টের বিশদগুলিতে আরও সুনির্দিষ্ট হওয়ার জন্য দ্রুত দেখা যায়।
- মনিকা পুনরায় ইনস্টল করুন

ঠিক আছে আমি প্রশ্নটি বুঝতে পারি নি। আপনি প্রতিটি ইভেন্ট লগ করার চেষ্টা করতে পারেন, এবং উপস্থিতির ক্রম দেখতে পারেন (যদি আপনি চান তবে একটি উত্তর দিতে পারি)
nobe4

আপনার অভিপ্রায়টি হ'ল এমন কাউকে এমন সাধারণ রেফারেন্স সরবরাহ করার বিষয়ে জিজ্ঞাসা করা,
কোনওটি

উত্তর:


11

@ সুন্দর উত্তরটি সম্পূর্ণ করতে:

আপনি লগিং ফাংশন দিয়ে ইভেন্টগুলির ক্রমটি লগ করতে পারেন:

augroup EventLoggin
  autocmd!
  autocmd BufNewFile * call s:Log('BufNewFile')
  autocmd BufReadPre * call s:Log('BufReadPre')
  ...
  autocmd User * call s:Log('User')
augroup END

function! s:Log(eventName) abort
  silent execute '!echo '.a:eventName.' >> log'
endfunction

পুরো ফাইলটি এখানে দেখুন: https://gist.github.com/nobe4/aa8313fe98ca8821afad

আপনি তখনই করতে পারেন tail -f logএবং আপনি একটি আসল-সময় স্বতঃসমানু ইভেন্ট ইভেন্ট ক্রিয়াকলাপ পাবেন।


3
আমি এটির জন্য একটি সাধারণ প্লাগইন তৈরি করেছি, এখানে দেখুন
কার্ল ইংভে লেরভেগ

6
নোট করুন যে @ কার্লYngveLervåg এর প্লাগইনটিকে অন্য পথে নিয়ে গেছে । কার্লকে ধন্যবাদ!
লুক হার্মিটে

লক্ষ্য এবং মন্তব্য করার জন্য ধন্যবাদ, লুক! (দ্রষ্টব্য: আমি মৃত লিঙ্কটি ঠিক করতে আমার মন্তব্য আপডেট করতে পারছি না, দুঃখিত!)
কার্ল ইংভে লার্ভ

10

আমি বিভিন্ন কীওয়ার্ডের সেট সহ এটির জন্য গুগল করার চেষ্টা করেছি এবং এই ফলাফলের সাথে এই জাতীয় একটি প্রয়াসে সোনার আঘাত করেছি: http://www.ibm.com

বিশেষতঃ এই অংশটি বর্তমান প্রশ্নের সাথে প্রাসঙ্গিক:

উদাহরণস্বরূপ, আপনি যদি ভিম শুরু করেন, ডেমো.টিএসটিএস্ট নামের একটি ফাইল সম্পাদনা করুন, সন্নিবেশ মোডে অদলবদল করুন, কিছু পাঠ্য টাইপ করুন, ফাইলটি সংরক্ষণ করুন এবং তারপরে প্রস্থান করুন, আপনার ভিম সেশনটি তালিকাভুক্ত 1-তে প্রদর্শিত কিছু ইভেন্টের মতো সিরিজ পেয়েছে।

তালিকাভুক্ত 1. একটি সাধারণ ভিম সম্পাদনা সেশনে ইভেন্ট ক্রম

> ভিম

  1. বুফউইনএন্টার (একটি ডিফল্ট উইন্ডো তৈরি করুন)
  2. বুফএন্টার (একটি ডিফল্ট বাফার তৈরি করুন)
  3. VimEnter (Vim অধিবেশন শুরু করুন) : ডেমো.টিএসটি সম্পাদনা করুন
  4. বুফউইউ (ডেমো.টিএসটিএস সহ একটি নতুন বাফার তৈরি করুন)
  5. বুফএড (সেশনের বাফার তালিকায় সেই নতুন বাফার যুক্ত করুন)
  6. বুফলিভ (ডিফল্ট বাফার থেকে প্রস্থান করুন)
  7. বুফউইনলিভ (ডিফল্ট উইন্ডো থেকে প্রস্থান করুন)
  8. বুফউনলোড (বাফার তালিকা থেকে ডিফল্ট বাফার সরান)
  9. বুফডিলিট (ডিফল্ট বাফারটিকে বাতিল করুন)
  10. BufReadCmd (নতুন বাফারে ডেমো টেক্সটের প্রসঙ্গগুলি পড়ুন)
  11. বুফএন্টার (নতুন বাফারটি সক্রিয় করুন)
  12. বুফউইনএন্টার (নতুন বাফারের উইন্ডোটি সক্রিয় করুন) i
  13. InsertEnter (সন্নিবেশ মোডে অদলবদল)

এটি এখনও সম্পূর্ণরূপে বিস্তৃত নয় (উদাহরণস্বরূপ BufReadওরকের কোনও উল্লেখ নেই BufReadPost, তবে আমি ধরে নিচ্ছি এটি আসবে BufReadCmd) তবে এটি একটি দুর্দান্ত শুরু excellent

তথ্যের একটি গুরুত্বপূর্ণ অনুপস্থিত অংশটি হ'ল কীভাবে FileTypeএবং Syntaxঅটোম্যাক্ট ইভেন্টগুলি এর সাথে ইন্টারঅ্যাক্ট করে (ধরে নিচ্ছে filetypeএবং syntaxইতিমধ্যে চালু আছে এবং একটি নতুন ফাইল খোলা হয়েছে যার ফাইল টাইপ এবং বাক্য গঠন ভিমের কাছে পরিচিত)।


7
আপনি কেবলমাত্র একটি ফাইল সম্পাদনা করলেই এটি সত্য। জনপ্রিয় বিশ্বাসের বিপরীতে, autocmdএকাধিক ফাইল জুড়ে প্রয়োগ করার ক্রমটি সঠিকভাবে সংজ্ঞায়িত হয় না । এমনকি একটি একক ফাইলের সাথেও, ভিমের সংস্করণ দিয়ে অর্ডার কয়েকবার পরিবর্তন হয়েছে। প্লাগিনগুলির জন্য এটি (এবং করতে) যে সমস্যাগুলি দেখা দিতে পারে সেগুলি ভীম_দেবীর মৃত্যুর জন্য আলোচিত হয়েছে এবং সামগ্রিক নকশা ভবিষ্যদ্বাণীমূলক ভবিষ্যতে পরিবর্তন ঘটবে না। একটি বিস্তৃত বোঝার জন্য, ভাল, apply_autocmdsভিম 7.4.827 জন্য উত্স মধ্যে 139 টি ঘটনা আছে । সে জন্য শুভকামনা।
সাতো ক্যাটসুরা

@ স্যাটোক্যাটসুরা এই ধরনের বিশেষজ্ঞের মতামতটি আমি খুঁজছিলাম, ধন্যবাদ! আপনি (ভিমের উত্সগুলিতে ডুব দেওয়া ব্যতীত) এ সম্পর্কে আরও জানতে পরামর্শ দিতে পারেন এমন কোনও রেফারেন্স রয়েছে কি? এছাড়াও, এটি পুরোপুরি আপনার আগ্রহের ক্ষেত্রের বাইরে থাকতে পারে, তবে 'নিওভিম'-ভূমিতে জিনিসগুলি আরও ভালভাবে সংজ্ঞায়িত করা থাকলে আপনার কী ধারণা আছে?
- মনিকা পুনরায় ইনস্টল করুন

আমি ভয় করি আমি কোনও নির্দিষ্ট রেফারেন্স জানি না don't autocmdভিমের মধ্যে একটি জগাখিচুড়ি, আমি মনে করি না যে কয়েকটি সাধারণ মামলা বাদে একটি নির্দিষ্ট রেফারেন্স লিখতে আসলে সম্ভব । আমি মনে করি প্রত্যেকে "সাধারণত কাজ করে" এর জন্য স্থির হয়ে যায়, এবং যখন তা হয় না তখন শ্রোগ্য হয়। নিওভিম হিসাবে, আমি ব্যক্তিগতভাবে প্রকল্প সম্পর্কে মিশ্র অনুভূতি আছে। আমি সম্প্রতি কোডটির দিকে নজর দিইনি; আমি মনে করি আপনি তাদের ইস্যু ট্র্যাকার সম্পর্কে একটি উত্তর পেতে পারেন।
সাতো ক্যাটসুরা

এছাড়াও "ইভেন্ট" এর শব্দটি নিজেই খুব ঠিক করা অর্ডারটির ধারণাটি বিকৃত করে।
ভ্যানলেসার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.