গিট পেজার কম, তবে আউটপুট রঙের কারণ কী?


18

lessএই থ্রেড অনুসারে নিজেই সিনট্যাক্স হাইলাইট করতে সক্ষম নয় ।

যাইহোক, git diffচমত্কারভাবে কম রঙিন আউটপুট দেখায়, এটির ডিফল্ট পেজার r আমি যখন আউটপুট পুনর্নির্দেশ করিgit diff কোনও ফাইলে কোনও রঙ পালানোর ক্রম দৃশ্যমান হয় না।

নেই git diffজানি পাঠানো এটা কোথায় হচ্ছে, এবং ফরম্যাটের আউটপুট তদনুসারে? কেউ কীভাবে তা করবে?


আমি কেবল লক্ষ্য করেছি যে গিট diffআউটপুটটিকে রঙ করে (উদাহরণস্বরূপ git diff), তবে এটি সাধারণভাবে কীভাবে সিনট্যাক্স হাইলাইট করতে হয় তা জানে না। যেমন

git show 415fec6:log.tex

কোনও টেক্স-এর মতো সিনট্যাক্স সক্ষম করে না।


পড়া gitউত্স, আমি নিম্নলিখিত নির্দেশ পাওয়া

ইন diff.h:

int use_color;

আমি আগে সিনট্যাক্স হাইলাইটিংয়ের কথা উল্লেখ করছিলাম , তবে এটি সঠিক ছিল না। আমার অর্থ হ'ল আউটপুট রঙ করা, উদাহরণস্বরূপ দেখুন

উদাহরণস্বরূপ রঙ আউটপুট


1
আপনার কাছে কি কোনও আসল সিনট্যাক্স হাইলাইটিং রয়েছে, বা সরানো এবং যুক্ত লাইনগুলির জন্য কেবল লাল এবং সবুজ বর্ণ রয়েছে?
পাওলো ইবারম্যান

বিটিডাব্লু: গিট রঙ কম করার জন্য: git diff --color=always | less -r (বা less -Rএএনএসআইয়ের জন্য)। বিটিডব্লিউ: অন্যান্য কমান্ডগুলির জন্য যা ডিফল্টরূপে git diffgit -p some_git_command
প্যাগিনেট

উত্তর:


18

গিট স্টাডাউটটি টিটিটিisatty() কিনা তা পরীক্ষা করতে ব্যবহার করে: এটি ব্যবহার করতে প্যাজার অবশ্যই ব্যবহার করতে হবে ( পেজআর.সি.সি. ) পাশাপাশি রঙের ( color.c ) ব্যবহার করতে হবে।


দুর্দান্ত সময়, আমি এটি সবেমাত্র খুঁজে পেয়েছি!
সেবাস্তিয়ান

11

চলমান:

git diff --color=always > output

রঙ পালাতে দেখায়।

গোল্লায় যাক আমি তা পাওয়া git'র color.cফাইল:

static int check_auto_color(void)                                           
{                                                                           
  if (color_stdout_is_tty < 0)                                              
    color_stdout_is_tty = isatty(1);                                        
  if (color_stdout_is_tty || (pager_in_use() && pager_use_color)) {         
    char *term = getenv("TERM");                                            
    if (term && strcmp(term, "dumb"))                                       
      return 1;                                                             
  }                                                                         
  return 0;                                                                 
}  

3

less-r --raw-control-charsএবং সাথে রঙ সমর্থন করতে পারে-R --RAW-CONTROL-CHARS

আপনি পাইথনগুলি pygmentizeহাইলাইট করতে এবং এটিতে পাইপ ব্যবহার করতে পারেন ।

এটি একত্রিত করতে সুপারউসার হিসাবে বর্ণিত হিসাবে একটি কম ফিল্টার কনফিগার করে


লিঙ্কটি সত্যই আকর্ষণীয়, ধন্যবাদ। আপনি কি জানেন যে gitআসলে পিগমেনটিজ ব্যবহার করছেন? কারণ এটি নির্ভরতা হিসাবে তালিকাভুক্ত নয়।
সেবাস্তিয়ান

বিটিডব্লিউ, যখন আমি চালিত git diffকরি শিশু lessপ্রক্রিয়া কোনও বিকল্প দ্বারা সংযোজন করা হয় না ( -Rনাও -r)) যাইহোক, আমি জানি না গিট এটিকে কোনও বিশেষ উপায়ে কল করে এবং এভাবে আর্টগুলি দৃশ্যমান হয় না htop
সেবাস্তিয়ান

gitরঙ পালানোর কোডটি এটি নিজেই আউটপুট করে। cএটিতে এটিও লেখা হয়েছে যাতে পাইথন যুক্ত করা একটি বিশাল নির্ভরতা হবে। এটি lessপরিবেশের মাধ্যমে নিয়ন্ত্রণ করতে সক্ষম হতে পারে
ম্যাট

1
সম্ভবত LESSএনভ ভার্চ দিয়ে?
ম্যাট

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