আমি কীভাবে ভাইমকে বলব যে কিছু ফাইল এক্সটেনশন সমার্থক?


21

আমি .cppফাইলগুলিতে সি ++ কোড সম্পাদনা করি , যখন টেমপ্লেট কোডগুলি .tccফাইলে যায় । আমি যখন এই জাতীয় কোনও ফাইল খুলি, তখন কোনও সিনট্যাক্স হাইলাইটিং পাওয়া যায় না। আমি set syntax=cppএএএ tpp.vimফাইলে চেষ্টা করেছিলাম ~/.vim/ftplugin/, তবে এটি সম্পাদকীয়তে কাজ করার সময় কিছুই করে না। সুনির্দিষ্ট এক্সটেনশানগুলি অন্যের সমার্থক হিসাবে বিবেচনা করার কোনও উপায় আছে কি?

উত্তর:


19

পছন্দসই পদ্ধতিটি ভিএম এফএকিউ ২ 26.৮ এ ~/.vim/filetype.vimবর্ণিত এবং বর্ণিত হিসাবে একটি তৈরি করা হয় ::help 43.2

উপরোক্ত পদ্ধতির আরও ভাল বিকল্প হ'ল ty / .vim ডিরেক্টরিতে ফাইল টাইপ.ভিম ফাইল তৈরি করা (বা 'রানটাইমপথ' বিকল্পে বর্ণিত ডিরেক্টরিগুলির একটিতে) এবং নিম্নলিখিত লাইনগুলি যুক্ত করা:

" my filetype file
if exists("did_load_filetypes")
    finish
endif
augroup filetypedetect
    au! BufRead,BufNewFile *.x       setfiletype c
augroup END

সম্পাদনা:

এটি did_load_filetypesআপনাকে কোনও সমস্যা না করে; এটি পরিবর্তিত হওয়ার পরে কেবলমাত্র একটি Vim পুনঃসূচনা প্রয়োজন।

এই ফাইলটির একাধিক এবং অপ্রয়োজনীয় লোড এড়ানোর জন্য এটি প্রয়োজনীয় এবং এটি বেস ফাইল থেকে উত্তরাধিকার সূত্রে প্রাপ্ত হয়েছে ($ ভিআইআরআরিন্টটাইম / ফাইল টাইপ.ভিম):

" Vim support file to detect file types
"
" Maintainer:   Bram Moolenaar <Bram@vim.org>
" Last Change:  2014 Jun 12

" Listen very carefully, I will say this only once
if exists("did_load_filetypes")
  finish
endif
let did_load_filetypes = 1

আরও তথ্যের জন্য পরীক্ষা করুন :help new-filetype।


ifবিবৃতি কেন ? যদি আমি এটি এ ছেড়ে চলে যাই তবে আমার জন্য অটোকিম্ডগুলি কার্যকর করা হয় না।
— ওরিফিশ

আপনি কি ভিম পুনরায় চালু করবেন?
— এমএমন্টু

ঠিক আছে, এটা অদ্ভুত। আমাকে au!গ্রুপে জবাব দিতে হবে , নাম au! BufRead,BufNewFile *.py setfiletype pythonএবং নীচের লাইনে au! BufRead,BufNewFile *.tpp setfiletype cpp। তবে কেবল দ্বিতীয়টি আসলে কাজ করে। .pyফাইল সম্পাদনা ফাইল টাইপ সেট করে না python। আমি হুবহু ভিম-গুরু নই তাই আমি সম্ভবত কিছু মিস করছি।
— ওরিফিশ

@ অরফিশ আপনি যদি সম্পাদনাটিতে উল্লিখিত ফাইলটি পরীক্ষা করেন তবে আপনি দেখতে পাবেন যে এতে ইতিমধ্যে একটি লাইন রয়েছে au BufNewFile,BufRead *.py,*.pyw setf python, সুতরাং আপনার প্রথম লাইন অপ্রাসঙ্গিক। আপনার সমস্যা সম্ভবত অন্য কোথাও।
— এমমন্টু

"Editing .py files does not set the file type to python"- :set ftএই ক্ষেত্রে ফলাফল কি ? যদি এটি অজগর না হয় তবে ভিম-এফএকিউ ২.৫-
— ভিমে


1

এর মধ্যে একটিও থাকতে পারে: au BufRead,BufNewFile *.tpp setlocal filetype=cppতাদের ক্ষেত্রে এক্সটেনশন .vimrcসহ কোনও ফাইল খোলার পরে ফাইল .tppটাইপ সি ++ এর জন্য সেট করা থাকে


1
এটি মূলত @ edi9999 এর উত্তরের মতো বলে মনে হচ্ছে। এর BufRead,BufNewFileপরিবর্তে কেন ব্যবহার করবেন তা আপনি বিস্তারিতভাবে বলতে পারেন BufEnter?
— oarfish

@ ইয়ারফিশ আমার মনে হয় এটি খুব বেশি গুরুত্বপূর্ণ নয়, তবে আমি এর BufRead,BufNewFileচেয়ে বেশি পছন্দ করি BufEnterকারণ :help BufEnterডক্সে ( ) এটিতে বলা হয়েছে: "বুফনার: .... বাফারডপোস্ট অটোকম্যান্ডসের পরে বাফার সম্পাদনা করার সময় মৃত্যুদন্ড কার্যকর করা হয়েছিল।" যেখানে বুফআইডপোস্ট বুফআডের সমার্থক শব্দ । তদ্ব্যতীত, আমি বিশ্বাস করি না যে এর :আগে প্রয়োজন হয় setlocalতাই আমি আমার উত্তরে এটিও বাদ দিয়েছি। (আমি এটি পুরোপুরি ভুল ব্যাখ্যা করতে পেরেছি, আরও আলোচনা শুনে খুশি)
— টালমজর
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.