নির্দিষ্ট ফাইল প্রকারের জন্য ভিম হাইলাইটিং (যেখানে সিনট্যাক্স ফাইলগুলি রাখবেন, ভিম ইভেন্টগুলি, ভিআইএমআরসিতে রাখার জন্য লাইন)


17

আমি jak.vimনোটগুলি নেওয়ার সময় কাস্টম হাইলাইটিং সরবরাহের জন্য একটি ফাইল সময় সংজ্ঞায়িত করেছি, তবে এটি .jakএক্সটেনশন না থাকা এমন কিছু ফাইলের জন্য প্রয়োগ করা হচ্ছে । বিশেষত একটি ফাইল নাম দেওয়া হয়েছে progress.jlog। শুধু পরীক্ষা সমস্যাটি এক্সটেনশন আমি নতুন নামকরণ নির্দিষ্ট ছিল progress.jlogথেকে progress(কোন এক্সটেনশন) কিন্তু একই সমস্যার সম্মুখীন হয়েছি।

আমি কি করেছিলাম:

  • আমি jak.vimডিরেক্টরিতে তৈরি করেছি~/.vim/ftdetect
  • আমি এই লাইনটি যুক্ত করেছি: "আ বুফআরেড, বুফনিউইফিল *। জ্যাক ফাইল টাইপ = জ্যাক সেট করুন" ভিএম রেফারেন্সে বর্ণিত হিসাবে শীর্ষে
  • আমি ভিএম পুনরায় চালু করেছি (: x, এবং তারপরে আবার খোলা)

আমার ~/.vim/ftdetect/jak.vimদেখতে দেখতে এটাই :

~/.vim/ftdetect][505]% cat jak.vim
au BufRead, BufNewFile *.jak set filetype=jak

syn region JakeSubtitle start=+==+ end=+==+
highlight JakeSubtitle ctermbg=black ctermfg=DarkMagenta

syn region JakeTitle start=+===+ end=+===+
highlight JakeTitle ctermbg=black ctermfg=yellow

syn region JakeMasterTitle start=+====+ end=+====+
highlight JakeMasterTitle cterm=bold term=bold ctermbg=black ctermfg=LightBlue

syn region emphasis start=+<em>+ end=+</em>+
highlight emphasis ctermbg=black ctermfg=yellow

" makes all of the numbered items bold."
" (this works I just don't like the effect.  Decided to change to just highlight the "number)
"syn region numberedItem start=+^\t*\d*)+ end=+\n+"
syn match numberedItem +^\t*\d*)+
highlight numberedItem cterm=bold

এবং কেবল যদি আপনার জানতে হবে তবে এটি আমার .vimrcচেহারা কেমন:

~/.vim/ftdetect][508]% cat ../../.vimrc
"on will override defaults set.  Enable will allow you to set defaults."
" also turns on filetype"
"syntax on"
syntax enable

set nocompatible

" ???"
set backspace=2

"Auto indent"
set ai

"Map jj to Esc so that you do not have to reach for the Esc button"
imap jj <Esc>

"do not allow the search to wrap around the screen, must stop at the bottom."
set nowrapscan

"when doing a search highlight all occurances"
":set hlsearch"

"stop text from wrapping on the screen"
set nowrap

"turn the mouse on while in insert mode"
set mouse=i

"attempting to highlight specific keywords so it is easy to see in code."
"see help e410 for more info."
"see this post I created: /superuser/110054/custom-vim-highlighting"
"Legal colors: Black, DarkBlue, DarkGreen, DarkCyan, DarkRed, DarkMagenta,"
"Brown, DarkYellow, LightGray, LightGrey, Gray, Grey, DarkGray, DarkGrey,"
"Blue, LightBlue, Green, LightGreen, Cyan, LightCyan, Red, LightRed, Magenta,"
"LightMagenta, Yellow, LightYellow, White"
syn keyword JakeKeywords        Question TODO Answer JAKEHTTPS PossibleProblem
highlight JakeKeywords cterm=bold term=bold ctermbg=black ctermfg=Blue


"for case-insensitve searches"
set ignorecase

