এএনএসআই রঙ হ্যান্ডলিং সহ উইন্ডোজ কনসোল


34

উইন্ডোজের জন্য এমন কোন কনসোল এমুলেটর রয়েছে যা এএনএসআই বর্ণের ব্যাখ্যা করে?

আমরা আরএসপেক ব্যবহার করি এবং আমাদের দলের একটি অংশ উইন্ডোজ ব্যবহার করে এবং বর্ণের জন্য বিশেষ স্ট্রিং তাদের পক্ষে খুব কার্যকর নয়;)।

উত্তর:


40

ConEmu xterm 256 রঙ এক্সটেনশানের সঙ্গে ANSI X3.64 সমর্থন করে। আমি এই কনসোল এমুলেটরটির লেখক।

আনসি ক্রমগুলি সমস্ত প্রক্রিয়াগুলির জন্য পরিচালিত হয়, কনেমু ট্যাবগুলিতে চলছে।

আফাইক, কনেমু আনসিকনের চেয়ে বেশি কোড সমর্থন করে।

ConEmu এবং এএনএসআই X3.64 / এক্সটার্ম 256 রঙ


1
এই শিলা! গেমার হিসাবে আমি ভূমিকম্পের বৈশিষ্ট্যটি পছন্দ করি। কনসোলটি যদিও পর্দার উপরে লক করা আছে বলে মনে হচ্ছে (এমনকি শীর্ষ অক্ষম থাকা লক বিকল্পটি দিয়েও)। ধন্যবাদ
সিড

আপনি ট্যাবগুলি দিয়ে কীভাবে সিএমডি চালাবেন?
মিকি

@ মিকি কি? প্রথমে উত্তরটি পড়ুন।
ম্যাক্সিমাস

35

এই পৃষ্ঠার উত্তরের কোনওটিতেই এএনএসআই টার্মিনাল কন্ট্রোলের জন্য নতুন সমর্থনটির একটি গুরুত্বপূর্ণ দিকটি উল্লেখ করা হয়নি যা উইন্ডোজ 10 কনসোল হোস্টে 16257 (এবং পরবর্তী) বিল্ডে যুক্ত হয়েছিল। যেমন, এটা হচ্ছে সক্ষম করা ডিফল্ট ভাবে। আপনি যে নির্দিষ্ট সফ্টওয়্যারটি ব্যবহার করছেন তা যদি না এ্যাঙ্কের সাথে সেটকনসোলমোডি এপিআই কল করে এএনএসআই প্রসেসিং সক্ষম করে , আপনি সেই অ্যাপ্লিকেশনের জন্য রঙ দেখতে পাবেন না বা এএনএসআই প্রসেসিং পাবেন না।ENABLE_VIRTUAL_TERMINAL_PROCESSING (0x0400)

ENABLE_VIRTUALQLMINAL_PROCESSING 0x0004
https://docs.microsoft.com/en-us/windows/console/setconsolemode

WritFile বা WritConsole দিয়ে লেখার সময় , ভিটি 100 এবং অনুরূপ নিয়ন্ত্রণের অক্ষর অনুসারে যেগুলি কার্সার চলাচল, রঙ / ফন্ট মোড এবং অন্যান্য ক্রিয়াকলাপগুলিকে বিদ্যমান কনসোল এপিআইয়ের মাধ্যমে সম্পাদন করা যায় তার জন্য অক্ষরগুলি পার্স করা হয়। আরও তথ্যের জন্য কনসোল ভার্চুয়াল টার্মিনাল সিকোয়েন্সগুলি দেখুন।

আমি এই পৃষ্ঠার কাজের উদাহরণগুলিতে দেখানো কারণটি অনুমান করছি যে স্পষ্টতই echoআদেশটি (বা সম্ভবত ব্যাচ-প্রসেসিং অংশ CMD.EXEবা এর conhost) কেবলমাত্র উল্লিখিত এপিআইতে কল করে এএনএসআই প্রসেসিং সক্ষম করে। তবে অন্যান্য অনেক সরঞ্জাম বা এক্সিকিউটেবল যা এটি লিখতে stdinবা stdoutনাও করতে পারে, সেই ক্ষেত্রে আপনি এই প্রক্রিয়াগুলির জন্য রঙ দেখতে পাবেন না।

ভাগ্যক্রমে, গ্লোবাল ডিফল্টটিকে অপ্ট-ইন থেকে অপ্ট-আউট থেকে পরিবর্তন করা যেতে পারে । HKEY_CURRENT_USER\Console\VirtualTerminalLevelএএনজিআই এস্কেপ সিকোয়েন্সগুলি প্রক্রিয়াজাতকরণের জন্য রেজিস্ট্রি কী বিশ্বব্যাপী ডিফল্ট আচরণ সেট করে। একটি DWORDকী তৈরি করুন (যদি প্রয়োজন হয়) এবং ডিফল্টরূপে এএনএসআই প্রসেসিংকে 1বিশ্বব্যাপী সক্ষম করতে (বা 0অক্ষম করতে) এর মান সেট করুন ।

