Bracketed-paste
بریکٹڈ پیسٹ (جسے بعض اوقات پیسٹ بریکٹنگ بھی کہا جاتا ہے)، کچھ ٹرمینل ایمولیٹرز کا ایک طریقہ ہے جو ٹرمینل میں چلنے والے پروگراموں کو چسپاں کردہ متن کو عام طور پر ٹائپ کیے گئے متن سے مختلف طریقے سے استعمال کرنے کی اجازت دیتا ہے۔ بریکٹڈ پیسٹ کی خصوصیت 2002 میں ایکس ٹرم کے ذریعہ متعارف کرائی گئی تھی، جو ایمیکس کے ساتھ تعامل کو بہتر بنانے کے لیے صارف کی شراکت میں تبدیلی کے طور پر تھی۔ بعد میں، 2005 میں، ایک اور صارف نے اسے جے او ای ایڈیٹر کے لیے ایک اور سلیکٹ/پیسٹ فیچر کے حصے کے طور پر دستاویزی شکل دی۔ کئی سالوں کے دوران، دوسرے ڈویلپرز نے اس خصوصیت کو ٹرمینل ایمولیٹرز اور ایڈیٹرز کے لیے ڈھال لیا جو اس خصوصیت کے ساتھ کام کرتے ہیں۔ محرک بریکٹڈ پیسٹ کا استعمال مندرجہ ذیل مسئلے کو حل کرنے کے لیے کیا جاتا ہے، عام طور پر ٹرمینل ٹیکسٹ ایڈیٹر (جیسے ویم یا ایمیکس) میں کوڈ میں ترمیم کرتے وقت اس کا سامنا کرنا پڑتا ہے۔ ان ٹیکسٹ ایڈیٹرز میں اکثر آٹو انڈینٹ فنکشنلٹی شامل ہوتی ہے، جس کی وجہ سے جب صارف لائن کے آخر میں انٹر کلید کو دباتا ہے تو انڈینٹیشن خود بخود شامل ہوجاتا ہے۔ مثال کے طور پر، فرض کریں کہ ہم ٹیکسٹ ایڈیٹر میں درج ذیل کوڈ بلاک میں ترمیم کر رہے ہیں، جس میں کرسر کی پوزیشن کو نشان زد کیا گیا ہے۔ character.def f (): پرنٹ ('فو') |If جو صارف انٹر دباتا ہے، ٹیکسٹ ایڈیٹرز اکثر کرسر کو اگلے کوڈ block.def f () میں نشان زد مقام پر پیش کریں گے: پرنٹ ('فو') |This کوڈ کو چسپاں کرتے وقت غیر ارادی نتائج ہو سکتے ہیں جو پہلے ہی فارمیٹ ہو چکا ہے۔ مثال کے طور پر، فرض کریں کہ صارف کوڈ کے درج ذیل بلاک کو file.def g () میں کاپی کرنے کا ارادہ رکھتا ہے: پرنٹ ('ہیلو') پرنٹ ('ورلڈ') ایک عام ورک فلو میں، صارف کوڈ کے بلاک کو منتخب کرکے اور اسے اپنے سسٹم کلپ بورڈ میں کاپی کرکے شروع کرتا ہے۔ پھر، وہ اپنی فائل میں ہدف کا مقام منتخب کرتے ہیں، اور پیسٹ کمانڈ جاری کرتے ہیں۔ ٹرمینل ایمولیٹر پھر کلپ بورڈ سے حروف کو ٹیکسٹ ایڈیٹر کو بھیجتا ہے، اور ٹیکسٹ ایڈیٹر مثال کے طور پر، کلپ بورڈ سے آنے والے ڈی کردار اور جو صارف کی طرف سے اپنے کی بورڈ پر ڈی کلید دبانے سے آیا ہے، کے درمیان فرق نہیں کر سکتا ہے۔ کوڈ بلاک میں نئی لائنوں کے ساتھ اسی طرح سلوک کیا جاتا ہے جس طرح صارف کے ذریعہ انٹر کلید کو دبایا جاتا ہے۔ لہذا، جب پہلی لائن کے آخر میں نئی لائن ٹیکسٹ ایڈیٹر کو بھیجی جاتی ہے، اگر آٹو انڈینٹ فعال ہے، تو ٹیکسٹ ایڈیٹر ایک انڈینٹ (کئی خالی جگہیں یا ٹیب کردار) داخل کرے گا۔ اگلا، ٹرمینل ایمولیٹر کلپ بورڈ پر کوڈ کے بلاک کی دوسری لائن کے آغاز میں خالی جگہوں سے مطابقت رکھنے والے خلائی حروف کو منتقل کرے گا، جس کے نتیجے میں دوہرا اشارہ ہوگا۔ مزید برآں، اس تناظر میں، عام آٹو انڈینٹ رویے تیسری لائن شروع کرتے وقت دوسری لائن کے انڈینٹیشن لیول سے مماثل ہونا ہوگا، جس کے نتیجے میں تیسری لائن ٹرپل انڈینٹڈ ہوگی۔ حتمی نتیجہ کچھ ایسا نظر آسکتا ہے جیسے following.def g (): پرنٹ ('ہیلو') پرنٹ ('ورلڈ') بریکٹڈ پیسٹ ٹرمینل ایمولیٹرز کی تفصیل (جیسے ایکس ٹرم اور آئی ٹرم 2) پروگراموں کو ٹرمینل ایمولیٹرز کے رویے کو اسکیپ کوڈز، یا کنٹرول سیکوینس کے ذریعے ترتیب دینے کی اجازت دیتا ہے۔ ایسا کرنے کا معمول کا طریقہ یہ ہے کہ صارف پروگرام ایک کنٹرول سیکوینس کو اسٹینڈرڈ آؤٹ کرنے کے لیے پرنٹ کرتا ہے، اور ٹرمینل ایمولیٹر اسٹینڈرڈ آؤٹ پڑھتا ہے، کنٹرول سیکوینس کو نوٹس کرتا ہے، اور مناسب رد عمل ظاہر کرتا ہے۔ خاص طور پر، ٹرمینل ایمولیٹر کنٹرول سیکوینس فراہم کر سکتے ہیں جو بریکٹڈ پیسٹ کو آن اور آف کر دیتے ہیں۔ ٹیکسٹ ایڈیٹر اسٹارٹ اپ پر بریکٹڈ پیسٹ کو آن کرنے کے لیے یا صارف کے حکم کے جواب میں کنٹرول سیکوینس بھیج سکتا ہے۔ اس کے بعد، عام طور پر صارف کے ٹائپ کردہ حروف کو عام طور پر ٹرمینل ایمولیٹر کے ذریعے ٹیکسٹ ایڈیٹر کو بھیج دیا جائے گا۔ تاہم، اگر صارف ٹرمینل ایمولیٹر میں پیسٹ کمانڈ جاری کرتا ہے، تو ٹرمینل ایمولیٹر چسپاں کیے گئے متن کے شروع اور آخر میں خصوصی کنٹرول سیکوینس داخل کرے گا-یہ چسپاں کیے گئے مواد کو بریکٹ کرے گا-ٹیکسٹ ایڈیٹر کو اس ان پٹ کو مختلف طریقے سے استعمال کرنے کے قابل بنائے گا (مثال کے طور پر، آٹو انڈینٹیشن کو عارضی طور پر بند کرنے کے لیے)۔ ہر عمل درآمد ایکسٹرم کے کنٹرول سیکوینس میں دستاویزی کنٹرول سیکوینس کا استعمال کرتا ہے: ESC [200 ~ چسپاں کردہ متن کے آغاز کی نشاندہی کرنے کے لیے اور ESC [201 ~ اختتام کی نشاندہی کرنے کے لیے۔ حوالہ جات کلپ بورڈ (کمپیوٹنگ) یوزر انٹرفیس تکنیک