ইমাসের মতো বাশ-এ কপি এবং সেট-মার্ক করবেন?


16

আমি (অর্থাত ব্যবহার কপি এবং ব্যাশ মধ্যে কমান্ড লাইন একই কীবোর্ড বাইন্ডিং ব্যবহার করে লেখা পেস্ট করবেন সক্ষম হতে চান যে এ গিয়ে Emacs ডিফল্টরূপে ব্যবহার হবে C-spaceজন্য set-mark, M-wটেক্সট কপি করতে C-y, M-yএটি পেস্ট করতে ইত্যাদি)।

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

উদাহরণস্বরূপ, ইয়াঙ্কিং ( C-y) আমার টার্মিনালে ডিফল্টরূপে কাজ করে। তবে, আমি কাজ করতে আদেশ set-markএবং copyকমান্ডগুলি পাচ্ছি না এবং এগুলি ডিফল্টরূপে কোনও কীতে আবদ্ধ বলে মনে হচ্ছে না।

সাধারণত, কোনও ব্যবহারকারীর নিজের কী বাইন্ডিংগুলি যেভাবে সংজ্ঞায়িত করতে পারে তা হ'ল তার সাথে যুক্ত করা .inputrc। তাই আমি তাকিয়ে ডকুমেন্টেশন আমি অনুমান নিম্নলিখিত ব্যাশ ফাংশন পাওয়া সাহায্য করতে পারেন আমাকে আচরণ মত গিয়ে Emacs-সংজ্ঞায়িত যে আমি (অর্থাত চান set-markসঙ্গে C-spaceএবং copyসঙ্গে M-w)।

copy-region-as-kill ()

অঞ্চলটির পাঠ্যটি কিল বাফারে অনুলিপি করুন, এখনই এটি ইয়াঙ্ক করা যায়। ডিফল্টরূপে, এই আদেশটি সীমাহীন।

এবং

set-mark (C-@)

চিহ্নটি বিন্দুতে সেট করুন। যদি একটি সংখ্যার যুক্তি সরবরাহ করা হয় তবে চিহ্নটি সেই অবস্থানে সেট করা আছে।

যদি আমি সঠিকভাবে বুঝতে, উপরোক্ত উপায়ে যে copy-region-as-killডিফল্টরূপে কোনো কীবোর্ড ক্রম করিতে বাধ্য নয়, যখন set-markআবদ্ধ হয় C-@ডিফল্টরূপে।

আমি C-@আমার টার্মিনালটিতে চেষ্টা করেছি, তবে আমার মনে হয় না এটি চালিত হয় set-markকারণ আমি আমার কার্সারটি সরানোর সময় কোনও লেখা হাইলাইট করে দেখি না। যাই হোক, আমি কীবোর্ড বাইন্ডিং (যোগ চেষ্টা M-wএবং C-ফাংশন) copy-region-as-killএবং set-markআমার উপরে .inputrcএবং তারপর সঙ্গে এটি পুনরায় লোড C-x C-r, কিন্তু এই কাজ করে নি। আমি জানি যে আমার অন্যান্য এন্ট্রিগুলি .inputrcকাজ করছে কারণ এতে আমার অন্যান্য ব্যবহারকারী-সংজ্ঞায়িত কী-বাইন্ডিং রয়েছে।

আমি কি ভুল করছি কিছু আছে? আমি কি কিছু মিস করছি?


আপনি কোন সংস্করণ bashএবং কোন টার্মিনাল প্রোগ্রাম ব্যবহার করছেন?
মাইকেল

আমি জিএনইউ ব্যাশ, সংস্করণ 3.1.17 (1) -রিলিজ (x86_64-redhat-linux-gnu) জিনোম-টার্মিনালে (টার্মিনেটরেও) ব্যবহার করছি
আমেলিও ওয়াজকেজ-রেইনা

উত্তর:


11

এটি নির্বাচনটি হাইলাইট করে না, তবে অন্যথায় আমি মনে করি এটি ভাল কাজ করে।

চালানোর চেষ্টা করুন

$ bind -p | grep copy-region-as-kill

C-x C-rআসলে কাজ করেছে তা নিশ্চিত করার জন্য ।

এটি বলা উচিত:

"\ew": copy-region-as-kill

এর পরে, এটি সূক্ষ্মভাবে কাজ করা উচিত।

উদাহরণ:

$ abc<C-Spc><C-a><M-w> def <C-y>

আমাকে দেয়

$ abc def abc

আপনি যদি কখন জানতে চান তবে কোথায় markকরুন C-x C-x

উদাহরণ:

$ <C-Spc>abc<C-x><C-x>

যেখানে আপনি চিহ্নিত চিহ্নটি চিহ্নিত করেছেন (রেখার সূচনা) সেখানে কার্সারটিকে পুনরায় স্থাপন করবে।

এছাড়াও, আমি মনে করি না যে আপনার কাছে set-markবাইন্ডিং যুক্ত করা দরকার । আমি না।

$ bind -p | grep set-mark
"\C-@": set-mark
"\e ": set-mark
# vi-set-mark (not bound)

(নোট যে অধিকাংশ টার্মিনাল পাঠাতে C-@যখন C-Spcটেপা হলে। আমি অনুমান পুলিশের তারাও তাই করছে।)

যদি এই সমস্ত ব্যর্থ হয়:

  • না Ctrl+ + Spaceকাজ emacs -nwএকই টার্মিন্যালে?
  • অন্যান্য Alt/ Metaশর্টকাটগুলি বাশে কাজ করে?

1
ধন্যবাদ! আমার কাছে .inputrc এ "\ ew" এর পরিবর্তে "Mw" ছিল। হাইলাইটের অভাবও আমাকে বিভ্রান্ত করেছিল। উপায় দ্বারা বাইন্ড কমান্ডের পয়েন্টারটির জন্য ধন্যবাদ। এটি এখন কবজির মতো কাজ করে!
আমিলিও ওয়াজকেজ-রেইনা

2
স্বাগত! হ্যাঁ, আপনাকে লিখতে হবে \eবা \M-। দেখুন readline init ফাইলের সিনট্যাক্স
মাইকেল

কি দুর্দান্ত উত্তর! ধন্যবাদ। এটি আমার জন্য অনুরূপ সমস্যাগুলি পরিষ্কার করেছে: ডি
এফস্মিথ

চিহ্ন-সেট এবং অনুলিপি-অঞ্চল-হিসাবে-নীরবে কাজ করুন, আমি কি অঞ্চলটি হাইলাইট করতে পারি (ইমাসের মতো)?
মোশ

4

আমি হত্যা-অঞ্চলের জন্য সিডব্লিকেও আবদ্ধ করি । এখানে আমার .inputrc:

# দেখুন http://lists.gnu.org/archive/html/bug-bash/2009-03/msg00033.html
বাইন্ড-টিটি-বিশেষ-অক্ষর সেট করুন

# আমার প্রিয় ইমাস কী কী বাইন্ডিংগুলি সংজ্ঞায়িত করুন।
"\ সি- @": সেট-চিহ্ন
"\ Cw": হত্যা-অঞ্চল
"\ মেগাওয়াট": অনুলিপি-অঞ্চল-হিসাবে
"\ এম- /" ডাবব্রেভ-প্রসারিত
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.