[HKEY_CURRENT_USER \ কনসোল]
"VirtualTerminalLevel" = DWORD: 00000001

নোট করুন যে এই রেজিস্ট্রি সেটিংটি একটি ডিফল্টকে নিয়ন্ত্রণ করে , এর অর্থ এটি কেবলমাত্র কনসোল অ্যাপ্লিকেশনগুলিকেই প্রভাবিত করে যা স্পষ্টভাবে কল করে কনসোল মোডটি ম্যানিপুলেট করে না SetConsoleMode(...)। এটা যে অনুসরণ করে, যখন রেজিস্ট্রি মান সাহায্য করতে পারে সক্ষম জন্য ANSI কনসোল-মোড-অন্যমনস্ক অ্যাপ্লিকেশান, এটা কোনো কোনো প্রভাব থাকবে কনসোল-মোড-কাণ্ডজ্ঞান অ্যাপ্লিকেশন যা (কিছু কারণে) স্পষ্টভাবে may নিষ্ক্রিয় ANSI।

এখানে চিত্র বর্ণনা লিখুন


21

উইন্ডোজ 10 টিএইচ 2 (v1511) থেকে শুরু করে conhost.exe(এবং এক্সটেনশনের মাধ্যমে cmd.exe) এএনএসআই এস্কেপ সিকোয়েন্সগুলি বিশেষ রঙগুলিতে সমর্থন করে:

নীচে উল্লিখিত এমএসডিএন পৃষ্ঠা থেকে চিত্র

কনসোল ভার্চুয়াল টার্মিনাল সিকোয়েন্স সম্পর্কে দুটিই MSDN পৃষ্ঠা ব্যাখ্যা করে সিকোয়েন্স কি সমর্থিত এবং কিভাবে সেগুলিকে সক্ষম করতে:

আপনি এই আচরণটি কনফিগার করতে গেটকনসোলমোড এবং সেটকনসোলমোড পতাকা ব্যবহার করতে পারেন । [...]

নিম্নলিখিত ক্রমগুলির আচরণটি ভিটি 100 এবং উত্পন্ন টার্মিনাল এমুলেটর প্রযুক্তির উপর নির্ভর করে, বিশেষত এক্সটার্ম টার্মিনাল এমুলেটর। টার্মিনাল ক্রম সম্পর্কে আরও তথ্য http://vt100.net এবং http://invisible-island.net/xterm/ctlseqs/ctlseqs.html এ পাওয়া যাবে


2
সমর্থিত সিকোয়েন্স এ বর্ণিত হয় msdn.microsoft.com/en-us/library/windows/desktop/...
dbenham

আপনি কলর্টুল ব্যবহার করে ডিফল্ট রঙগুলিও পরিবর্তন করতে পারেন । নতুন উইন্ডোজ 10 ইনস্টলগুলি কিছুটা সংশোধিত রং পাবেন যা পড়া সহজ (বিশেষত কালো রঙের উপর নীল), তবে আপডেটগুলি পুরানো, হার্ড-টু-পঠিত রঙগুলি রাখবে।

10

উইন্ডোজের জন্য এমন কোন কনসোল এমুলেটর রয়েছে যা এএনএসআই বর্ণের ব্যাখ্যা করে?

উইন্ডোজ 10 এর আগে - কনসোলে এএনএসআই রঙের জন্য কোনও দেশীয় সমর্থন নয়

10 এর নীচে উইন্ডোজ সংস্করণের জন্য, উইন্ডোজ কমান্ড কনসোলটি ডিফল্টরূপে আউটপুট রঙিন সমর্থন করে না। আপনি ইনস্টল করতে পারে পারেন Cmder , ConEmu , ANSICON বা Mintty (GitBash এবং Cygwin ডিফল্টরূপে ব্যবহৃত) আপনার উইন্ডোজ কমান্ড কনসোলে সমর্থন শোভা যোগ করতে।

উইন্ডোজ 10 - কমান্ড লাইন রং

উইন্ডোজ 10 থেকে শুরু করে উইন্ডোজ কনসোলটি এএনএসআই এস্কেপ সিকোয়েন্স এবং ডিফল্টরূপে কিছু রঙ সমর্থন করে।

এমএসডিএন ডকুমেন্টেশন

ডেমো

এখানে চিত্র বর্ণনা লিখুন

ব্যাচ কমান্ড

win10colors.cmdদ্বারা লিখিত হয় মিশেল Locati :

