কাস্টম ভিএম হাইলাইটিং


12

আমি এই মুহূর্তে কিছু এক্সএমএল সম্পাদনা করছি এবং ফিরে আসার জন্য আমি নিজেকে কিছু মন্তব্য রেখে চলেছি। এটার মত

<!-- Question: bla bla -->

আমি এই মুহুর্তে ভিমের সাথে সম্পাদনা করছি এবং আমি এখনই প্রশ্নটি তুলে ধরতে চাইব যাতে আমি খুব সহজেই আমার কোডটি সন্ধান করতে এবং আমার দেখতে সমস্ত জায়গাগুলি খুঁজে পেতে পারি। আমি জানি আমার ভিএমআরসি-তে আমার কিছু যুক্ত করা দরকার তবে আমি মনে করি যে আমি সম্ভবত ভুল জিনিসটি অনুসন্ধান করছি।

হালনাগাদ

আমি .vimrcএটি আমার মধ্যে রাখার চেষ্টা করেছি কিন্তু এর কোনও ফল হয়নি:

syn keyword JakeAnnotation      Question

hi JakeAnnotation gui=bold term=bold cterm=bold

আপডেট 2

আসলে আমি দেখতে পাচ্ছি যে আমি এর আগে যা করেছি তার কিছু প্রভাব ছিল কারণ যখন আমি এটি করি:

:hi

এটি আমাকে হাইলাইট করছে এমন সমস্ত জিনিস দেখায় এবং এন্ট্রিগুলির একটি:

JakeAnnotation xxx term=bold cterm=bold ctermbg=6

( এবং xxx সঠিকভাবে ফর্ম্যাট করা হয়েছে )

এটি আমাকে বিস্মিত করার দিকে নিয়ে যায় যে আমি কেবল প্রশ্নের সঠিকভাবে সংজ্ঞা দিচ্ছি না। প্রশ্ন নিজেই এক লাইনে থাকা প্রয়োজন?

আপডেট 3

ঠিক আছে তাই 22303 ব্যবহারকারীর পোস্টে আমার এই কাজ করছে:

highlight MyQuestion cterm=bold term=bold ctermbg=blue ctermfg=black
match MyQuestion /Question/

তবে আমি সন্দেহ করি যে আপনার প্রতি ফাইল প্রতি একটি ম্যাচ করার অনুমতি রয়েছে are কারণ আমি যখন এটি করি:

highlight MyQuestion cterm=bold term=bold ctermbg=blue ctermfg=black
match MyQuestion /Question/
highlight MyRelook cterm=bold term=bold ctermbg=blue ctermfg=black
match MyRelook /Another look/

প্রথমটি কাজ বন্ধ করে দেয়। (তবে দ্বিতীয়টি কাজ করে)।

উত্তর:


9

আমি মনে করি আমরা আপনাকে এমন কিছু উত্তর দিচ্ছি যা পুরোপুরি সঠিক নয়। এখানে চেষ্টা করার মতো এমন কিছু যা আমি আমার মেশিনে পরীক্ষা করেছি।

প্রথমে আপনার নিজস্ব নতুন হাইলাইট গ্রুপ তৈরি করুন:

:highlight MyQuestions guifg=red guibg=green

এখন, উল্লেখ করুন যে যখনই কোনও প্যাটার্ন মেলে হাইলাইট গ্রুপটি উপস্থিত থাকবে:

:syntax match MyQuestions /Question/

এটি সেই পাঠ্যটিতে থাকা প্রতিটি লাইনে 'প্রশ্ন' পাঠ্যের হাইলাইট দেখাতে শুরু করবে। পুরো লাইনটি প্রসারিত করতে প্রসারিত করতে আপনি অনুসন্ধানের পাঠ্যকে পুরো লাইনের সাথে মেলানো ওয়াইল্ডকার্ডে পরিবর্তন করবেন something

:syntax match MyQuestions /.*Question.*/


প্রকৃতপক্ষে এটি কেবলমাত্র কঠোরভাবেই কাজ করেছিল ... আমার সন্দেহ হয় যে আপনাকে একবারে কেবল একটি ম্যাচ করার অনুমতি দেওয়া হয়েছে আপডেট # 3 দেখুন ...
ষাট ফুটারসুডে

