* সংকলন * বাফার নিয়ন্ত্রণের অক্ষরগুলি কেন দেখায়?


9

আমি *compilation*সেন্টোস 5 এবং সেন্টোস 6-তে একটি সি ++ অ্যাপ্লিকেশন তৈরি করতে বাফারটি ব্যবহার করছি The বাফারটি বিল্ডটি দেখায় এবং বিল্ডের অংশ হিসাবে থাকা ফাইলগুলির উল্লেখগুলি অন্তর্ভুক্ত করে। তবে আমি ^[আউটপুটে প্রদর্শিত অক্ষরের মতো নিয়ন্ত্রণ পাচ্ছি এবং এটি পড়া খুব শক্ত এবং আপনি যখন আউটপুটে একটিতে ক্লিক করেন তখন ইমাকগুলি দূষিত ফাইলের নামগুলি পেয়ে যাচ্ছে। আমি মনে করি যে এই অক্ষরগুলি সংকলক আউটপুটটিতে একরকম রঙিন বা অন্য টিকা আছে তবে সেগুলি কোথা থেকে আসছে তা আমি জানি না। এখানে নমুনা আউটপুট:

cc -c -g -I../machind -I. -DRELEASE_VERSION -g -O2 -m64 -D__BITS64 -pipe -DARCH_64 -DARCH_INTEL -DARCH_X86 -DARCH_X86_64 -DOS_LINUX -pthread -DLM_INTERNAL -DFLEXLM_KITBUILD -DFLEX_STATIC -DRELEASE_VERSION -DGPLATFORM=\\"x64_lsb\\" -DLINUX -DLSB3_0 -D__FD_SETSIZE=65535 -DGLIBC -DLINUX64 -DAMD64 -DREDHAT -DREL -DRHLINUX64 -DPLATFORM_AMD64_RHLINUX   -DNO_ACTIVATION_SUPPORT ../machind/lmcrypt.c
^[[01m^[[K../machind/lmcrypt.c:^[[m^[[K In function  ^[[01m^[[Kmain^[[m^[[K :
^[[01m^[[K../machind/lmcrypt.c:156:47:^[[m^[[K ^[[01;35m^[[Kwarning: ^[[m^[[Kcast to pointer from integer of different size [-Wint-to-pointer-cast]
     lc_set_attr(lm_job, LM_A_MAX_LICENSE_LEN, (LM_A_VAL_TYPE)max);
^[[01;32m^[[K                                               ^^[[m^[[K

আমি কীভাবে আমার সংকলন বাফারটিতে অ-পাঠ্য আউটপুট থেকে মুক্তি পাব?


1
যাঁরা ভিটি 100 রঙের মতো দেখায় এবং ফর্ম্যাট করে সেগুলি পালিয়ে যায়। আপনি রঙগুলি অক্ষম করার চেষ্টা -fdiagnostics-color=neverকরতে পারেন gcc(ধরে gcccc
নিলেন

যেহেতু ansi-color-apply-on-regionধীর হতে পারে, আমি কয়েক সপ্তাহ আগে এই স্নিপেট লিখেছিলাম: ডি-অ্যাসি.এল । আমি এটি প্যাকেজ হওয়ার ইচ্ছা করি নি এবং তাই এটি কী-chords প্যাকেজ এবং আমার অস্থায়ী মাইনর মোড টেম্প-মোড.এলে নির্ভরতা রাখে । ফাইল-বিজ্ঞপ্তি বৈশিষ্ট্যের জন্য আপনাকে ইম্যাক 24.4 বা তার পরেও হতে হবে।
कुशल মোদী

উত্তর:


14

এগুলি প্রকৃতপক্ষে পালানোর ক্রম যা টার্মিনালটির পাঠ্যের রঙ পরিবর্তন করার আদেশ হিসাবে ব্যাখ্যা করা উচিত। সাধারণত ইমাক্স থেকে সংকলকটি আহ্বান করা হলে সেগুলি ব্যবহার করা উচিত নয় (টার্মিনাল টাইপ সেট করা dumbউচিত, যার ফলে সংকলকটি কোনও পালানোর ক্রম ব্যবহার থেকে বিরত থাকতে পারে)। আপনার কনফিগারেশনে কিছু ভুল থাকতে পারে যার কারণে রঙগুলি ব্যবহার করা উচিত নয়। তবে আপনি ইমাসকে এএনএসি-রঙের প্যাকেজটি দিয়ে পালানোর ক্রমগুলি সনাক্ত করতে পারেন ।

এর মতো কিছু সংকলন বাফারগুলি এএনএসআই পলায়নের ক্রমগুলি কাঁচা স্ট্রিং হিসাবে প্রদর্শন করার পরিবর্তে হ্যান্ডেল করে।

(require 'ansi-color)
(defun my/ansi-colorize-buffer ()
  (let ((buffer-read-only nil))
    (ansi-color-apply-on-region (point-min) (point-max))))
(add-hook 'compilation-filter-hook 'my/ansi-colorize-buffer)

1
খুবই উপকারী. ইমাসে 26.1 এ কাজ করে।
ল্য্যালিউলো

1
এটি প্রতিবার সঞ্চালিত হয়ে পুরো বাফারটিকে পুনরায় রঙ দেয় (এবং ফলস্বরূপ আমার জন্য সমস্ত পাঠ্য শেষ রঙে রঙ করে)। এই হুকটি "সংকলন-ফিল্টার-সূচনা" সেট করে বিন্দুতে সন্নিবেশিত অঞ্চলটির শুরুতে প্রান্তে স্থানান্তরিত করে। সুতরাং আমি (পয়েন্ট-মিনিট) এবং (পয়েন্ট-সর্বাধিক) পরিবর্তে সেগুলি ব্যবহার করব।
gct
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.