@echo off
cls
echo [101;93m STYLES [0m
echo ^<ESC^>[0m [0mReset[0m
echo ^<ESC^>[1m [1mBold[0m
echo ^<ESC^>[4m [4mUnderline[0m
echo ^<ESC^>[7m [7mInverse[0m
echo.
echo [101;93m NORMAL FOREGROUND COLORS [0m
echo ^<ESC^>[30m [30mBlack[0m (black)
echo ^<ESC^>[31m [31mRed[0m
echo ^<ESC^>[32m [32mGreen[0m
echo ^<ESC^>[33m [33mYellow[0m
echo ^<ESC^>[34m [34mBlue[0m
echo ^<ESC^>[35m [35mMagenta[0m
echo ^<ESC^>[36m [36mCyan[0m
echo ^<ESC^>[37m [37mWhite[0m
echo.
echo [101;93m NORMAL BACKGROUND COLORS [0m
echo ^<ESC^>[40m [40mBlack[0m
echo ^<ESC^>[41m [41mRed[0m
echo ^<ESC^>[42m [42mGreen[0m
echo ^<ESC^>[43m [43mYellow[0m
echo ^<ESC^>[44m [44mBlue[0m
echo ^<ESC^>[45m [45mMagenta[0m
echo ^<ESC^>[46m [46mCyan[0m
echo ^<ESC^>[47m [47mWhite[0m (white)
echo.
echo [101;93m STRONG FOREGROUND COLORS [0m
echo ^<ESC^>[90m [90mWhite[0m
echo ^<ESC^>[91m [91mRed[0m
echo ^<ESC^>[92m [92mGreen[0m
echo ^<ESC^>[93m [93mYellow[0m
echo ^<ESC^>[94m [94mBlue[0m
echo ^<ESC^>[95m [95mMagenta[0m
echo ^<ESC^>[96m [96mCyan[0m
echo ^<ESC^>[97m [97mWhite[0m
echo.
echo [101;93m STRONG BACKGROUND COLORS [0m
echo ^<ESC^>[100m [100mBlack[0m
echo ^<ESC^>[101m [101mRed[0m
echo ^<ESC^>[102m [102mGreen[0m
echo ^<ESC^>[103m [103mYellow[0m
echo ^<ESC^>[104m [104mBlue[0m
echo ^<ESC^>[105m [105mMagenta[0m
echo ^<ESC^>[106m [106mCyan[0m
echo ^<ESC^>[107m [107mWhite[0m
echo.
echo [101;93m COMBINATIONS [0m
echo ^<ESC^>[31m                     [31mred foreground color[0m
echo ^<ESC^>[7m                      [7minverse foreground ^<-^> background[0m
echo ^<ESC^>[7;31m                   [7;31minverse red foreground color[0m
echo ^<ESC^>[7m and nested ^<ESC^>[31m [7mbefore [31mnested[0m
echo ^<ESC^>[31m and nested ^<ESC^>[7m [31mbefore [7mnested[0m

সংস্করণ 1607 (ওএস বিল্ড 14393.693) হিসাবে, উইন্ডোজ 10 এ রঙ অক্ষম করা হয়েছে।
জেফ_চ্যাং

2
কেন আমি বিশ্বাস করব? ঘটনা দয়া করে। ক) চেঞ্জলগে কিছুই নেই: সমর্থন. microsoft.com/en-us/help/4009938
জেনস এ। কোচ

1
সঠিক উইন 10 সংস্করণটি সম্পর্কে আমি নিশ্চিত নই, তবে এটি এখানে উল্লেখ করা হয়েছে: github.com/symfony/symfony/issues/19520 আমার সংস্থার ল্যাপটপে - ভের 1511 (ওএস বিল্ড 10586.753) - আমার এটির দরকার নেই। আমার বাড়ির পিসিতে আমাকে আনসিসন ব্যবহার করতে হয়েছিল, কারণ রঙগুলি ডিফল্টরূপে চালু ছিল না।
জেফ_চ্যাং

4
তারা সবেমাত্র একটি পতাকা প্রবর্তন করেছে, যা রঙিন আউটপুট নিয়ন্ত্রণ করে এবং এটি ডিফল্টরূপে মিথ্যা। Wpdev.uservoice.com/forums/… দেখুন ) --- সিমফনি উইন্ডোজে পিএইচপি.এক্স্সি ব্যবহার করছে, যেখানে পতাকাটি বন্ধ ছিল, তাই তাদের এখানে প্যাচ অপেক্ষা করতে হয়েছিল, যা এখানে অবতরণ করেছে: github.com/php/php- src / টান / 2103 । পরিস্থিতি সমাধান হয়েছে। --- cmd.exe এর জন্য পতাকাটি সর্বদা সত্য। এজন্য আপনার কনসোলটিতে রঙিন সমর্থন রয়েছে।
জেনস এ। কোচ

1
এই কোডগুলি লিনাক্সের শেল স্ক্রিপ্টেও কাজ করবে? বা এটি অন্যভাবে করা হয়েছে?
মিকি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.