"Override the 'ignorecase' option if the search pattern contains upper"
"case characters.  Only used when the search pattern is typed and"
"'ignorecase' option is on."
set smartcase


"use indents as the folding method"
set foldmethod=indent

"make vim save and load the folding of the document each time it loads"
"also places the cursor in the last place that it was left."
au BufWinLeave * mkview
au BufWinEnter * silent loadview

দ্রষ্টব্য: এটি পড়ার সহজ করার জন্য আমি সমস্ত উদ্ধৃতি (মন্তব্য) শেষ করেছি


হালনাগাদ

আমি nsharish এর পোস্ট খুব সহায়ক বলে মনে হয়েছে। তারা পরামর্শ দিয়েছে যে আমি এটিকে আমার ভিএমআরসি-তে যুক্ত করব:

au BufRead,BufNewFile *.jak set filetype=jak

এবং আমার jak.vimফাইল যোগ করুন~/.vim/syntax

দুর্ভাগ্যক্রমে যে কোডটি এই দুটি লাইনের সাথে দ্বন্দ্ব করে (আমার ভিএমআরসি তে)

au BufWinLeave *.c mkview
au BufWinEnter *.c silent loadview

ভিএম লোড করার সময় আমি আমার ফোল্ডগুলি, কার্সারের অবস্থান ইত্যাদি সংরক্ষণ করতে এই দুটি ব্যবহার করি :help lo। যদি আমি এই দুটি লাইনটি মন্তব্য করি তবে ন্যাশরিশের পরামর্শটি কবজির মতো কাজ করে। এই দুটি লাইনের সাথে আমার কোনও ফাইলে হাইলাইট করা নেই।

উপসংহার

আমি নশরীশের উত্তরটিকে সেরা উত্তর হিসাবে চিহ্নিত করেছি (কারণ এটি আমার পক্ষে সবচেয়ে সহায়ক)। তবে আমি এইভাবে সমস্যার সমাধান করেছি:

নশরিশ ঠিক বলেছেন আমার এই লাইনের দরকার ছিল .vimrc:

syntax enable
au BufRead,BufNewFile *.jak set filetype=jak

এবং আমার আমার jak.vimফাইলটি সরানো দরকার ~/.vim/syntax

তবে উপরে উল্লিখিত হিসাবে এই লাইনের সাথে একটি বিরোধ ছিল:

au BufWinLeave * mkview
au BufWinEnter * silent loadview

এই লাইনগুলি হাইলাইট করার কাজ করার সময় মন্তব্য করা হয়েছিল।

আমার যা করা দরকার তা হ'ল এটিতে পরিবর্তন ...set filetype...করা:

au BufWinEnter,BufRead,BufNewFile *.jak set filetype=jak

আমি মনে করি যে বুফউইনএন্টারকে বুফআইড / বুফনিউ ফাইলের পরে ডাকা হয়েছে তাই হাইলাইটিংটি গতবারের থেকে সংরক্ষণ করা ফর্ম্যাটিং দ্বারা ওভাররাইট করা হচ্ছে।

এই সমাধানটি সামনে আসতে আমাকে সহায়তা করার জন্য আবার nsharish ধন্যবাদ।


1
কোন অর্থে * .c জবানবন্দি * .জাক বক্তব্যের সাথে সাংঘর্ষিক?
আকিরা

উত্তর:


10

আপনি কি এই চেষ্টা করে ..

  • আপনার jak.vim .vim / সিনট্যাক্স ফোল্ডারে রাখুন
  • নিম্নলিখিত। লাইনগুলি কেবল আপনার .vimrc ফাইলে রাখুন।
সিনট্যাক্স 
ও বুফআরেড সক্ষম করে , বুফউইনফাইলে * .জ্যাক সেট ফাইল টাইপ = জ্যাক
আমি আপনার jak.vim ফাইল দিয়ে এটি চেষ্টা করেছি .... এটি আমার পক্ষে ভাল কাজ করেছে ....
আমি vim7.2 ব্যবহার করছি ...
সম্পাদনা করুন:
চেষ্টা করুন, এই
এমকিভিউ এবং লোডভিউ লাইনগুলির সাথে আমারও একই সমস্যা ছিল ... কেবলমাত্র ফাইলের মধ্যে একবার ফাইল টাইপ সেট করুন এবং এটি তখন ধরে রাখা হবে