1
@ এসিস্টিফুটারসডুড: দুঃখিত, আবারও কিছুটা ত্রুটি হয়েছিল। ম্যাচের সমস্ত কমান্ডের পরিবর্তে "সিনট্যাক্স ম্যাচ" কমান্ড থাকতে হবে। সুতরাং [: মাইকিউশনস / ম্যাচ কিউশনেশন.এর সাথে মেলে আপনি কি ব্যবহার করতে চান] [: সিনট্যাক্স ম্যাচ মাইকিউশনস / .* কিউশনেশন। এটি আপনাকে যতটা ইচ্ছা বিভিন্ন মেলাতে দেয়। এগুলি সিন্ট্যাক্স ফাইলগুলিতে স্থাপন করা কমান্ডগুলির মধ্যে একটি সাধারণ ধরণের। তবে আপনি যে কোনও জায়গায় কমান্ড লাইন, ভিএমআরসি, বা অন্য কোনও স্ক্রিপ্টগুলি এগুলি নির্বাহ করতে পারেন।
ব্যবহারকারী 22303

যোগ করা হচ্ছে syntaxএর infront match...আমার vimrc ফাইল তোলে সব সময়ে কোন প্রভাব মেলে। এই যেখানে আমি এই করা উচিত। ওপেন ফাইলে এটি করার কোনও প্রভাব নেই।
ষাট ফুটারসুডে

1
@ এসিস্টিফুটার্স: আপনার জন্য কী ঘটছে তা নিশ্চিত নন তবে এটি করার উপায় অবশ্যই এটি। কোনও স্ক্রিপ্টে রাখার আগে কমান্ড লাইনে পরীক্ষা করুন (এটি সম্ভব সিনট্যাক্স সেটিংস আপনার ফাইলের জন্য লোড হওয়া অন্যান্য স্ক্রিপ্টগুলির কোথাও সাফ হয়ে যাচ্ছে)। একবার সংজ্ঞায়িত হয়ে গেলে, খালি ": হাইলাইট" কমান্ড জারি করে কী গ্রুপ বিদ্যমান এবং তাদের কী কী হাইলাইট হয়েছে তা পরীক্ষা করুন (বা জিভিআইএমের গুই মেনু থেকে "হাইলাইট পরীক্ষা" নির্বাচন করুন)। মনে রাখবেন আপনি গ্রুপ তৈরি করতে প্রথমে হাইলাইট কমান্ডটি ব্যবহার করতে চান, তারপরে ম্যাচের প্যাটার্ন সেট করতে 'সিনট্যাক্স ম্যাচ' ব্যবহার করুন।
ব্যবহারকারী 22303

@ এসিস্টিফুটারস: আমি ধরে নিচ্ছি আপনি কোনও টার্মিনালে ভিএম চালাচ্ছেন (অর্থাত্ gvim নয়) যাতে এই শব্দটির বৈশিষ্ট্য নির্ধারণের ক্ষেত্রেই কাজ করা উচিত। আমার কাছে মনে হচ্ছে সিন্ট্যাক্স কমান্ডগুলি মুছে ফেলা হচ্ছে যখন কোনও নতুন ফাইল লোড হচ্ছে এবং একটি সম্পর্কিত সিনট্যাক্স ফাইল চলমান এবং পূর্ববর্তী সমস্ত সিনট্যাক্স কমান্ডগুলি সাফ করে দিচ্ছে। সুতরাং কেবল ডাবল-চেক করার জন্য, কমান্ড লাইন ব্যবহার করার সময় আপনি যখন কোনও ফাইল লোড করবেন তখন আপনি এই আদেশগুলি পুনরায় প্রবেশ করছেন? আমি মনে করি আপনি নতুন বাফারটিতে পাঠ্যের সাহায্যে পরীক্ষার চেষ্টা করতে পারেন যা এমনকি সংরক্ষণ করা হয়নি এবং এমনকী এখনও একটি ফাইল নাম নির্ধারিত নেই।
ব্যবহারকারী 22303

5

আপনি যে ফাইলটির জন্য সন্ধান করছেন এটি একটি 'সিনট্যাক্স' ফাইল। দেখার চেষ্টা করুন /usr/local/share/vim/syntax/বা /usr/share/vim/syntax/। আপনি যে ফাইলটি চান সেটি xML.vim।

সবচেয়ে সহজ কাজটি হ'ল লাইনটি খুঁজে পাওয়া

syn keyword xmlTodo         contained TODO FIXME XXX

এবং এটিকে পরিবর্তন করুন:

syn keyword xmlTodo         contained TODO FIXME XXX Question

এটি পাঠ্যযুক্ত যে কোনও মন্তব্যে 'টডো' হাইলাইট যুক্ত করবে Question

যদি আপনি এটি (সর্বদা) জন্য ব্যবহার করতে যাচ্ছেন তবে আপনার স্থানীয় মধ্যে xML.vim অনুলিপি করা ভাল হবে যাতে ভিমে ~/.vim/syntaxপরিবর্তনগুলি আপনার কাস্টম সিনট্যাক্স ফাইলটিকে ওভাররাইট করতে না পারে।

হালনাগাদ

আপনি যদি কোনও ফাইলে অনুরূপ (সর্ডফ) ক্ষমতা চান তবে আমি 'গোটো' কমান্ডটি ব্যবহার করব। আমি স্বীকার করব যে এটি hlsearch এর মতো, যা আপনি বলেছিলেন যে আপনাকে বিরক্ত করে।

সম্পাদনা করার সময়, কার্সারটি যখন কোনও শব্দের উপর থাকে, তখন gdফাইলের বর্তমান বিন্দু gDথেকে অনুসন্ধান করতে বা শুরু থেকে অনুসন্ধান করতে টাইপ করুন । আপনার ফাইলের প্রতিটি শব্দ যা বর্তমান শব্দের সাথে মেলে তা হাইলাইট করা হয়েছে। আপনি nশব্দের পরবর্তী উদাহরণে ঝাঁপ দিতে টাইপ করতে পারেন ।

আমি এটি করতে ঝোঁক, কারণ আপনি ন্যূনতম টাইপ করে হাইলাইট এবং নেভিগেশন পান। আপনি হাইলাইটটি সাধারণ উপায়ে বন্ধ করে দিন::noh[lsearch]


কি দারুন! আমি যা করতে চাই তার মতো শব্দ। আমার কাছে বর্তমানে একটি ~/.vim/ folder. If I created it and create the file সিনট্যাক্স নেই - ভিআইএমকে এটি .vimrc?ব্যবহার করতে বলার জন্য আমার কি এটি কোথাও রেফারেন্স করতে হবে (হতে পারে)?
ষাট ফুটারসুডে

1
নাঃ। ভিম স্বয়ংক্রিয়ভাবে এটি অনুসন্ধান করে (এবং কয়েকটি অন্যান্য ডিরেক্টরি - উদাহরণস্বরূপ: প্লাগইনস, রঙ, সংকলক) এবং যদি আপনার বাড়ির অঞ্চলে একটি সিনট্যাক্স ফাইল উপস্থিত থাকে তবে এটি সিস্টেমের ডিফল্টরূপে অগ্রাধিকার গ্রহণ করে।
ডেভপ্যারিলো

1
এছাড়াও, কেবল পরিষ্কার করার জন্য, আপনি একটি ডিরেক্টরি তৈরি করতে syntaxএবং এটিতে একটি ফাইল রাখতে চানxml.vim
ডেভপ্যারিলো

আমি কি আমার .ভিমির সাথে আমার .vimrc লাগিয়ে দেব?
ষাট ফুটারসুডে

1
সিনট্যাক্স ফাইলগুলি আপনার .vim dir এ যায়। সিনট্যাক্স হাইলাইট ভাষা নির্দিষ্ট করার উদ্দেশ্যে। আপনি যদি কোনও ফাইলে অনুরূপ (সর্ডফ) ক্ষমতা চান তবে আমি 'গোটো' কমান্ডটি ব্যবহার করব। আমি আমার উত্তরে এটি যুক্ত করব।
ডেভপ্যারিলো

2

আপনি সহজভাবে করতে পারে

:set hlsearch

এবং তারপরে প্রশ্ন অনুসন্ধান করুন


আমি যা করছি তা হ'ল এইচএসআরচ আমাকে বিরক্ত করে। +1, পরামর্শের জন্য ধন্যবাদ।
ষাট ফুটারসুডে

2

আপনার কাছে বেশ কয়েকটি বিকল্প রয়েছে।
- এক, ডোমিনিক যেমন উল্লেখ করেছেন ... আপনি সেইগুলির জন্য একে একে অনুসন্ধান করতে পারেন (এটি ব্যবহারিক নয়)
- দুটি, আপনি ": জি / <- প্রশ্ন" তাদের সকলের একটি "তালিকা" পেতে পারেন (কিছুটা আরও ভাল , সামগ্রিক চিত্র দেয়)
- তিনটি, আপনি যদি এক্সএমএল ফাইলগুলিতে কেবল এই ধরণের মন্তব্য ব্যবহার করেন তবে আপনি একটি হাইলাইটিং গ্রুপ সেট আপ করতে পারেন (এক্সএমএলটি দেখতে কেমন তা আমি জানি না, তাই কিছু আছে কিনা তা আমি জানি না তাদের মধ্যে অন্যান্য ধরণের মন্তব্য)। আপনি যদি এটি ভিএমআরসি-তে সেট আপ করেন তবে এটি ভাল হবে, যেহেতু আপনি যখন নতুন সংস্করণ দিয়ে ভিএমকে রিফ্রেশ করবেন তখন আপনার xlm.vim ফাইলটি চলে যাবে।


+1 আমি এই :g/পরামর্শটি পছন্দ করি , তবে 'প্রশ্ন' অবিলম্বে মন্তব্য ট্যাগটি অনুসরণ না করলে প্রয়োগ করা কঠিন tough
ডেভপ্যারিলো

@ ডেভপ্যারিলো - আহ, হ্যাঁ ঠিক আছে, যেমনটি আমি বলেছি, আমি এক্সএমএল সম্পর্কে কিছুই জানি না তাই আমি ধরে নিয়েছিলাম এটি সবসময় এরকমই ছিল।
রক

আমি কীভাবে একটি হাইলাইটিং গ্রুপ সেটআপ করতে পারি?
ষাট ফুটারসুডে

1
@sixtyfootersdude - দেখুন ": e410 সহায়তা"।
রক

@ আইডিগাস: রেফারেন্সের জন্য ধন্যবাদ। একবার তাকিয়ে থাকলেও তবুও আমার সমস্যার সমাধান করতে পারেনি। আমি প্রশ্নে একটি আপডেট যুক্ত করেছি। ধন্যবাদ।
ষাট ফুটারসুডে

1

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

: হাই প্রশ্ন গিফগ = লাল গিবিগ = নীল গুই = সাহসী

Gvim (অর্থাত্, একটি gui সঙ্গে vim) যা অগ্রভাগ (guifg), পটভূমি এবং সাধারণ অক্ষর সেটিংস সেট করবে।

আপনি যদি এই হাইলাইটলিং থেকে মুক্তি পেতে চান তবে এটি করুন:

: হাই প্রশ্ন পরিষ্কার

টার্মিনালের ভিতরে ভিএম ব্যবহার করে আপনি এই কমান্ডটি ব্যবহার করতে পরিবর্তন করতে পারেন:

: হাই প্রশ্ন ctermfg = লাল ctermbg = নীল শব্দ = সাহসী

আপনি অবশ্যই আপনার ভিএমআরসি-র যে কোনওটিকে রাখতে পারেন এবং আপনি জিআই এবং টার্ম ফ্ল্যাগগুলি একক হাই কমান্ডের সাথে সংযুক্ত করতে পারেন।


[আমি আরও একটি পোস্টারের উত্তর পড়ার পরে নীচে যুক্ত করা হয়েছে]

দুঃখিত, আমি ধরে নিছিলাম যে আপনার প্রশ্ন লাইনের সিনট্যাক্সটি ইতিমধ্যে ভিমের অন্তর্নির্মিত 'প্রশ্ন' হাইলাইট ট্যাগের জন্য আপনার সিনট্যাক্স ফাইলের সেটিংসের সাথে মিলেছে। কেবলমাত্র অন্য উত্তরটি দেখুন যা ভিএম এর জন্য এক্সএমএল সিনট্যাক্স ফাইলের উল্লেখ করেছে এবং তারপরে আপনি প্রশ্নের পরিবর্তে টোডো হাইলাইট গ্রুপ ব্যবহার করে উপরের আদেশগুলি জারি করতে পারেন।


চেষ্টা করা হয়েছে: হাই প্রশ্ন ctermfg = red ctermbg = নীল শব্দ = সাহসী তবে তার কোনও প্রভাব নেই।
ষাট ফুটারসুডে

দুঃখিত, হাই: কমান্ডটি কেবল প্রশ্ন গোষ্ঠীটি কীভাবে হাইলাইট হবে তা প্রতিষ্ঠিত করেছে। এখন আপনাকে নথির কোন ক্ষেত্রগুলি প্রশ্ন গোষ্ঠীর অংশ বলে নির্দিষ্ট করতে হবে। আপনি ম্যাচ কমান্ডের সাহায্যে এটি করতে পারেন:: প্রশ্নটি / [অনুসন্ধানের প্যাটার্ন] / বা আপনার ক্ষেত্রে:: ম্যাচ প্রশ্ন / প্রশ্ন /
ব্যবহারকারী 22303

0

আমি পার্টিতে দেরি করেছি তবে আমি ব্যবহার করছি TODOএবং FIXMEঠিক এই পরিস্থিতির জন্যই।

বেশিরভাগ, সব TODOকিছু না থাকলে, রঙের চামড়াগুলি নীচের উদাহরণে পটভূমির রঙ, আন্ডারলাইন এবং ইটালিক্সের কিছু সংমিশ্রণের সাথে হাইলাইট করবে :

<tree>
  <!--TODO : do I have to add a trunk tag ?-->
  <branch>
    <leaf>caterpillar</leaf>
    <leaf>caterpillar</leaf>
  </branch>
</tree>

এটি আসলে শব্দার্থিকভাবে ফিট করে না তবে এটি খাঁটি কার্যকরী দৃষ্টিকোণ থেকে খুব ভালভাবে কাজ করে।

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