বাশের বিপরীত অনুসন্ধানের মধ্যে কীভাবে নেভিগেট করবেন?


40

বাশ Ctrl+ এর মাধ্যমে বিপরীত অনুসন্ধানের জন্য কার্যকারিতা সরবরাহ করে R। তারপরে একটি কমান্ডের একটি অংশ টাইপ করতে পারে এটি ইতিহাস থেকে একটি উপযুক্ত এন্ট্রি প্রদর্শন করবে।

ধরুন এটি আমার ইতিহাস:

vim foo1
vim foo2 # I want to go here
vim foo3 # this is where I land, how to go back?

আমি অনুসন্ধান foo। আবার আঘাত Ctrl+ Rপরবর্তী পরের ফিটনেস অনুসন্ধান এন্ট্রি দেখায়। প্রায়শই আমার সাথে এটি ঘটে যে আমি খুব দ্রুত এবং আমার পছন্দসই ফলাফলটি নেভিগেট করে vim foo3দেখিয়েছি এবং এখন আমি ফিরে যেতে চাই vim foo2

সুতরাং আমার প্রশ্নটি হল: আমি কীভাবে বিপরীত অনুসন্ধানের মধ্যে নেভিগেট করব?


আপনি কোন টার্মিনাল ব্যবহার করেন? যেমন। জিনোম-টার্মিনাল, কনসোল, ইত্যাদি ...
ওয়ারেস

1
ভাল, আমি এর সাথে খুব বেশি পরিচিত নই ... কীটি সিটিআর + এস হওয়া উচিত, তবে কিছু টার্মিনালগুলি চাবিটি খেয়ে
ফেলবে



সম্পর্কিত: stackoverflow.com/questions/791765/...
k0pernikus

উত্তর:


36

আপনি forward-search-historyডিফল্ট প্রতি বাঁধাই করা ফাংশনটির মাধ্যমে এটি অ্যাক্সেস করতে পারেন ctrl+s। দুর্ভাগ্যক্রমে প্রতি ডিফল্ট ctrl+sসিগন্যাল ব্যবহার করা হয় xoffযার অর্থ আপনি এটি অনুসন্ধানের দিক পরিবর্তন করতে ব্যবহার করতে পারবেন না। সমস্যা সমাধানের জন্য দুটি সমাধান রয়েছে, একটি xoff/xonসিগন্যাল প্রেরণকে অক্ষম করা এবং অন্যটির জন্য কী-বাইন্ডিং পরিবর্তন করাforward-search-history

Xon / xoff অক্ষম করুন

stty -ixonআপনার টার্মিনালে চালান বা এটি আপনার যুক্ত করুন ~/.bashrc। এটি আপনাকে ইতিহাসের ফাংশনটি ctrl+sব্যবহার করতে forward-search-historyদেয়।

নিয়ন্ত্রণ প্রবাহ সম্পর্কে আরও তথ্যের জন্য একটি টার্মিনালে দুর্ঘটনাক্রমে Ctrl-S টিপানোর পরে কীভাবে পরিস্থিতি হ্রাস করতে হবে তা একবার দেখুন ? এবং কিছু উত্তর

কী-বাইন্ডিংটি পরিবর্তন করুন

আপনি ডিফল্ট আচরণ পরিবর্তন করার জন্য না চান তাহলে ctrl+sআপনার জন্য keybinding পরিবর্তন করতে পারেন forward-search-historyসঙ্গে bind। যেহেতু বেশিরভাগ কীগুলি ইতিমধ্যে ব্যাশে সংজ্ঞায়িত হয়েছে আপনাকে সৃজনশীল হতে হতে পারে:

bind "\C-t":forward-search-history

এটি ctrl+tফরোয়ার্ড-অনুসন্ধান-ইতিহাসের সাথে আবদ্ধ হবে , তবে দয়া করে সচেতন হন যে প্রতি ডিফল্ট ctrl+tরান হয়transpose-chars


আমি তোমার প্রথম সমাধান চেষ্টা stty -ixonমধ্যে zshএবং খুব ভাল কাজ করে। তবে xoff/xonসংকেত অক্ষম করার ক্ষেত্রে কোনও অযাচিত পার্শ্ব প্রতিক্রিয়া রয়েছে কি?
ছাত্র

@ স্টুডেন্ট আপনি ctrl+sআর টার্মিনাল আউটপুট থামানোর জন্য ব্যবহার করতে পারবেন না । যদি আপনি এটির আগে কখনও এটি ব্যবহার করেন তবে কোনও সমস্যা নেই
উলরিচ ড্যাঞ্জেল

1
এটি মূল্যবান জন্য, আমি দ্বিতীয় সমাধান সঙ্গে গিয়েছিলাম। দুর্দান্ত জিনিস! আমি কখনই জানতাম না যে আপনি চাপ দিয়ে কনসোল হিম করতে পারবেন C-s.. সার্ভার লগগুলিতে লেজ ব্যবহার করার সময় খুব দরকারী। ঝরঝরে! (আমি আশা করি আমার আর একটি উত্সাহ ছিল :))
আশুতোষ জিন্দাল

ওএসএক্সে কাজ করার জন্য আমি বিকল্প # 2 পেলাম না। পরিবর্তে আমাকে এটি করতে হয়েছিল:bind '"\C-t": history-search-forward'
stiemannkj1

0

আপনার বাশ দ্বারা সরবরাহিত বেসিক বিপরীত অনুসন্ধান এবং ফরোয়ার্ড অনুসন্ধানের বিকল্প হিসাবে, আপনি সন্ধান করতে চাইতে পারেন:

fzf , একটি স্ব-বর্ণিত "কমান্ড-লাইন অস্পষ্ট সন্ধানকারী"।

এটি আপনার ব্যাশের ডিফল্ট বিপরীত অনুসন্ধান (এবং অন্যান্য টার্মিনাল) প্রতিস্থাপন করতে পারে।

এর উপকারিতা হ'ল এটি:

  • ইতিহাস থেকে আপনার আদেশের তালিকা মুদ্রণ করে
    • আবার Ctrl + R এ আঘাত করে কালানুক্রমিক বা প্রাসঙ্গিকতা বাছাই করে টগল করে
  • তীর কীগুলির মাধ্যমে নেভিগেট করা যায় (বা Ctrl + J / Ctrl + K)
  • একাধিক সূঁচ অনুসন্ধান করার অনুমতি দেয়

আমার নিয়ন্ত্রণপ্রাপ্ত মেশিনগুলিতে এখন আমার ওয়ার্কফ্লো সম্পূর্ণরূপে fzf এর উপর নির্ভর করে basic

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