ফাইলটি খুলুন, তারপরে " : ft = jak " সেট করুন, ফাইলটি সংরক্ষণ করুন এবং ভিআইএম ছেড়ে দিন .... এখন ফাইলটি আবার খুলুন ... সিনট্যাক্স হাইলাইট করা এখন কাজ করা উচিত ...
এম কেভিউ এবং লোডভিউটি শেষ সিনট্যাক্স হাইলাইট সেটিংস সংরক্ষণ করে বলে মনে হচ্ছে এছাড়াও ....


এই মুহুর্তে চেষ্টা করে ... তবে .vim / ftdetect / ফোল্ডারটি কি জানেন? আমি যে আচরণটি অনুভব করছি তা হ'ল সেখানে যে কোনও ফর্ম্যাটিং ফাইল সমস্ত ফাইল প্রকারের জন্য প্রযোজ্য।
ষাট ফুটারসুডুড

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

2

আমাকে অবশ্যই স্বীকার করতে হবে, এটি আপনার পক্ষে কতটা কার্যকর হবে তা আমি নিশ্চিতভাবে জানি না ... তবে ...

http://beerpla.net/2008/04/02/how-to-add-a-vim-file-extension-to-syntax-highlighting/

পৃষ্ঠাটি নিচে নামানো থাকলে আমি পাঠ্য সংযুক্ত করেছি ... বা পরিবর্তন হয়েছে ...

সিন্ট্যাক্স হাইলাইটিংয়ের প্রতিবেদন করার জন্য কীভাবে একটি ফাইল এক্সটেনশন যুক্ত করবেন অ্যার্টেম রাশাকোভস্কিই এপ্রিল 2 শে এপ্রিল, ২০০৮-এ ডেটাবেস, লিনাক্স, প্রোগ্রামিংয়ে 24 সুস্বাদু 2 ডিগ সংরক্ষণ করেছেন ভাগ করুন 3retweet

আপডেট হয়েছে: জুলাই 8, 2009

আজ আমাকে ভিএম সিনট্যাক্সের হাইলাইট করার জন্য কাস্টম এক্সটেনশনগুলি সংজ্ঞায়িত করার বিষয়ে একটি প্রশ্ন জিজ্ঞাসা করা হয়েছিল, উদাহরণস্বরূপ, ভিম জানতে পারে যে উদাহরণ.lmx আসলে xML টাইপ এবং এটিতে এক্সএমএল সিনট্যাক্স হাইলাইটিং প্রয়োগ করুন। আমি জানি ভিম ইতিমধ্যে স্বয়ংক্রিয়ভাবে এটি কেবল এক্সটেনশনের উপর ভিত্তি করে নয় তবে পাঠ্যের অভ্যন্তরে নির্দিষ্ট স্ট্রিং সন্ধান করে যেমন করে

চারপাশে খননের পরে আমি সমাধানটি খুঁজে পেলাম। নিম্নলিখিতগুলি ~ / .vimrc (ভিম কনফিগারেশন ফাইল) এ যুক্ত করুন:

1 2 3 ফাইল বাক্সে সিন্ড্যাক্স ফাইল অফ টাইমে বুফনিউইফাইল, বুফআরইড * .lmx সেট ফাইল টাইপ = এক্সএমএল এটি প্রয়োগ করার পরে, আমার .lmx ফাইলটি হাইলাইট করা হয়েছে:

উদাহরণস্বরূপ, মাইএসকিএল ডাম্পগুলির জন্য একই নীতিটি কাজ করে যা আমাকে সময়ে সময়ে করতে হয়। যদি তাদের কাছে। Sql এক্সটেনশন না থাকে তবে আপনি এর মতো কিছু পাবেন:

পরে

