সি ++ 14 বৃহত সংখ্যাসূচক অক্ষরের অঙ্কগুলি পৃথক করতে একক উদ্ধৃতি ব্যবহারের বিকল্প সরবরাহ করেছে। এটি ভিমের সিনট্যাক্স হাইলাইটটিকে ভেঙে দেয়।
উদাহরণস্বরূপ, নিম্নলিখিত সি ++ 14 প্রোগ্রামটি বিবেচনা করুন:
#include <stdlib.h>
int main(int argc, char** argv) {
// small numbers are fine
int normal_number = 5;
// large numbers have the correct highlighting but they're hard to visually parse
int huge_number = 1000000000;
// apostrophes help with visual parsing but mess up syntax higlighting
int huge_number_again = 1'000'000'000;
return EXIT_SUCCESS;
}
আমি যখন এটি ভিমে দেখি, আমি নীচের সিনট্যাক্স হাইলাইট করতে দেখি (নোট করুন যে আমি কিছু অতিরিক্ত হাইলাইটিং স্ক্রিপ্ট ব্যবহার করছি ):
আমি চাই যে সমস্ত সংখ্যার huge_number_again
লাল প্রদর্শিত হবে। আমি আমার সিনট্যাক্স ফাইলগুলির একটিতে বা এটি সংশোধন করার জন্য কি একটি পরিবর্তন করতে পারি ~/.vimrc
?
আমি দেখতে পাচ্ছি সি ++ 14 এর জন্য কিছু সমর্থন v7.4.923 (বাইনারি আক্ষরিক) এ যুক্ত হয়েছিল। তবে সংখ্যাটি পৃথককারী বলে মনে হচ্ছে না: - / এখান থেকে সর্বশেষ সি ++ ফাইলগুলি এখনও এটি রয়েছে বলে মনে হয় না।
—
মার্টিন টর্নোইজ
দ্রুত সমাধানের জন্য, আপনি সম্ভবত যুক্ত
—
মার্উ
syn match cNumber display contained "\d\(\d\|'\)*\(u\=l\{0,2}\|ll\=u\)\>"
করতে পারেন ~/.vim/syntax/cpp.vim
। (বিটিডব্লিউ, যদি এটি সি ++ হয় তবে ব্যবহার করুন cstdlib
, না stdlib.h
))
আমি কেবল লক্ষ্য করেছি মে ২০১৪ বিটিডব্লিউর পর থেকে একটি উন্মুক্ত সমস্যা রয়েছে।
—
মার্টিন টর্নয়েজ
@ মুরু সমস্যাটি স্থির করেছে বলে মনে হচ্ছে। আপাতত দ্রুত হ্যাক ব্যবহার করে আমি ভাল আছি। ধন্যবাদ!
—
জেক
@ কারপেটসমোকার আমার পরিবর্তনটি ঠিক কী করে তা জানতে সিনট্যাক্স ম্যাচিংয়ের বিষয়ে আমি নিশ্চিত নই। আমি মনে করি এটি কেবলমাত্র একটি সংখ্যার সাথে মিলবে যে কোনও সংখ্যক অঙ্ক বা একক উদ্ধৃতি, প্লাস
—
মুড়ু
ull
ফ্লাফের পরে, তবে আমি জানি না এটি কিছু অবৈধ ক্ষেত্রে মেলে কিনা। এবং দৃশ্যত সি ++ 14 অষ্টাল, বাইনারি, হেক্স আক্ষরিক এবং ভাসমানগুলিতে এবং ভাসমানের দশমিক বিন্দুর পরে বিভাজককে অনুমতি দেয়। এটা একটা ব্যাপার অনেক বেশি আমি নিতে ইচ্ছুক নই।