ব্যাশে মাল্টি-লাইন পেস্ট প্রতিরোধ করুন


10

আমি প্রায়শই ctrl+cকিছু গুই অ্যাপ্লিকেশন থেকে পাঠ্য অনুলিপি করতে ব্যবহার করি এবং তারপরে ডান-মাউস-ক্লিক-মেনু ব্যবহার করে পেস্ট করে আমার টার্মিনাল এমুলেটর (টার্মিনেটর) এ আটকান। কখনও কখনও আমি ভুলে যাই যে ক্লিপবোর্ডে বেশ কয়েকটি লাইন থাকে, যা ব্যাশে আটকানো হলে প্রতিটি লাইন "চালিত" হয়

সম্পূর্ণভাবে মাল্টি-লাইন পেস্ট প্রতিরোধের কোনও সমাধান আছে কি?


প্রথমে নোটপ্যাডে পেস্ট করুন, আপনার কাছে যা আছে তা দেখার জন্য, যদি ঠিক থাকে তবে এটি আপনার আবেদনে পেস্ট করুন
স্কেপেরেন

1
বাশ ইন কমান্ড রান করুন sleep 999999তারপর ঠিক আছে যদি পেস্ট করুন। স্লিপ কমান্ড লাইনগুলি পড়বে না এবং আপনি টিপলে সেগুলি ফেলে দেওয়া হবে ctrl+c
স্কেপেরেন



1
@ ওথিয়াস, printf '\e[?2004h'বেশিরভাগ এক্সটারম -মত টার্মিনাল এমুলেটরগুলি একটি বন্ধনীযুক্ত-পেস্ট মোড সক্ষম করে যেখানে টার্মিনালটি আটকানো পাঠ্যকে বন্ধনী দেয় যাতে অ্যাপ্লিকেশনগুলি সনাক্ত করতে পারে কোথায় পেস্ট শুরু হয় এবং কোথায় এটি শেষ হয়। xterm এছাড়াও অন্য মোডকে সমর্থন করে \e[?2005hযেখানে সমস্ত আটকানো অক্ষরগুলি উপস্থাপিত হয় ^V(অনেক অ্যাপ্লিকেশন এবং tty লাইন শৃঙ্খলা দ্বারা বোঝা যায় litteral-next)।
স্টাফেন চেজেলাস

উত্তর:


5

এই উত্তরটি ব্যবহারকারীর প্রশ্নের সর্বাধিক নির্দিষ্ট নয় দয়া করে আমার ২ য় উত্তর দেখুন। আমি এটি এখানে রেখে চলেছি কারণ এটি আরও সাধারণ সমস্যাটির সমাধান করে।

আপনার মূল পোস্টে মন্তব্য প্রতি, আপনি (1) ই-মেইল ক্লায়েন্ট যা সমর্থন প্রয়োজন পেস্ট বন্ধনী করা এবং (2) যাই হোক না কেন, টার্মিনালে চলমান জন্য সংশ্লিষ্ট সমর্থন অর্থাত, vim, bash, zsh। বন্ধনীযুক্ত পেস্ট সমর্থনকারী টার্মিনাল এমুলেটর (এই পোস্টের মন্তব্যের ভিত্তিতে আপডেট করার তালিকাগুলি):

  • xterm - থেকে ??
  • gnome-terminal - থেকে ??
  • putty - 0.63 (2013-08-06 প্রকাশের তারিখ) থেকে

বন্ধনী মোড সমর্থনকারী অ্যাপ্লিকেশন:

  • vim
  • zsh

কারণ bash, স্টাফেনচাজেলাস সেই মোডটি সনাক্তকরণ এবং যথাযথ ব্যবস্থা গ্রহণের জন্য শেল স্ক্রিপ্ট একসাথে রেখেছেন ।

আরও সুনির্দিষ্ট উত্তর - লাইনগুলি কেটে ফেলা থেকে বিরত করা - আপনি যখন পেস্টটি আঘাত করবেন তখন যে ইউনিক্স প্রোগ্রামটি চলছে তা সম্পর্কে জেনেও অনস্বীকার্য।

একটি ক্লিপবোর্ড পরিচালক সম্ভবত আপনার যা প্রয়োজন।


স্ক্রিপ্টের মধ্যে সেখানে বন্ধনী করা পেস্ট শনাক্ত করতে পারছে না, এটি একটি হল Perl স্ক্রিপ্ট যে বন্ধনী করা বাটা 3 য় রূপ, যার আবেদন চাহিদা ছাড়া অন্য অ্যাপ্লিকেশনে সমর্থন প্রয়োজন হয় না বুঝতে ^ litteral-পরবর্তী (যে স্ক্রিপ্ট হিসাবে ভী would অনুকরণ সম্ভবত এই প্রশ্নের উত্তর দিন যদিও সম্ভবত উন্নতির প্রয়োজন হবে, এটি কেবল একটি পোকা ছিল)।
স্টাফেন চেজেলাস

@ স্টাফেনচাজেলাস নির্দ্বিধায় আমার পোস্ট সম্পাদনা / উন্নত করতে পারেন। :) "অ্যাপ্লিকেশনটির ^Vমতো বুঝতে হবে literal-nextBut তবে কীভাবে ^Vঅ্যাপ্লিকেশনটির ইনপুট প্রবাহে যায়?
ওথিয়াস

যদি অভ্যন্তরীণ tty ডিভাইসটি আইকনন মোডে না থাকে তবে এটি এটি পেয়েছে (রিডলাইনের bashপ্রম্প্টের মতো এটি দেখতে পাবে (এবং এটি আচরণ করবে আক্ষরিক-পরবর্তী হিসাবে))। যদি আইকনন মোডে থাকে তবে সেই অভ্যন্তরের টিটিআই ডিভাইসের লাইন শৃঙ্খলাটি এটি ছড়িয়ে ফেলা হবে ( lnextচরিত্রটি যতক্ষণ থাকবে ^V) ঠিক তেমনি আপনি যখন
সিআরটিএল

1
যদি এই স্ক্রিপ্টটি ব্যবহার না করা হয় ^Vতবে আপনি এক্সটার্মের quoted pasteমোড (প্রেরণ দ্বারা সক্ষম \e[?2005h) ব্যবহার না করে কিছুই সন্নিবেশ করে না । এই perlস্ক্রিপ্টটি এমনভাবে রূপান্তর করা যেতে পারে যাতে এটি বহু-লাইন পেস্টের প্রথম লাইন বাদে সমস্তটি সরিয়ে দেয় (যদিও এটি বৃহত্তর পেস্টগুলির জন্য নির্ভরযোগ্য নয়) তবে এটি ইতিমধ্যে রয়েছে, কারণ এটি পঠনের জন্য নতুন লাইনের উদ্ধৃতি দিয়েছে (যেন আপনি Ctrl- টিপেছিলেন) ভি সিআরটিএল-জে), লাইনগুলি সম্পাদন হতে বাধা দেয় (এগুলি সম্পাদনা বাফারে সবেমাত্র যুক্ত হয়েছে এবং এগুলি কার্যকর করার জন্য আপনাকে এখনও এন্টার টিপতে হবে)।
স্টাফেন চেজেলাস

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