বুফনিউজ ফাইলে ফাইল টাইপের 1 2 3 বাক্য গঠন, বুফআরেড * .ডাম্প সেট করুন ফাইল টাইপ = এসকিউএল সবকিছু ঠিক আছে:

তবে কেন এবং কীভাবে এটি কাজ করে?

: সহায়তা আ: আউ [টো সিএমডি] [গোষ্ঠী] {ইভেন্ট} {প্যাট} [নেস্টেড] {সেমিডি}

Matching পিএমডি matching ফাইলের মিলের জন্য commands ইভেন্ট} এ স্বয়ংক্রিয়ভাবে কার্যকর করা হবে এমন আদেশের তালিকায় {সেমিডি d যুক্ত করুন} : অস্তিত্বহীন এমন কোনও ফাইল সম্পাদনা করার সময় বুফনিউইফলে সহায়তা করুন। : বুফআরেডকে সহায়তা করুন বাফারে ফাইলটি পড়ার পরে কোনও নতুন বাফার সম্পাদনা করার সময়। : সহায়তা ফাইল টাইপটি এই পুরো কাহিনীটি খণ্ড খন্ডে সত্যিই বলবে এবং আপনি কীভাবে এটি করেন, লোকেরা।


হু, শীঘ্রই এটিকে আরও ভাল করে দেখতে হবে তবে দরকারী মনে হচ্ছে ..
ষাট ফুটেরসুডে

ঠিক আছে, এটি সম্ভবত একটি সমস্যা সমাধান করতে পারে তবে আমি মনে করি না যে এটি এই সমস্যাটি সমাধান করবে ... আমি মনে করি যে এর মূল কীটি .vim/ftdetectডিরেক্টরিটির সাথে করা উচিত ...
ষাট ফুফুয়ারডুড

আমি সত্যই ভিআইএমও ব্যবহার করি না, তাই আপনার কথাটি আমাকে গ্রহণ করতে হবে ...
বেনজামিন শোলনিক

1

আপনি যা করেছেন তা পুনরায় উত্পাদনের চেষ্টা করেছি, তবে ফাইল টাইপটি অন্যান্য এক্সটেনশনে প্রয়োগ করতে পারিনি।

আমি এটিও পেয়েছি যে এটি সাহায্য করেছে:

'নতুন-ফাইল টাইপের' জন্য ভিম সহায়তা ফাইলটিতে আপনার নিজের 'ফাইল টাইপ.ভিম' তৈরি করা ~/.vim/filetype.vim এবং সেই ফাইলটিতে আপনার অটো কমান্ড লেখার কথা উল্লেখ করা হয়েছে :

if exists("did_load_filetypes")
  finish
endif
augroup filetypedetect
  au! BufRead,BufNewFile *.jak      setfiletype jak
augroup END

আপনার jak.vim থেকে এই সমস্ত সিনট্যাক্স এবং হাইলাইট কমান্ডগুলির অধীনে সঞ্চয় করা দরকার ~/.vim/syntax, সুতরাং এটি অনুলিপি করুন ~/.vim/syntax/jak.vim( auআদেশ ছাড়াই )।

আপনাকে পরিবর্তনগুলি বেছে নিতে ভিম ছেড়ে যেতে হবে এবং পুনরায় চালু করতে হবে।


1

আমি মনে করি জিনিসগুলি চারদিকে ঘোরানো হতে পারে তবে আমি কোনও বিশেষজ্ঞ বিশেষজ্ঞ নই।

আপনার সিনট্যাক্স হাইলাইটিং ফাইলটি সিনট্যাক্স ডিরেক্টরিতে থাকা উচিত। Nsharish এর পরামর্শের জিনিসগুলি এমন হতে পারে যা আপনার ফাইডটেকটেক্টের ভিতরে রেখে দেয়।

এই অংশ:

au BufRead,BufNewFile *.jak set filetype=jak

.Vimrc- এ আপনাকে এমন একটি লাইন যুক্ত করতেও পারে:

au! syntax jak source $VIM/syntax/jak.vim

আইএমএইচও, এটি এভাবে আরও বোধগম্য হয়। আশা করি এটা কাজে লাগবে.

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