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


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.