ব্যাশে কমান্ডের কিছু অংশ লিখে ctrl-r ব্যবহার করার কোনও উপায় আছে কি?


13

ব্যাশে Ctrl+ rকমান্ডটি খুব দরকারী, আমি টাইপ Ctrl+ করি r whateverএবং এটি শব্দটি সম্বলিত কমান্ডগুলির জন্য আমার ইতিহাস অনুসন্ধান করে whatever। তবে যদি আমি টাইপ করে whateverবুঝতে পারি যে আমি সেই শব্দটি অনুসন্ধান করতে চাই এবং হিট Ctrl+ rকিছু হ'ল না।

একটি উপায় আছে একটি কী আঘাত এবং আচরণ যেন আমি টাইপ করা ছিল এটা হচ্ছে না Ctrl+ + r whateverপরিবর্তে whatever Ctrl+ + r?

আমার মধ্যে নিম্নলিখিত রয়েছে .inputrc:

"\C-p": history-search-backward

তবে এটি কেবলমাত্র যদি লাইনের শুরুটি একই হয় তবে কাজ করে।

উত্তর:


12

আপনি ইতিমধ্যে সহজে টাইপ করেছেন যা ব্যবহার করে আপনি বাশের ইতিহাস অনুসন্ধান করতে পারেন।

ধরুন আপনি সবে টাইপ করেছেন curl -I http://superuser.comএবং আপনি প্রথমে Ctrl+ টাইপ করতে ভুলে গেছেন r:

$ curl -I http://superuser.com

আপনি যদি নিজের ইতিহাসে আই-অনুসন্ধান করতে চান তবে প্রথমে লাইনের শুরুতে ( Ctrl+ a) যান, আই-অনুসন্ধান ( Ctrl+ r) লিখুন এবং Ctrl+ টাইপ করুন y। আপনি ইতিমধ্যে টাইপ করা পুরো পাঠ্যের সামগ্রীগুলি ব্যবহার করে এটি অনুসন্ধান করা উচিত:

(reverse-i-search)`curl -I http://superuser.com': curl -I http://superuser.com/faq

অন্যথা, আপনি ব্যবহার করতে পারেন Ctrl+ + wপরিবর্তে Ctrl+ + yটেক্সট আপনি শুধু টাইপ করা মাত্র প্রথম শব্দ ব্যবহার করে অনুসন্ধান করুন:

(reverse-i-search)`curl': curl -I http://superuser.com/faq

এটিকে সমস্ত একক কীতে আবদ্ধ করা

আপনি যদি একটি কী-স্ট্রোকে এগুলি করতে চান তবে আপনি একটি কি-বোর্ড ম্যাক্রোতে একটি কী বাধতে পারেন। আপনি যদি ব্যবহার করতে চান, বলুন, F12চালান:

$ bind '"\e[24~":"\C-a\C-r\C-y"'

যা অধিবেশন স্থায়ী হবে।

এটিকে স্থায়ী করা

আপনার মধ্যে কেবল ম্যাক্রো সংজ্ঞায়িত করুন ~/.inputrc:

"\e[24~":"\C-a\C-r\C-y"

নোট করুন যে এখানে আমরা একক উদ্ধৃতি বাদ দিচ্ছি

আপনি এই উত্তর দরকারী মনে হতে পারে ।


1
এটি আমার কনফিগারেশনে সমস্যা কিনা তা আমি নিশ্চিত নই, তবে টাইপ c-rকরার পরে c-yসেখানে কিছুই আটকানো হয় না। যদি আমি c-yনিজেই টাইপ করি তবে কেবল পাঠ্যটি
আটকায়

আপনি কি প্রথম লাইনের শুরুতে যান? (সিএ)
এইচএসও

1
আপনি ঠিক বলেছেন, আমি লাইন শুরু করতে যাচ্ছি না। এখন আমার .inputrc এ আছে "\C-xr": "\C-a\C-r\C-y"এবং এটি খুব সুন্দর কাজ করে! এই উত্তরের জন্য ধন্যবাদ।
04

আমি মনে করি এটি তৃতীয়বার এই control+a control+r control+yজিনিসটি গুগল করেছিল ! ধন্যবাদ এই উত্তরটি সর্বদা এখানে! :)
ডাঃ বেকো

2

চারটি স্ট্রাইক সংরক্ষণ করুন:

Ctrl-Rআপনার .bashrc(বা আপনি .inputrcযদি চান তবে) যুক্ত করে একটি সেকেন্ড এড়িয়ে চলুন :

bind '"\er":"\C-a\C-r\C-y\C-r"' # alt-r = ctr-a ctr-r ctr-y ctr-r

এই মানচিত্রের হবে Alt-আর করার CTR এর-একটি CTR এর-আর CTR এর-ওয়াই CTR এর-আর

বর্ণনা:

  • ALT-R : বাঁধাই কী। আর একটি ভাল বিকল্প হ'ল \C-xr( সিটিআর-এক্স সিটিআর-আর )
  • সিটিআর-এ : লাইনের শুরুতে যান (যা লেখা আছে তা মুখস্ত করে)
  • সিটিআর-আর : বিপরীত অনুসন্ধান শুরু করুন
  • সিটিআর-ওয়াই : অনুসন্ধানের অংশ হিসাবে সিটিআর-এ মুখস্থ করা হয়েছে তা আটকান
  • সিটিআর-আর : এখন পর্যন্ত অক্ষরগুলির সাথে বিপরীত অনুসন্ধানকে ট্রিগার করে

এটি এখনও অনুসন্ধান করে না যে সাই কেন অনুসন্ধান ক্ষেত্রের মধ্যে কমান্ডটি আটকায় (সিএ "কপি" কমান্ড হওয়ার কথা নয়, তাই?) এবং কেন সিডাব্লু কেবল প্রথম শব্দটি আটকে দেয়।
মার্কাস

হ্যাঁ, C-aকেবল স্থানান্তরিত নয়, সামগ্রীতে স্থানান্তরিত মুখস্থ (অনুলিপি)।
ডাঃ বেকো

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